Hallo Leute,
ich habe ein 2D-Spiel programmiert. Unteranderem soll nach einem gewissen Interwall ein neues Objekt (in dem Falle ein Asteroid) erstellt, und in die Liste eingeschoben werden.
Wenn ich es kompiliere, bekomme ich keine Fehlermeldungen, aber wenn ich es starte, bekomme ich ein Fenster mit einer Fehlermeldung (siehe Anhang). Hier die ganze Klasse:
Headerdateie:
|
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
|
#ifndef MANAGER_HPP
#define MANAGER_HPP
#include <iostream>
#include <list>
#include <SFML\Graphics.hpp>
#include "Asteroid.hpp"
class CAsteroidManager
{
public:
CAsteroidManager ();
void Instert (CAsteroid *Asteroid);
void Spawn (float Time);
void Update (float m_fFrameTime);
void Handle ();
void Render (sf::RenderWindow *rw);
private:
std::list<CAsteroid> mList;
sf::Clock *m_pClock;
};
#endif
|
Quelldatei:
|
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
#include "AsteroidManager.hpp"
// Kosnstuktor
//
// Aufgabe: Was halt nen Konstruktor macht
//
CAsteroidManager::CAsteroidManager ()
{
// Speicher reservieren
//
m_pClock = new sf::Clock; // Neue Uhr
m_pClock->restart (); // Uhr zurücksetzten
} // Konsruktor
// Instert
//
// Aufgabe: Kümmert sich um die Liste
//
void CAsteroidManager::Instert (CAsteroid *Asteroid)
{
mList.push_back (*Asteroid); // Asteroid in die Liste einschieben
} // Insert
// Update
//
// Aufgabe: Updatet den MAnager
//
void CAsteroidManager::Update (float m_fFrameTime)
{
Spawn (0.5f);
for (auto it : mList)
{
it.Update (m_fFrameTime);
}
} // Update
// Handle
//
// Aufgabe: Handhabt die Liste
//
void CAsteroidManager::Handle ()
{
for (auto it : mList)
{
it.Handle ();
}
} // Handle
// Render
//
// Aufgabe: Rednert alles
//
void CAsteroidManager::Render (sf::RenderWindow *rw)
{
for (auto it : mList)
{
it.Render (rw);
}
} // Render
// Spawn
//
// Aufgabe: Spawnt nach einer gewissen Zeit einen neuen Asteroiden
//
void CAsteroidManager::Spawn (float Time)
{
if (m_pClock->getElapsedTime().asSeconds() > Time)
{
// Variablen
//
int Speed = rand() %150 + 50;
int Rotation = rand() %100 + 10;
int xPosition = rand() %1000 + 30;
int yPosition = rand() %200 - 200;
// Neuen Asteroiden erstellen
CAsteroid *p = new CAsteroid (std::string ("Data/Asteroid.png"), sf::Vector2f (xPosition, yPosition), sf::Vector2f(0.1f, 0.1f), Speed, Rotation);
// In die Liste einfügen
mList.push_back (*p);
m_pClock->restart ();
}
} // Spawn
|
Was/wo liegt der Fehler?
Vielen Dank im Voraus