| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //
- // GameBridge.m
- // danmaku
- //
- // Created by Sam Jaffe on 5/28/19.
- // Copyright © 2019 Sam Jaffe. All rights reserved.
- //
- #import "GameBridge.h"
- #import <memory>
- #include "danmaku/world.hpp"
- #include "game/engine/game_dispatch.hpp"
- #include "game/graphics/renderer.hpp"
- @implementation GameBridge {
- std::shared_ptr<graphics::direct_renderer> renderer;
- std::shared_ptr<engine::game_dispatch> game;
- }
- - (id)init {
- if (!(self = [super init])) {
- return nil;
- }
-
- using namespace graphics;
- renderer = std::make_shared<direct_renderer>(driver::openGL);
- game = std::make_shared<engine::game_dispatch>(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
|