hi,
ich mache gerade ein kleines game und ich würde gerne machen, dass man
schüsse abfeuern kann.
ich weis aber leider nicht wie ich machen kann, dass wenn man auf eine bestimmte taste drückt, dass es dann immer wieder das selbe bild nochmal
lädt.
ich hoffe ich konnte mein problem verständlich schilder.
weiss jemand zufällig, wie das geht.
philipp
sprites erstellen
du lädst das bild nur einmal und zeichnest es dann einfach mehrmals. ein sprite in purebasic ist nicht ein spriteobjekt in dem sinne, das es das nur einmal geben kann. stell dir ein sprite einfach als eine art pinsel vor, mit dem du auf dem screen malen kannst. tippst du mit dem pinsel mehrmals auf die leinwand, gibt es auch mehrere farbkleckse.
Das Problem ist dann nicht, das Sprite selber dar zu stellen, sondern die aktuellen Koordinaten zu speichern.
Dafür sind z.B. die LinkedLists, schau mal in der Hilfe nach
Da wir aber im Anfängerforum sind hier noch ne anregung
Erst mal müssen wir die Linkedliste erstellen, da diese 2 Werte speichern muss ist hier noch eine Struktur nötig. Für infos ebenfalls die Hilfe mal anschauen
.
Dann die Haupftschleife, hier musste zunächst irgend eine Taste abfragen werden und dort dann das Element erstellt werden
Anschließend muss dann in der Hauptschleife jeder existierende Schuss überprüft werden und entsprechend bewegt. Ist der Schuss überm Bildschirmrand dann wird er wieder gelöscht
^^hoffe das reicht als denkanstoß 
MFG PMV
Dafür sind z.B. die LinkedLists, schau mal in der Hilfe nach

Da wir aber im Anfängerforum sind hier noch ne anregung

Erst mal müssen wir die Linkedliste erstellen, da diese 2 Werte speichern muss ist hier noch eine Struktur nötig. Für infos ebenfalls die Hilfe mal anschauen

Code: Alles auswählen
;die Strukture POINT ist unter Windows bereits deklarieriert
;Structure Point
; X.l
; Y.l
;Endstructure
NewList Schuss.POINT()
Code: Alles auswählen
If Keyboardpushed(#PB_Key_Space)
AddElement(Schuss())
Schuss()\X = 0 ;Startposition eines Schusses
Schuss()\Y = 0
Code: Alles auswählen
ForEach Schuss()
Schuss()\X + 1
Schuss()\Y + 1
IF Schuss()\X > 800 And Schuss()\Y > 600
DeleteElement(Schuss())
else
DisplaySprite(0, Schuss()\X, Schuss()\Y)
EndIf
Next

MFG PMV
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22