Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

11

24.08.2008, 23:44

Zitat von »"Arrows"«

- Hab es geschafft dass das Schiff Raketen schießt, die Raketen sind dabei in einer <list>, um bei jedem Frame upgedated (also bewegt) zu werden. Wie kann ich jede Rakete ein paar Sekunden nach ihren Abschuss wieder löschen?
Macht dir das löschen ansich probleme? Dann schau dir mal die pop Methoden an. Oder hast du Probleme mit der Spiellogik? Also den Zeitpunkt des löschens herauszufinden?

Zitat von »"Arrows"«

- Wie schaffe ich es, ein Sprite hinter oder vor das andere zu bringen (also quase in dem fall die z - Achse ;))
Render in der Reihenfolge der Z Achse ;) Was zuerst gerendert wird ist "unten", wenn du danach was an der gleichen Position renderst, ist das "oben drauf".

12

25.08.2008, 07:52

Zitat

Render in der Reihenfolge der Z Achse Was zuerst gerendert wird ist "unten", wenn du danach was an der gleichen Position renderst, ist das "oben auf".


okay, läuft ;)


Zitat

Macht dir das löschen ansich probleme? Dann schau dir mal die pop Methoden an. Oder hast du Probleme mit der Spiellogik? Also den Zeitpunkt des löschens herauszufinden?


Das löschen ist klar, aber wie kann ich auf jede Rakete in der Liste eine Zeit speichern?
Dieser Post wurde aus artgerecht gehaltenen, 100% chlorfrei gebleichten, handelsüblichen Elektronen aus Freihaltung erzeugt.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

13

25.08.2008, 10:28

Zitat

Das löschen ist klar, aber wie kann ich auf jede Rakete in der Liste eine Zeit speichern?

Indem du die hald irgendwie speicherst?

In der Rakete irgendwie m_LifeTime, oder so speichern, welche du dann einfach für jede Rakete individuell hochzählst.

14

25.08.2008, 11:17

ok danke ich glaub ich werds zusammenbringen ;)

EDIT [Ein Jahr später]:
Awwh ich hab die Lösung hier niemals gepostet!
Tut mir Leid, aber hier ist sie:

In der Funktion Draw() jedes Sprites, etc. einfach die Position verändern, zB: so

C-/C++-Quelltext

1
2
3
4
5
    m_vPosition.x -= ViewDifferenceX;
    m_vPosition.y -= ViewDifferenceY;
    // Zeichnen

    m_vPosition.x += ViewDifferenceX;
    m_vPosition.y += ViewDifferenceY;


ViewDifferenceX wird bei einer 1000*1000 Map zB folgendermaßen berechnet:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        if (ViewDifferenceX < 0)
        {
            ViewDifferenceX = 0;
        }
        if (ViewDifferenceY < 0)
        {
            ViewDifferenceY = 0;
        }
        if (ViewDifferenceX > 29)
        {
            ViewDifferenceX = 29;
        }
        if (ViewDifferenceY > 280)
        {
            ViewDifferenceY = 280;
        }
Dieser Post wurde aus artgerecht gehaltenen, 100% chlorfrei gebleichten, handelsüblichen Elektronen aus Freihaltung erzeugt.

Werbeanzeige