AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Shooter Kugeln, aber wie??

Ein Thema von Mautstelle · begonnen am 15. Feb 2004 · letzter Beitrag vom 18. Feb 2004
Antwort Antwort
Mautstelle

Registriert seit: 9. Feb 2004
15 Beiträge
 
#1

Shooter Kugeln, aber wie??

  Alt 15. Feb 2004, 14:33
Hi. Ich bastle fleissig an meinem GTA ähnlichen Spiel, jetzt ist das problem, dass
ich nicht weiss wie ich da Geschosse durch die Gegend fliegen lassen soll.

Bisher habe ich mal folgendes probiert:
-Eine Klasse erstellt (TImageSpriteEX)
-von dieser Klasse ein dynamisches Array angelegt

also jedes mal wenn ich schieße wird dem array ein Element zugefügt. Das heisst im Endeffekt, das
ein kleines Bild rumfliegt.

Meine Bedenken sind da nur der Speicher, wie soll ich die Elemente bei Kollisionen löschen, und was soll ich dann mit meinem array anstellen??

Hat jemand von euch schon mal was ähnliches gemacht, oder wie würdet ihr das angehen??

thx für hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Shooter Kugeln, aber wie??

  Alt 15. Feb 2004, 14:50
An der Stelle würde ich Dir eine TObjectList empfehlen, unit Contnrs, weitere Infos in der Online Hilfe. Arbeiten tut diese Klasse wie die TList und ähnlich der TStringList.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#3

Re: Shooter Kugeln, aber wie??

  Alt 18. Feb 2004, 00:00
Du hast doch vermutlich einen Timer o.ä. in dem du die Kollision abfragst. Wenn eine Kollision stattgefunden hat, dann kannst du per MeinArray[xyz].Free den benutzen Speicher wieder freisetzen.

Anschliessend hast du entweder die Möglichkeit, alle Einträge nach dem gelöschten nach vorne zu verschieben oder einfach frei zu lassen und bei einem neuen "Schuss" einfach die oder eine andere leere Stelle besetzen.

Nachteil von Verschieben :

Speicherverbrauchend, da du dann wieder die Liste durchgehen musst bis zum ersten freien Platz, allerdings erleichtert es das spätere Einfügen ungemein.

Nachteil von Einfach Löschen :

Bei jedem neuen einfügen muss im Prinzip die ganze Liste durchgegangen werden, bis das erste freie Plätzchen kommt. Eigentlich die bessere Lösung (oder das von sakura)
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#4

Re: Shooter Kugeln, aber wie??

  Alt 18. Feb 2004, 08:45
hi, du könntest ja auch einfach bei der methode von urba noch zusätzlich eine variable einführen, die sich die position des zu löschenden objektes im array merkt (quasi den index), und diese beim nächsten schuss dazu benutzen den schuss, ohne lang im array suchen zu müssen, gleich an die jeweilige freie stelle zu basteln!

PS: ich habe in meinem weltraumballerspiel auch kein array für die schüsse benutzt, und so brauch ich mir keine gedanken über löschen und verschieben machen, und hat alles wunderbar geklappt!

gruss haegar
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz