Explosionsanimation mit Sprites
Übersicht

dont_know_to_useBetreff: Explosionsanimation mit Sprites |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Ich bin in meinem Spiel "Fleets of the Masters" nun soweit, dass ich die Raumkämpfe realisieren möchte. Das die Schiffe auf einander schießen sieht auch schon ganz gut aus, allerdings fliegen die Schüsse durch die Schiffe hindurch ohne Explosion. Ich habe einige Explosionssprites erhalten, welcher in schneller Reigenfolge hintereinander angezeigt werden sollen, eine Animation halt. Nun stellt sich mir folgende Frage: Wie zeige ich diese Animation an der Position an, an der die Laserschüsse auf das Raumschiff treffen? Ich dachte an etwas dieser Art(Pseudocode): BlitzBasic: [AUSKLAPPEN] If Collided(Laser,Raumschiff) Then Wie genau finde ich jetzt heraus, wo die Laser auf das Schiff eintreffen? Und Wie schaffe ich es, dass die Animation korrekt angezeigt wird? Also, dass nicht alle Sprites auf einmal da sind, sondern erst das erste Sprite an dieser Position gezeigt wird, dieses dann verschwindet, dann das zweite Sprite, das verschwindet, dann das dritte ... und so weiter? mfg, dont_know ![]() |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also erstmal kannst du über LoadAnimTexture![]() ![]() Für das herausfinden, benutz du einfach CollisionX ![]() ![]() Möchtest du aber die Locale Position der Kollision am Raumschiff selber, so musst du es mit TFormPoint ![]() BlitzBasic: [AUSKLAPPEN] TFormPoint(CollisionX(schuss,0), CollisionY(schuss,0),CollisionZ(schuss,0), 0, schiff_entity) mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
ich programmiere zurzeit einen egoshooter. wenn meine kugeln auf dem boden ankommen, werden "grasspritzer" an der kollisionsposition der kugel erstellt und senkrecht gedreht. ich würde also einfach bei kollision dieses explosions-sprite an position des lasers abspielen lassen. ich finde diese methode ganz gut und einfach. ![]() |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfach? - Ja. Gut? - Leider nein.
Edit: Was hier drunter steht keine allzu große Beachtung schenken, ich hatte dich ein wenig missverstanden ![]() Denn für deinen Fall (Egoshooter), macht es einfach keinen Sinn, Kugeln fliegen zu lassen. Lieber EntityPick ![]() ![]() Für seinen Fall: Warum sollte die Explosion schon mit dem Geschoss mitfliegen ? Ist einfach unnötige Rechenleistung die da verbraucht würde. Stell dir mal vor es würde nicht nur ein Raumschiff mit einem Schuss auf ein anderes Ballern, sondern 15 Schiffe mit etwa 10 Schuss / Sekunde. Dann allein die Geschosse (Laserstrahlen? Rakten?) zu "Zeichnen" dauert schon, aber dann noch extra ein Sprite mit zu schicken ? Villeicht trifft der Schuss ja gar nicht und die Explosion wurde umsonst mitgeschickt ? Daher: Es ist besser die Explosion auch nur da zu erstellen und abzuspielen wo auch wirklich eine hinsoll, und zwar dann wenn ein Schuss auf das Schiff trifft (Schuss löschen, Explosion erstellen). mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lies mal das Timer-Tutorial: https://www.blitzforum.de/foru...hp?t=34436
und zwar das Kapitel III |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
midimaster meinst du mich?
ich versuche mal zu erklären, wie ich das mache: die kugel fliegt und wird nach 1.6 sekunden gelöscht, wenn es keine kollision gab. bei kollision wird an der stelle der kugel der erdspritzer erstellt und die kugel hat eine längere lebensdauer von 10 sekunden. der erdspritzer verschwindet nach 0.33 sekunden danach wird alles schön sauber wieder gelöscht. also fliegt nichts mit der kugel mit, sondern wird nur erstellt, wenn es eine kollision mit dem boden gab. und so performance lastig ist das auch wieder nicht, weil normalerweise niemand 100 kugeln pro sekunde abfeuert. ![]() |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
nee, eigentlich ging das an den Thema-Autor dont_know_to_use und betraf seine Frage wie man den die Spriteanimation zeitlich bremsen kann | ||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
dont_know_to_use |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke euch. Das Timer-Tutorial hat geholfen. ![]() mfg |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group