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

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

51

06.09.2010, 19:45

Und wie erhälst du diese boolean arrays in der Methode "LoadLevel" zurück? Ich seh' das da irgendwie nicht, nicht einmal 'ne Referenz.
Vielleicht liegt es daran. Ansonsten renderst du sie vielleicht nur nicht, aber bei der Kollisionsabfrage berücksichtigst du sie trotzdem? Ich mein ich sehe zwar eine if Abfrage

C-/C++-Quelltext

1
if (showlevel[levelspritenr] == true)
aber keinerlei Überprüfung, ob das Sprite in dem Level überhaupt aktiv ist, was ggf. auch mit meinem ersten Problem zusammenhängt: das ich nirgends sehe, wo du die Level-Boolean arrays holst :o Oder ist das ein globales array? (was böse wäre, da von überall manipulierbar).
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

52

06.09.2010, 19:52

auszug auf CGame::Init() (wollte ich euch eig ersparen..^^), die showlevel's sind booleans, die levelsprites eben sf::Sprite 's. alle deklariert in der Game.h .

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    showlevel1 = false;
    showlevel2 = false;
    showlevel3 = false;
    showlevel4 = false;
    showlevel5 = false;
    showlevel6 = false;
    showlevel7 = false;
    showlevel8 = false;

    levelsprite[0] = level1;
    levelsprite[1] = level2;
    levelsprite[2] = level3;
    levelsprite[3] = level4;
    levelsprite[4] = level5;
    levelsprite[5] = level6;
    levelsprite[6] = level7;
    levelsprite[7] = level8;

    showlevel[0] = showlevel1;
    showlevel[1] = showlevel2;
    showlevel[2] = showlevel3;
    showlevel[3] = showlevel4;
    showlevel[4] = showlevel5;
    showlevel[5] = showlevel6;
    showlevel[6] = showlevel7;
    showlevel[7] = showlevel8;

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

53

06.09.2010, 20:01

Ah Klassenmember. Dann kennzeichne die auch bitte so. Entweder mit m_[...] oder greif mit dem this Zeiger darauf zu, dafür ist er immerhin auch da ;)
Dein Code ist ziemlicher Murks, den sollte man zusammen neu entwerfen. Irgendwie wird man daraus jedenfalls nur sehr schwer schlau.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Architekt« (06.09.2010, 21:03) aus folgendem Grund: Für NachoMan editiert ;)


54

06.09.2010, 20:56

ich versteh ihn :D
hilft mir aber grade nicht, solange ihr ihn nicht versteht.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

55

06.09.2010, 21:08

ich versteh ihn :D
hilft mir aber grade nicht, solange ihr ihn nicht versteht.

Dann zeig mal den gesamten Code, ab besten mit bereits differenzierten Klassenmembern. Also statt einfach showlevel zu schreiben, this->showlevel oder m_showlevel.
Dann schau ich nochmal rüber.
Und Kommentare bitte etwas besser einrücken, dieses seitliche scrollen ist nervig :/
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

56

06.09.2010, 21:08

edit: Doppelpost zwecks Board Fehlers. Benutzt ihr 32 oder 64 bit integer für eure Hashs? :D
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige

Ähnliche Themen