Hallo Leute,
nach etwas längerer Programmier-Pause musste ich feststellen dass ich doch einiges verlernt hatte.
Ich versuche mein "Spiel"(Bewegbarer Kreis) so zu schreiben dass ich möglichst vieles davon für spätere Projekte wiederverwenden kann.
Das Prinzip: Ich habe eine Framework Klasse die SFML initialisiert, das Fenster öffnet und die MainLoop beinhält. Diese Klasse soll für jedes Projekt einfach wiederverwendet werden können. Die MainLoop führt Game.Update aus. Diese Funktion vereint einfach alle anderen Update Funktionen wie Player.Update usw.
Der Code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
void Framework::Run()
{
Player player;
Game game;
player.Init();
while (window.isOpen())
{
ProcessEvents();
Game.Update();
window.clear(sf::Color::Green);
window.draw(player.circle);
window.display();
}
}
|
|
C-/C++-Quelltext
|
1
2
3
4
|
void Game::Update()
{
Player::Update();
}
|
|
C-/C++-Quelltext
|
1
2
3
4
|
void Player::Update()
{
Player::Moving();
}
|
Das Problem: 'Player::Update': Unzulässiger Aufruf einer nicht statischen Memberfunktion
Ich kann Player::Update doch nicht einfach statisch machen oder?
Und eine Instanz von Player vorher zu erzeugen geht auch nicht da sie jedes Frame aufgerufen wird.
Hoffe ihr versteht was ich meine und danke im voraus,
Crazy007