Guten Morgen!
Erstmal danke für die Antwort! Mich hat das keine Ruhe gelassen und hab mich heute Früh vor der Arbeit nochmal
rangesetzt und konnte den Fehler finden:
|
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
//Asteroid.hpp
//
class CAsteroid
{
public:
void Init (CSprite *pSpriteAsteroid, float fXPos, float fYPos);
void Update ();
void Render ();
bool IsAlive () {return m_bIsAlive;}
void SetAlive (bool bIsAlive) {m_bIsAlive = bIsAlive;}
SDL_Rect GetRect () {return m_Rect;}
private:
CSprite *pSpriteAsteroid; // Zeiger auf Asteroiden-Sprite
float m_fXPos; // X-Position des Asteroiden
float m_fYPos; // Y-Position des Asteroiden
float m_fAnimPhase; // Akt. Animationsphase des Asteroiden
bool m_bIsAlive; // "Lebt" der Asteroid noch?
SDL_Rect m_Rect; // Rect des Asteroiden
};
//Asteroid.cpp
void CAsteroid::Init (CSprite *pSpriteAsteroid, float fXPos, float fYPos)
{
// Zeiger auf Sprite kopieren und Koordinaten setzen
pSpriteAsteroid = pSpriteAsteroid;
m_fXPos = fXPos;
m_fYPos = fYPos;
// Animation beginnt beim ersten Einzelbild
m_fAnimPhase = 0.0f;
// Rect initialisieren
m_Rect.x = static_cast<int>(fXPos);
m_Rect.y = static_cast<int>(fYPos);
m_Rect.w = pSpriteAsteroid->GetRect().w;
m_Rect.h = pSpriteAsteroid->GetRect().h;
// Asteroid aktivieren
m_bIsAlive = true;
} // Init
|
Fehler: Zeile 14 und 27
Somit wollte die Funktion wohl auf nen privaten Zeiger zugreifen. Warum dann aber keine Fehlermeldung/Warnung
in VS13 angezeigt wurde, bleibt mir ein Rätsel. Hat das was damit zu tun, dass es ein Zeiger is?
Aber sollte dann nicht die Adresse privat sein
Nachdem ich das bereinigt habe, konnte ich endlich das Spiel starten und verschoss schöne große, violette, rechteckige Laser
Diesen Fehler konnte ich aber recht schnell finden
Danach wollte ich die exe-datei auf Dropbox laden um auch auf anderen Rechnern Zugriff darauf zu haben. Beim Versuch die
Datei zu öffnen schrie er nach der SDL.dll Datei, die ich dann auch in den Ordner kopierte. Jetzt kam zwar keine Fehlermeldung mehr
aber er startet das Spiel nicht über die exe, über VS geht noch immer alles.
Nun zu meiner Frage, was ist diese SDL.dll Datei überhaupt, ist das quasi die Datei wo alle für den Code benötigten SDL Funktionen
gespeichert werden? Und wie kann ich nun die exe auf anderen Rechnern zum Laufen bringen? Oder muss ich immer alle .hpp und .cpp
Dateien zur Verfügung stellen, dass kann ich mir aber auch nicht vorstellen... weil dann könnte man es ja nur mit ner
Entwicklungsumgebung aufmachen...