Seite 1 von 1

figur die bestimmte sprites aufsammeln kann (upgrades)

Verfasst: 10.10.2005 12:08
von seggl
wie kann ich es anstellen, dass eine figur etwas aufsammeln kann z.b. stärkere schüsse d.h. wenn die figur das jeweilige sprite berührt oder drüber fährt der schaden des schusses dann z.b. von 10 auf 15 gehoben wird und das sprite dann verschwindet. also, dass dann dieses upgrade weg ist und wenn man ein zweites mal drüberfährt auch nichts mehr passiert??
habs schon mit spritecollison und einer data section auprobiert hat aber nicht wirklich gefunzt.

wegen der data section etwa so hab ichs gemacht:

Code: Alles auswählen

DataSection                         
Data.l 1,1,1,1,1,1,1,1,1,1,1,1
Data.l 1,0,3,0,0,0,0,0,0,3,0,1
Data.l 1,0,0,0,0,0,0,0,0,0,0,1        ;1 = wand (nicht durchfahrbar)
Data.l 1,0,0,0,3,0,0,0,0,0,0,1        ;0 = freier raum (durchfahrbar)
Data.l 1,0,0,0,0,0,0,0,0,0,0,1        ;3 = upgrade sprite(erhöt werte)
Data.l 1,0,0,0,0,0,0,0,3,0,0,1        
Data.l 1,0,0,3,0,0,0,0,0,0,0,1
Data.l 1,1,1,1,1,1,1,1,1,1,1,1

Verfasst: 10.10.2005 12:26
von hardfalcon
Nun, du setzt alle deine #Sprite in eine LinkedList, und gehst diese Liste dann vor jedem Bildaufbau durch. Wenn die Spielfigur (bzw. das Sprite dieser Figur) dann ein Sprite aus deiner LinkedList berèhrt, dann erhéhst du den entsprechenden Wert je nachdem, WELCHES Upgrade der Spieler berührt hat, und du löschst sowohl das eigentliche Sprite als auch dessen Eintrag in der LinkedList.
Ist an sich ganz einfach (zumindest das Konzept)... :allright:

Verfasst: 10.10.2005 12:54
von seggl
danke aber ich hab ein bisschen ein problem mit der umsetzung z.b bin ich nich so vertraut mit linked lists. könntest du mir vielleicht ein ganz einfach gehaltenes beispiel geben?

Verfasst: 10.10.2005 15:29
von hardfalcon

Verfasst: 10.10.2005 17:23
von seggl
nun noch eine frage wie kann ich ein sprite aus der linked list bzw. sonst normalerweise löschen???

Verfasst: 10.10.2005 17:28
von hardfalcon
Aus der LinkedList löschst du kein Sprite, sondern nur das Element mit der Nummer des zu löschenden Sprites. Das Sprite selber löschst du mit ...

(... = Schau in der Hilfe unter "Sprite & Screen")

Verfasst: 10.10.2005 17:31
von Kiffi
> wie kann ich ein sprite aus der linked list bzw. sonst normalerweise löschen?

Zuerst musst Du das entsprechende Element selektieren:

Code: Alles auswählen

SelectElement(DeineLinkedList(), Position)
danach kannst Du es löschen:

Code: Alles auswählen

DeleteElement(DeineLinkedList())
Grüße ... Kiffi