C ++ State Machine, унаследованный класс со значениями элементов с неправильным синтаксисомC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C ++ State Machine, унаследованный класс со значениями элементов с неправильным синтаксисом

Сообщение Anonymous »

Я не знаю, имеет ли свой заголовок вопрос о том, что заранее извиняюсь за это. Итак ... я пытаюсь реализовать машину состояния для небольшой игры, которую я пытаюсь сделать, используя C ++ и SFML.

У меня есть gameloopobject абстрактный класс, который нуждается в аргументе renderwindow и имеет эти виртуальные методы: Update , рисовать , gangeinput and reseste . /> Тогда у меня есть гейместат абстрактный класс, который наследует от GameloopObject , но не добавляет ничего нового, поэтому он в основном такой же, как GameloopObject , на данный момент. Игровые блюда. Я бы предпочел оставить их пустыми (если это возможно в C ++), так как объекты Gamestate < /code> хранятся внутри них сразу после создания объекта GameStateManager < /code>.GameStateManager(sf::RenderWindow & w) :
GameLoopObject(w),
currentState(new GameState(w)),
nextState(new GameState(w));
< /code>

, который дает мне «нет конструктора по умолчанию для класса» для класса «gameloopobject» »< /p>

Это остальная часть моего кода: < /p>

/*
* GameStateManager.hpp
*/

#ifndef GameStateManager_HPP
#define GameStateManager_HPP

#include "stdafx.h"
#include "GameLoopObject.hpp"
#include "GameState.hpp"
#include
#include

class GameStateManager : GameLoopObject {
private:
GameState currentState;
GameState nextState;
public:
std::map gameStates{}; // list where all known gamestates are stored.

// methods
GameStateManager(sf::RenderWindow & w);

void AddGameState(std::string name, GameState * state);
void SetNext(std::string name);
void SwitchState();
void HandleInput();
void Update();
void Draw();
void Reset();
};

#endif //GameStateManager_HPP

/*
* GameStateManager.cpp
*/
#include "stdafx.h"
#include "GameStateManager.hpp"

GameStateManager::GameStateManager(sf::RenderWindow & w)
// : GameLoopObject(w)
{
GameState currentState(w);
GameState nextState(w);
}

void GameStateManager::AddGameState(std::string name, GameState * state)
{
gameStates.insert(std::make_pair(name, * state));
}

void GameStateManager::SetNext(std::string name)
{
//check if user wants to exit (close window with X)
if (gameStates.count(name))
{
nextState = gameStates[name];
}
}

void GameStateManager::SwitchState()
{
if (currentState != nextState)
{
currentState = nextState;
}

}

void GameStateManager::HandleInput()
{
// if(currentState != null)
currentState.HandleInput();
}

void GameStateManager::Update()
{
// if(currentState != null)
currentState.Update();
}

void GameStateManager::Draw()
{
// if(currentState != null)
currentState.Draw();
}

void GameStateManager::Reset()
{
// if(currentState != null)
currentState.Reset();
}


Подробнее здесь: https://stackoverflow.com/questions/483 ... ect-syntax
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ninject: как получить унаследованный тип вместо базового типа, если унаследованный тип помечен атрибутом
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между синтаксисом метода и синтаксисом запроса?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать State Machine в чистой архитектуре?
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать State Machine в чистой архитектуре?
    Anonymous » » в форуме Android
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Конфигурация по умолчанию для Spring State Machine с JPA
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»