Пример #1
0
void PinballHost::init() {

	PinballBridgeInterface *bi = new PinballBridgeInterface();
	bi->setGameName("Flipperfall");
	bi->init();
	
	Playfield *f = new Playfield();
	f->setBridgeInterface(bi);
	f->init();

	Physics *p = new Physics();
	p->setBridgeInterface(bi);
	p->setPlayfield(f);
	p->init();

	Camera *c = new Camera();
	c->setBridgeInterface(bi);
	c->setPlayfield(f);
	c->init();

	Editor *t = new Editor();
	t->setBridgeInterface(bi);
	t->setPlayfield(f);
	t->setCamera(c);
	t->setPhysics(p);
	t->init();

	GlutEngine *e = new GlutEngine();
	e->init();

	Renderer *r = new Renderer();
	r->setBridgeInterface(bi);
	r->setPlayfield(f);
	r->setPhysics(p);
	r->setCamera(c);
	r->setEditor(t);
	r->init();
	
	Game *g = new Game();
	g->setBridgeInterface(bi);
	g->setPhysics(p);
	g->setRenderer(r);
	g->init();
	
	// TODO: find factoring error/s
	e->setPhysics(p);
	e->setRenderer(r);
	e->setGame(g);
	e->setEditor(t);
	
	_glutEngine = e;

}
Пример #2
0
void PinballHost::init(const char *gameName) {

	std::cout << "starting " << gameName << std::endl;
	PinballBridgeInterface *bi = new PinballBridgeInterface();
	bi->setGameName(gameName);
	
	Playfield *f = new Playfield();
	f->setBridgeInterface(bi);
	f->init();

	Physics *p = new Physics();
	p->setBridgeInterface(bi);
	p->setPlayfield(f);
	p->init();

	Camera *c = new Camera();
	c->setBridgeInterface(bi);
	c->setPlayfield(f);
	c->init();

	Editor *t = new Editor();
	t->setBridgeInterface(bi);
	t->setPlayfield(f);
	t->setCamera(c);
	t->setPhysics(p);
	t->init();

	GlutEngine *e = new GlutEngine();
	e->init();

	Renderer *r = new Renderer();
	r->setBridgeInterface(bi);
	r->setPlayfield(f);
	r->setPhysics(p);
	r->setCamera(c);
	r->setEditor(t);
	r->init();
	
	Game *g = new Game();
	g->setBridgeInterface(bi);
	g->setPhysics(p);
	g->setRenderer(r);
	g->init();
	
	// TODO: find factoring error/s
	e->setPhysics(p);
	e->setRenderer(r);
	e->setGame(g);
	e->setEditor(t);
	
	_engine = e;

}
Пример #3
0
EXPORT
int startGUInity()
{
    
    int notOK = GraphicsSystem::getInstance()->init(1024,768);
	if (notOK)
		return 1;
    
    AssetDatabase::init();
    
    Input input(GraphicsSystem::getInstance()->getWindow());
	
	SoundSystem::getInstance()->init();
    
    Physics physics;
    physics.init();
    
    
    EngineMode engineMode = EngineMode::editor;
    
    shared_ptr<Editor> editor = make_shared<Editor>();
    editor->init();
    
    shared_ptr<Game> game = make_shared<Game>();
    game->init();
    
    shared_ptr<MyGame> myGame = make_shared<SpaceShipGame>();
    
    myGame->setupInitialScene();
    
    editor->world->awake();
    game->world->awake();
    
    while (!glfwWindowShouldClose(GraphicsSystem::getInstance()->getWindow().get())) {
        Time::frameStart();
        
        Input::updateInputState();
        
        
        switch (engineMode)
        {
            case EngineMode::editor:
                editor->update(Time::deltaTime,game->world);
                break;
            case EngineMode::game:
                game->update(Time::deltaTime);
                break;
            default:
                break;
        }
		
        if (Input::getKeyPressed(GLFW_KEY_1))
            engineMode = EngineMode::editor;
        if (Input::getKeyPressed(GLFW_KEY_2))
            engineMode = EngineMode::game;
        
        float fps = Time::frameEnd();
        cout << "FPS:" << 1.0f/fps << endl;
    }
    
    physics.shutdown();
	
    editor->shutdown();
    
    game->shutdown();
    
    // close GL context and any other GLFW resources
	SoundSystem::getInstance()->shutdown();
    GraphicsSystem::getInstance()->shutdown();
    
    return 0;
}