types, hab ich da was falsch verstanden?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: types, hab ich da was falsch verstanden?

BeitragMi, Jun 27, 2007 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
hi leute,
Irgendwas hab ich bei den types glaube ich falsch verstanden.
Ich hab folgende codes:

Code: [AUSKLAPPEN]

;rechs-taste
If KeyDown(205) Then
If map(px+1,py) = 13 Then
map(px+1,py) = 0
If aa < 1 Then
move = 4
aa = 1

shoulders_red.item=New item
shoulders_red\anzahl=1
shoulders_red\wear=1
End If
End If
End If


und

Code: [AUSKLAPPEN]

;rechs-taste
If KeyDown(205) Then
If map(px+1,py) = 11 Then
map(px+1,py) = 0
If aa < 1 Then
move = 4
aa = 1

shoulders_silv.item=New item
shoulders_silv\anzahl=1
shoulders_silv\wear=1
End If
End If
End If


so , wenn ich jetzt auf map=12 laufe, dann werden die silbernen schulterbilder angezeigt.

Liegt das daran, dass wenn shoulders_red\wear=1 autmatisch wear für alle ...\wear=1 ist???
Ist das so??

Wenn ja müsste ioch für jedes item ja n extra tyoe machen


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Silver_Knee

BeitragMi, Jun 27, 2007 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
1. wie genau unterscheidest du denn shoulders_red von shoulders_silv?
so?
Code: [AUSKLAPPEN]
If shoulders_silv <> null
dann müsste eslaufen aber dann wäre eig auch der type unsinnig .....
2. nebenbei wo läuft wer hin und von wo kommt er? kommt er von der 10 und geht an der 11 vorbei auf die 12 so wäre Code: [AUSKLAPPEN]
If map(px+1,py) = 11 Then

zwischendrin true und soweit ich das verstehe macht der code dann was er soll

mas93

BeitragMi, Jun 27, 2007 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
der type:

Code: [AUSKLAPPEN]

Type item
Field x
Field y
Field anzahl
Field wear
End Type


die abfrage:
Code: [AUSKLAPPEN]

;--------------------------------------------------------SHOULDER_RED----------------------------------------------------------------
;rechs-taste
If KeyDown(205) Then
If map(px+1,py) = 13 Then
map(px+1,py) = 0
If aa < 1 Then
move = 4
aa = 1

shoulders_red.item=New item
shoulders_red\anzahl=1
shoulders_red\wear=1
End If
End If
End If

;lings-taste
If KeyDown(203) Then
If map(px-1,py) = 12 Then
map(px-1,py) = 0
If aa < 1 Then
move = 3
aa = 1

shoulders_red.item=New item
shoulders_red\anzahl=1
shoulders_red\wear=1
End If
End If
End If

;oben-taste
If KeyDown(200) Then
If map(px,py-1) = 12 Then
map(px,py-1) = 0
If aa < 1 Then
move = 2
aa = 1

shoulders_red.item=New item
shoulders_red\anzahl=1
shoulders_red\wear=1
End If
End If
End If

;unten-taste
If KeyDown(208) Then
If map(px,py+1) = 12 Then 
map(px,py+1) = 0
If aa < 1 Then
move = 1
aa = 1

shoulders_red.item=New item
shoulders_red\anzahl=1
shoulders_red\wear=1
End If
End If
End If

For shoulders_red.item=Each item
If shoulders_red\wear=1 Then DrawImage shoulders_red_pic,ppx-scrollx,ppy-scrolly
Next


;--------------------------------------------------------SHOULDER_SILV----------------------------------------------------------------
;rechs-taste
If KeyDown(205) Then
If map(px+1,py) = 11 Then
map(px+1,py) = 0
If aa < 1 Then
move = 4
aa = 1

shoulders_silv.item=New item
shoulders_silv\anzahl=1
shoulders_silv\wear=1
End If
End If
End If

;lings-taste
If KeyDown(203) Then
If map(px-1,py) = 11 Then
map(px-1,py) = 0
If aa < 1 Then
move = 3
aa = 1

shoulders_silv.item=New item
shoulders_silv\anzahl=1
shoulders_silv\wear=1
End If
End If
End If

;oben-taste
If KeyDown(200) Then
If map(px,py-1) = 11 Then
map(px,py-1) = 0
If aa < 1 Then
move = 2
aa = 1

shoulders_silv.item=New item
shoulders_silv\anzahl=1
shoulders_silv\wear=1
End If
End If
End If

;unten-taste
If KeyDown(208) Then
If map(px,py+1) = 11 Then 
map(px,py+1) = 0
If aa < 1 Then
move = 1
aa = 1

shoulders_silv.item=New item
shoulders_silv\anzahl=1
shoulders_silv\wear=1
End If
End If
End If

For shoulders_silv.item=Each item
If shoulders_silv\wear=1 Then DrawImage shoulders_silv_pic,ppx-scrollx,ppy-scrolly
Next

www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Silver_Knee

BeitragMi, Jun 27, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
du bist auch drauf reingefallen wie schön....
Code: [AUSKLAPPEN]
For shoulders_silv.item=Each item
If shoulders_silv\wear=1 Then DrawImage shoulders_silv_pic,ppx-scrollx,ppy-scrolly
Next

das geht nicht nur mit den objekten die mit der variable shoulders_silv erstellt wurden sondern alle objekte dieses types dh auch die die mit shoulders_red erstellt wurden und nun ist die antwort ganz einfach: bei einem code
Code: [AUSKLAPPEN]
for aa.TYPE= Each TYPE
  Drawimage aa_cool,aa\x,aa\y
next

.....

for bb.TYPE= Each TYPE
  Drawimage aa_cool,bb\x,bb\y
next

übermalt der 2. teil schlicht den ersten da beide schleifen mit dem selben type arbeiten.

Lösung:
1. du benutzt 2 verschieden types...
2. du machst in den type eine identifizierungsvariable:
Code: [AUSKLAPPEN]
Type item
Field x
Field y
Field anzahl
Field wear
Field ist_rot
End Type


bei allen silbernen msetzt du
..\ist_rot=0
und bei allen roten
..\ist_rot=1

dann kannst du in einer fornext schleife alles abfrgen:
Code: [AUSKLAPPEN]
For all.item=Each item
If all\wear=1
 if all\ist_rot
  DrawImage shoulders_red_pic,ppx-scrollx,ppy-scrolly
 else
  DrawImage shoulders_silv_pic,ppx-scrollx,ppy-scrolly
 endif
Next


EDIT 1 fehler SB 6+

mas93

BeitragMi, Jun 27, 2007 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, habs jetzt mit mehreren types gemacht, da mehr als die beiden schulern eingebaut werden^^

so

Jetzt wollte ich ein inventar einbauen.
Wie mache ich das am besten?

Habt ihr n denkanstoss?

wäre nett

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Silver_Knee

BeitragMi, Jun 27, 2007 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
für alles einen type mit identifizierungs_var nehmen dann nurnoch for aa =each ding.....^^

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group