Objekt einer Klasse mit Tastatur erstellen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Minits
Beiträge: 30
Registriert: So 30. Okt 2016, 21:13
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Objekt einer Klasse mit Tastatur erstellen

Beitrag von Minits »

Guten Abend liebe Forumsmitglieder,

ich möchte ein kleines SpaceInvaders Spiel programmieren. Essentieller Bestandteil des Spiels ist es ja, dass das Raumschiff per Klick auf die Leertaste einen senkrechten Schuss nach oben abgibt.
Hier mein Problem: Ich habe leider keine Ahnung wie ich das Geschoss auf diese Weise erstellen könnte.

Ich denke, man müsste den Geschossen eine eigene Klasse geben, in der eben alle Eigenschaften, wie Textur, Höhe und Breite definiert ist.
Natürlich müsste ich auch die x/y-Koordinaten des Raumschiffes angeben, sodass sie einen Startpunkt haben.
Dann brauchen sie noch zwei Vektoren, einen für die Richtung und den anderen für die Geschwindigkeit.

Nur weiß ich nicht, wie man es so einrichtet, dass die Geschosse eben beim Klicken der Leertaste erst erstellt werden und dann sofort nach oben fliegen.

Vielen Dank im Voraus für eure Denkanstöße und Hilfen!

PS: falls es jemand sehen will, hier sind meine bisherigen Sachen zum Projekt:

project1.lpr
(398 Bytes) 65-mal heruntergeladen

enemies.lpr
(386 Bytes) 65-mal heruntergeladen

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Objekt einer Klasse mit Tastatur erstellen

Beitrag von MacWomble »

Minits hat geschrieben:Ich denke, man müsste den Geschossen eine eigene Klasse geben, in der eben alle Eigenschaften, wie Textur, Höhe und Breite definiert ist.
Natürlich müsste ich auch die x/y-Koordinaten des Raumschiffes angeben, sodass sie einen Startpunkt haben.
Dann brauchen sie noch zwei Vektoren, einen für die Richtung und den anderen für die Geschwindigkeit.



... und das ist dann der besagte Orchestrator (vermute ich)
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Objekt einer Klasse mit Tastatur erstellen

Beitrag von Mathias »

Das Geschoss bewegst du am besten in einem Timer.

Ich habe im Anhang ein einfaches Pongspiel, hier sieht man gut, wie der Ball in einem Timer bewegt wird.
Das Pong sollte nur als Anregung, für die Steuerung sein, Schläger = Raumschif, Ball = Geschoss.

Ich denke, man müsste den Geschossen eine eigene Klasse geben,

Dies wäre natürlich die sauberste Lösung, aber die Bewegung muss du immer noch mir dem Timer machen.
Die Klasse würde nur die XY-Koordinate speichern, und sich um die Darstellung der Mesh kümmern.
Dateianhänge
Pong.tar.gz
(127.06 KiB) 75-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten