// // GameBridge.m // danmaku // // Created by Sam Jaffe on 5/28/19. // Copyright © 2019 Sam Jaffe. All rights reserved. // #import "GameBridge.h" #import #include "danmaku/world.hpp" #include "game/engine/game_dispatch.hpp" #include "game/graphics/renderer.hpp" @implementation GameBridge { std::shared_ptr renderer; std::shared_ptr game; } - (id)init { if (!(self = [super init])) { return nil; } using namespace graphics; renderer = std::make_shared(driver::openGL); game = std::make_shared(renderer); auto world = danmaku::world::load_world("scripts/level/world.json", game); game->register_scene(world); game->activate_scene("light-1"); return self; } - (void) pause { // env::pause_clock(); } - (void) unpause { // env::resume_clock(); } - (void) update { game->update(); } - (void) render { game->render(); } - (void) refresh { renderer->clear(); game->render(); } - (void) keyEvent:(int)key down:(BOOL)pressed { game->process_key_event(key, pressed); } @end