Inventar(Slot)-System

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

N0X

Betreff: Inventar(Slot)-System

BeitragFr, Jan 29, 2010 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey!
Ich habe ein Inventarsystem.
Aber es werden alle Items aufeinander angezeigt, und ich bekomme es leider nicht hin, das die Bilder von den Items nebeneinander angezeigt werden. Muss nur wissen was für eine Variable ich erstellen muss, und wo ich die erhöhen etc. muss. Brauch da echt Hilfe ^^

Hier mein Code:
Code: [AUSKLAPPEN]
Global x_pos%=10,y_pos%=10,x_size%=250,y_size%=300,filled%=1,window1=0

Type item
   Field id$
   Field x,y
   Field gfx
End Type

While Not KeyHit(1)
   Text x_pos%+12,y_pos%+12,"Inventar"
   
   For i.item = Each item
      Text x_pos%+i\x%,y_pos%+i\y%,""+i\id$
      DrawImage i\gfx,x_pos%+slot_x%,y_pos%+60
   Next
   
   For x=0 To 9 Step 2
      For y=0 To 9 Step 2
         Rect x_pos%-(x*20)+185,y_pos%-(y*20)+220,40,40,0
      Next
   Next

   If KeyHit(60) Then
      createItem(0001)
   EndIf
   If KeyHit(61) Then
      createItem(0002)
   EndIf
Wend
End

Function createItem(id$)
   Select id$
      Case 0001
         i.item = New item
         i\x%  = 1*32
         i\y%  = 1*32
         i\id$ = "Trank des Lebens"
         i\gfx = LoadImage("gfx\pot_1.png"):MaskImage(i\gfx,255,0,255)
      Case 0002
         i.item = New item
         i\x%  = 1*32
         i\y%  = 1*32
         i\id$ = "Schwert der Verdammnis"
         i\gfx = LoadImage("gfx\sw_1.png"):MaskImage(i\gfx,255,0,255)
   End Select
   DebugLog(i\id%)
End Function


Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%
 

pataborn

BeitragFr, Jan 29, 2010 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
in der for...each schleife wo du die items zeichnest,
baust du eine variable ein,die sich bei jedem durchlauf erhöht,
beim malen addierst du zu den koordinaten die variable
Pseudocode:
Code: [AUSKLAPPEN]

For i.item = Each item
      Text x_pos%+i\x%+itemzaehler,y_pos%+i\y%,""+i\id$
      DrawImage i\gfx,x_pos%+slot_x%+itemzaehler,y_pos%+60
      itemzaehler=itemzaehler+1
   Next

N0X

BeitragFr, Jan 29, 2010 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht ja eben nicht! Confused
Achso die slot_x Variable muss noch raus.
Aber so, gehts nicht, weil die ganze Zeit erhöht wird.
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Goodjee

BeitragFr, Jan 29, 2010 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
du willst das teil also in ein quadrat quetschen wenn ich das richtig verstehe

pseudocode:

Code: [AUSKLAPPEN]
i=0
for a.Item=each Item
  i=i+1
  reihe=i/breiteInItems
  spalte=i Mod breiteInItems
  draw item,spalte*Itembreite,reihe*Itemhöhe
next
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

N0X

BeitragFr, Jan 29, 2010 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool, danke, aber wie mache ich jetzt das ich, wenn der 6.Platz erreicht wurde, eine Reihe weiter geschaltet wird und Spalte auf 1 gesetzt wird? (Wenn ich das wie im Code mache, dann liegen sie in der 2. Reihe wieder alle aufeinander.)

Code: [AUSKLAPPEN]
   a=0
   breiteInItems=40
   For i.item = Each item
      a=a+1
      reihe=0/breiteInItems
      spalte=a Mod breiteInItems
      If spalte>=6 Then
         reihe=reihe+1
         spalte=1
      EndIf
      DrawImage i\gfx,(x_pos%+spalte*40)-18,(y_pos%+reihe*40)+60
   Next
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Goodjee

BeitragFr, Jan 29, 2010 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
setz die breiteinitems auf 6 Wink und kick dann die if raus

und die 0 da sollte irgendwie eg ein a sein?
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

N0X

BeitragFr, Jan 29, 2010 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso, ja logisch!
Aber jetzt wird in der ersten Reihe von Stelle 1 (oder 0) gemalt, und ab der 2. Reihe von Stelle 0 (oder -1?) warum und wie kann ich das ändern?
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Goodjee

BeitragFr, Jan 29, 2010 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ich meinte eg:

reihe=0/breiteInItems

=> reihe=a/breiteInItems


ok, a nich am anfang osndern am ende der schleife um eins erhöhen
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

N0X

BeitragFr, Jan 29, 2010 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, klappt wunderbar, wie kann ich jetzt einen Stop einbauen nach 5 Reihen?
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Goodjee

BeitragFr, Jan 29, 2010 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
if(reihe>5) exit
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

N0X

BeitragFr, Jan 29, 2010 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Gelöst.
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group