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

TigerClaw25

unregistriert

31

08.04.2013, 20:56

Das kann sein, momentan gehen die garnicht kaputt

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

32

08.04.2013, 21:31

Hast du auch m_HitCount mit 0 in der Initialisierungsliste initialisiert?
@BlueCobold:
Irgendwie hab ich da nicht nachgedacht... Man braucht natürlich die SetAlive-Methode.

TigerClaw25

unregistriert

33

08.04.2013, 21:59

Ja habe ich

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

34

08.04.2013, 22:18

Okay, Fehler von mir, sorry. m_HitCount++; muss VOR if(m_HitCount==2) sein. Der else if Teil kann weg.

TigerClaw25

unregistriert

35

08.04.2013, 22:29

Werde es morgen frueh nochmal testen. Versteje es nur nichtg. Rufe die Funktion ja nur 1x pro Durchgang in der Game::Run auf,
Und zwar pro Treffer. Dabei wird die Funktion doch nicht 2x durchlaufen, bis der Zaehler den Wert 2 erreicht.

36

08.04.2013, 22:42

ItAsteroid->SetAlive(false);
Das da^^ist aber verwirrend, weil das Ding dadurch nicht immer gekillt wird.

unter den Umständen kann man auch m_bIsAlive ganz weglassen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Statt SetAlive..
void AddHit()
{
    m_hit++;
}

bool IsAlive()
{
    return m_hit < 2;
}

//Für SetAlive(false)..
void KillMe()
{
    m_hit = 2;
}

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dr.hallo« (08.04.2013, 22:54)


TigerClaw25

unregistriert

37

09.04.2013, 10:15

Also es klappt einfach nicht, denke, dass ich in der Game:Run etwas ändern muss ... es klappt irgendwie nicht ...

38

09.04.2013, 12:33

Na dann zeig doch mal deine Asteroid Klasse. Es kann eigentlich nur daran liegen.

TigerClaw25

unregistriert

39

09.04.2013, 16:26

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// SetAlive
//
// Aufgabe: -
//
void CAsteroid::SetAlive () 
{
    m_HitCount++;
    
}
// SetAlive

    bool IsAlive  () {return m_HitCount<2;}
        
        void KillMe(){m_HitCount = 2;};


Klappt aber nicht ...

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

40

09.04.2013, 16:35

Da fehlt aber noch was...

Werbeanzeige