HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { core = new POLYCODE_CORE(view, 640,480,false,false,0,0,90); CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); gameScreen = new Screen(); Screen *hudScreen = new Screen(); ScreenLabel *label = new ScreenLabel("Example client. Press escape to exit.", 16); hudScreen->addChild(label); motdLabel = new ScreenLabel("", 16); motdLabel->setPosition(0, 20); hudScreen->addChild(motdLabel); client = new Client(6543, 50); client->setPersistentData(&clientData, sizeof(ClientData)); client->addEventListener(this, ClientEvent::EVENT_CLIENT_READY); client->addEventListener(this, ClientEvent::EVENT_SERVER_DATA); client->addEventListener(this, ClientEvent::EVENT_SERVER_DISCONNECTED); core->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN); core->getInput()->addEventListener(this, InputEvent::EVENT_KEYUP); client->Connect("127.0.0.1", 52345); state = 0; }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : ServerWorld(), EventHandler() { #ifdef __APPLE__ core = new CocoaCore(view, 640,480,false,false,0,0,90); #else core = new SDLCore(view, 640,480,false,false,0,0,90); #endif CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); memset(serverInfo.motd, 0, 256); strcat(serverInfo.motd, "MOTD : ** Welcome to the Network Example server! **"); gameScreen = new Screen(); Screen *hudScreen = new Screen(); infoLabel = new ScreenLabel("Example server. [0 Players]", 32); hudScreen->addChild(infoLabel); server = new Server(52345, 50, this); server->addEventListener(this, ServerEvent::EVENT_CLIENT_CONNECTED); server->addEventListener(this, ServerEvent::EVENT_CLIENT_DISCONNECTED); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) { #ifdef __APPLE__ core = new CocoaCore(view, 640,480,false,0,90); #else core = new SDLCore(view, 640,480,false,0,90); #endif CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *screen = new Screen(); sun = new ScreenShape(ScreenShape::SHAPE_CIRCLE, 100,100, 30); sun->setPosition(640/2, 480/2); sun->setColor(0.9, 0.8, 0, 1); sun->colorAffectsChildren = false; screen->addChild(sun); planet = new ScreenShape(ScreenShape::SHAPE_CIRCLE, 50,50, 30); planet->setPosition(150,0); planet->setColor(0.2, 0.8, 0, 1); planet->colorAffectsChildren = false; sun->addChild(planet); moon = new ScreenShape(ScreenShape::SHAPE_CIRCLE, 20,20, 30); moon->setPosition(50,0); moon->setColor(1, 1, 0.6, 1); planet->addChild(moon); planetRotation = 0; moonRotation = 0; }
PolycodeIDEApp::PolycodeIDEApp(PolycodeView *view) : EventDispatcher() { core = new CocoaCore(view, 800,600,false,false, 0, 0,60); core->addEventListener(this, Core::EVENT_CORE_RESIZE); CoreServices::getInstance()->getRenderer()->setClearColor(0.2,0.2,0.2); CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_NEAREST); CoreServices::getInstance()->getResourceManager()->addArchive("default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default"); CoreServices::getInstance()->getConfig()->loadConfig("Polycode", RESOURCE_PATH"UIThemes/default/theme.xml"); CoreServices::getInstance()->getResourceManager()->addDirResource(RESOURCE_PATH"UIThemes/default/", false); CoreServices::getInstance()->getResourceManager()->addDirResource(RESOURCE_PATH"Images/", false); CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_LINEAR); printf("creating font editor\n"); Screen *screen = new Screen(); editorManager = new PolycodeEditorManager(); editorManager->registerEditorFactory(new PolycodeImageEditorFactory()); editorManager->registerEditorFactory(new PolycodeScreenEditorFactory()); editorManager->registerEditorFactory(new PolycodeFontEditorFactory()); editorManager->registerEditorFactory(new PolycodeTextEditorFactory()); editorManager->registerEditorFactory(new PolycodeProjectEditorFactory()); frame = new PolycodeFrame(); frame->setPositionMode(ScreenEntity::POSITION_TOPLEFT); frame->textInputPopup->addEventListener(this, UIEvent::OK_EVENT); frame->newProjectWindow->addEventListener(this, UIEvent::OK_EVENT); frame->newFileWindow->addEventListener(this, UIEvent::OK_EVENT); frame->exampleBrowserWindow->addEventListener(this, UIEvent::OK_EVENT); frame->playButton->addEventListener(this, UIEvent::CLICK_EVENT); screen->addChild(frame); projectManager = new PolycodeProjectManager(); projectManager->setProjectBrowser(frame->getProjectBrowser()); frame->getProjectBrowser()->addEventListener(this, Event::CHANGE_EVENT); frame->getProjectBrowser()->addEventListener(this, PolycodeProjectBrowserEvent::SHOW_MENU); frame->Resize(core->getXRes(), core->getYRes()); core->setVideoMode(1000, 600, false, false, 0, 0); // CoreServices::getInstance()->getResourceManager()->addArchive(RESOURCE_PATH"tomato.polyapp"); // ScreenImage *img = new ScreenImage("tomato.png"); // screen->addChild(img); loadConfigFile(); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { core = new SDLCore(view, 640,480,false,false,0,0,90); CoreServices::getInstance()->getResourceManager()->addArchive("default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *screen = new Screen(); ScreenLabel *label = new ScreenLabel("Hello, Polycode!", 32); screen->addChild(label); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { core = new POLYCODE_CORE(view, 640,480,false,false,0,0,90); CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *screen = new Screen(); ScreenImage *image = new ScreenImage("Resources/polycode_logo.png"); screen->addChild(image); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { #ifdef __APPLE__ core = new CocoaCore(view, 640,480,false,false,0,0,90); #else core = new SDLCore(view, 640,480,false,false,0,0,90); #endif CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *screen = new Screen(); ScreenImage *image = new ScreenImage("Resources/polycode_logo.png"); screen->addChild(image); }
PolycodeIDEApp::PolycodeIDEApp(SubstanceView *view) : EventDispatcher() { core = new CocoaCore(view, 800,600,false,0,60); core->addEventListener(this, Core::EVENT_CORE_RESIZE); CoreServices::getInstance()->getRenderer()->setClearColor(0.4,0.4,0.4); CoreServices::getInstance()->getConfig()->loadConfig("Polycode", RESOURCE_PATH"UIThemes/default/theme.xml"); CoreServices::getInstance()->getResourceManager()->addDirResource(RESOURCE_PATH"UIThemes/default/", false); CoreServices::getInstance()->getResourceManager()->addDirResource(RESOURCE_PATH"Images/", false); // CoreServices::getInstance()->getFontManager()->registerFont("sans", RESOURCE_PATH"Fonts/DejaVuSans.ttf"); // CoreServices::getInstance()->getFontManager()->registerFont("mono", RESOURCE_PATH"Fonts/DejaVuSansMono.ttf"); CoreServices::getInstance()->getFontManager()->registerFont("sans", "/System/Library/Fonts/LucidaGrande.ttc"); CoreServices::getInstance()->getFontManager()->registerFont("mono", "/System/Library/Fonts/Monaco.dfont"); printf("creating font editor\n"); Screen *screen = new Screen(); editorManager = new PolycodeEditorManager(); editorManager->registerEditorFactory(new PolycodeImageEditorFactory()); editorManager->registerEditorFactory(new PolycodeFontEditorFactory()); editorManager->registerEditorFactory(new PolycodeTextEditorFactory()); frame = new PolycodeFrame(); frame->setPositionMode(ScreenEntity::POSITION_TOPLEFT); frame->newProjectWindow->addEventListener(this, UIEvent::OK_EVENT); screen->addChild(frame); projectManager = new PolycodeProjectManager(); projectManager->setProjectBrowser(frame->getProjectBrowser()); frame->getProjectBrowser()->addEventListener(this, Event::CHANGE_EVENT); frame->getProjectBrowser()->addEventListener(this, PolycodeProjectBrowserEvent::SHOW_MENU); frame->Resize(core->getXRes(), core->getYRes()); core->setVideoMode(1000, 600, false, 0); // CoreServices::getInstance()->getResourceManager()->addArchive(RESOURCE_PATH"tomato.polyapp"); // ScreenImage *img = new ScreenImage("tomato.png"); // screen->addChild(img); loadConfigFile(); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { core = new POLYCODE_CORE(view, 640,480,false,false,0,0,90); CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *screen = new Screen(); for(Number i=0; i < 10; i++) { ScreenImage *image = new ScreenImage("Resources/polycode_logo.png"); screen->addChild(image); image->setPosition(160+(42*i), 230); image->setPositionMode(ScreenEntity::POSITION_CENTER); image->setRotation(45*i); image->setScale(1.0-(0.1*i),1.0-(0.1*i)); } }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { #ifdef __APPLE__ core = new CocoaCore(view, 640,480,false,0,90); #else core = new SDLCore(view, 640,480,false,0,90); #endif CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); rotateTimer = new Timer(true, 1000); rotateTimer->addEventListener(this, Timer::EVENT_TRIGGER); Screen *screen = new Screen(); image = new ScreenImage("Resources/polycode_logo.png"); screen->addChild(image); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) { #ifdef __APPLE__ core = new CocoaCore(view, 640,480,false,0,90); #else core = new SDLCore(view, 640,480,false,0,90); #endif CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *hud = new Screen(); ScreenLabel *label = new ScreenLabel("Click on a shape to select it.", 16); hud->addChild(label); scene = new CollisionScene(); ScenePrimitive *ground = new ScenePrimitive(ScenePrimitive::TYPE_PLANE, 10, 10); ground->loadTexture("Resources/green_texture.png"); scene->addEntity(ground); box = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 1,1,1); box->loadTexture("Resources/pink_texture.png"); box->setPosition(0,1,0); scene->addCollisionChild(box, CollisionSceneEntity::SHAPE_MESH); box = new ScenePrimitive(ScenePrimitive::TYPE_CONE, 1,1,10); box->loadTexture("Resources/pink_texture.png"); box->setPosition(1,1,2); scene->addCollisionChild(box, CollisionSceneEntity::SHAPE_CONE); box = new ScenePrimitive(ScenePrimitive::TYPE_CYLINDER, 2,0.5,10); box->loadTexture("Resources/pink_texture.png"); box->setPosition(2,1,-1); scene->addCollisionChild(box, CollisionSceneEntity::SHAPE_CYLINDER); scene->getDefaultCamera()->setPosition(7,7,7); scene->getDefaultCamera()->lookAt(Vector3(0,0,0)); core->getInput()->addEventListener(this, InputEvent::EVENT_MOUSEDOWN); lastEntity = NULL; }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { #ifdef __APPLE__ core = new CocoaCore(view, 640,480,false,0,90); #else core = new SDLCore(view, 640,480,false,0,90); #endif CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *screen = new Screen(); image = new ScreenImage("Resources/polycode_logo.png"); image->setPositionMode(ScreenEntity::POSITION_CENTER); screen->addChild(image); core->getInput()->addEventListener(this, InputEvent::EVENT_MOUSEMOVE); core->getInput()->addEventListener(this, InputEvent::EVENT_MOUSEDOWN); core->getInput()->addEventListener(this, InputEvent::EVENT_MOUSEUP); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { #ifdef __APPLE__ core = new CocoaCore(view, 640,480,false,false,0,0,90); #else core = new SDLCore(view, 640,480,false,false,0,0,90); #endif CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_NEAREST); Screen *screen = new Screen(); ScreenSprite *sprite = new ScreenSprite("Resources/sprite_sheet.png", 93, 78); sprite->setPosition(350,150); sprite->setScale(7,7); screen->addChild(sprite); sprite->addAnimation("ExampleAnimation", "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,29,29,29,29,29,29,29,29,29", 0.03); sprite->playAnimation("ExampleAnimation", 0, false); }
PolycodeIDEApp::PolycodeIDEApp(PolycodeView *view) : EventDispatcher() { core = new CocoaCore(view, 900,700,false,true, 0, 0,30); core->addEventListener(this, Core::EVENT_CORE_RESIZE); CoreServices::getInstance()->getRenderer()->setClearColor(0.2,0.2,0.2); CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_NEAREST); CoreServices::getInstance()->getResourceManager()->addArchive("default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default"); CoreServices::getInstance()->getResourceManager()->addArchive("hdr.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("hdr"); CoreServices::getInstance()->getResourceManager()->addArchive("api.pak"); CoreServices::getInstance()->getConfig()->loadConfig("Polycode", RESOURCE_PATH"UIThemes/default/theme.xml"); CoreServices::getInstance()->getResourceManager()->addArchive(RESOURCE_PATH"UIThemes/default/"); CoreServices::getInstance()->getResourceManager()->addArchive(RESOURCE_PATH"Images/"); CoreServices::getInstance()->getFontManager()->registerFont("section", "Fonts/LeagueGothic-Regular.otf"); // CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_LINEAR); CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_NEAREST); willRunProject = false; printf("creating font editor\n"); Screen *screen = new Screen(); screen->rootEntity.setDefaultScreenOptions(true); editorManager = new PolycodeEditorManager(); frame = new PolycodeFrame(); frame->setPositionMode(ScreenEntity::POSITION_TOPLEFT); frame->console->backtraceWindow->addEventListener(this, BackTraceEvent::EVENT_BACKTRACE_SELECTED); frame->textInputPopup->addEventListener(this, UIEvent::OK_EVENT); frame->newProjectWindow->addEventListener(this, UIEvent::OK_EVENT); frame->exportProjectWindow->addEventListener(this, UIEvent::OK_EVENT); frame->newFileWindow->addEventListener(this, UIEvent::OK_EVENT); frame->exampleBrowserWindow->addEventListener(this, UIEvent::OK_EVENT); frame->playButton->addEventListener(this, UIEvent::CLICK_EVENT); frame->stopButton->addEventListener(this, UIEvent::CLICK_EVENT); screen->addChild(frame); projectManager = new PolycodeProjectManager(); projectManager->setProjectBrowser(frame->getProjectBrowser()); frame->projectManager = projectManager; frame->getProjectBrowser()->addEventListener(this, Event::CHANGE_EVENT); frame->getProjectBrowser()->addEventListener(this, PolycodeProjectBrowserEvent::HANDLE_MENU_COMMAND); frame->Resize(core->getXRes(), core->getYRes()); core->setVideoMode(1100, 700, false, false, 0, 0); debugger = new PolycodeRemoteDebugger(projectManager); frame->console->setDebugger(debugger); editorManager->registerEditorFactory(new PolycodeImageEditorFactory()); editorManager->registerEditorFactory(new PolycodeMaterialEditorFactory()); editorManager->registerEditorFactory(new PolycodeScreenEditorFactory()); editorManager->registerEditorFactory(new PolycodeFontEditorFactory()); editorManager->registerEditorFactory(new PolycodeTextEditorFactory()); editorManager->registerEditorFactory(new PolycodeProjectEditorFactory(projectManager)); editorManager->registerEditorFactory(new PolycodeSpriteEditorFactory()); globalMenu = new UIGlobalMenu(); screen->addChild(globalMenu); loadConfigFile(); }
PolycodeIDEApp::PolycodeIDEApp(PolycodeView *view) : EventDispatcher() { core = new POLYCODE_CORE(view, 900,700,false,true, 0, 0,30, -1); // core->pauseOnLoseFocus = true; runNextFrame = false; core->addEventListener(this, Core::EVENT_CORE_RESIZE); core->addEventListener(this, Core::EVENT_LOST_FOCUS); core->addEventListener(this, Core::EVENT_GAINED_FOCUS); globalClipboard = new PolycodeClipboard(); CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_NEAREST); CoreServices::getInstance()->getResourceManager()->addArchive("default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default"); CoreServices::getInstance()->getResourceManager()->addArchive("hdr.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("hdr"); CoreServices::getInstance()->getResourceManager()->addArchive("api.pak"); CoreServices::getInstance()->getResourceManager()->addArchive("Physics2D.pak"); CoreServices::getInstance()->getResourceManager()->addArchive("Physics3D.pak"); CoreServices::getInstance()->getResourceManager()->addArchive("UI.pak"); CoreServices::getInstance()->getConfig()->loadConfig("Polycode", "UIThemes/default/theme.xml"); CoreServices::getInstance()->getResourceManager()->addArchive("UIThemes/default/"); CoreServices::getInstance()->getResourceManager()->addArchive("Images/"); CoreServices::getInstance()->getFontManager()->registerFont("section", "Fonts/Roboto-Thin.ttf"); CoreServices::getInstance()->getRenderer()->clearColor.setColorHexFromString(CoreServices::getInstance()->getConfig()->getStringValue("Polycode", "uiBgColor")); // CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_LINEAR); CoreServices::getInstance()->getRenderer()->setTextureFilteringMode(Renderer::TEX_FILTERING_NEAREST); willRunProject = false; globalMenu = new UIGlobalMenu(); printf("creating font editor\n"); Screen *screen = new Screen(); screen->rootEntity.setDefaultScreenOptions(true); editorManager = new PolycodeEditorManager(); frame = new PolycodeFrame(); frame->setPositionMode(ScreenEntity::POSITION_TOPLEFT); frame->editorManager = editorManager; editorManager->addEventListener(frame, Event::CHANGE_EVENT); frame->console->backtraceWindow->addEventListener(this, BackTraceEvent::EVENT_BACKTRACE_SELECTED); frame->textInputPopup->addEventListener(this, UIEvent::OK_EVENT); frame->yesNoPopup->addEventListener(this, UIEvent::OK_EVENT); frame->yesNoPopup->addEventListener(this, UIEvent::CANCEL_EVENT); frame->yesNoCancelPopup->addEventListener(this, UIEvent::YES_EVENT); frame->yesNoCancelPopup->addEventListener(this, UIEvent::NO_EVENT); frame->newProjectWindow->addEventListener(this, UIEvent::OK_EVENT); frame->exportProjectWindow->addEventListener(this, UIEvent::OK_EVENT); frame->newFileWindow->addEventListener(this, UIEvent::OK_EVENT); frame->exampleBrowserWindow->addEventListener(this, UIEvent::OK_EVENT); frame->playButton->addEventListener(this, UIEvent::CLICK_EVENT); frame->stopButton->addEventListener(this, UIEvent::CLICK_EVENT); screen->addChild(frame); projectManager = new PolycodeProjectManager(); projectManager->setProjectBrowser(frame->getProjectBrowser()); frame->projectManager = projectManager; projectManager->addEventListener(frame, Event::CHANGE_EVENT); frame->getProjectBrowser()->addEventListener(this, Event::CHANGE_EVENT); frame->getProjectBrowser()->addEventListener(this, PolycodeProjectBrowserEvent::HANDLE_MENU_COMMAND); frame->Resize(core->getXRes(), core->getYRes()); debugger = new PolycodeRemoteDebugger(projectManager); frame->console->setDebugger(debugger); editorManager->registerEditorFactory(new PolycodeImageEditorFactory()); editorManager->registerEditorFactory(new PolycodeMaterialEditorFactory()); editorManager->registerEditorFactory(new PolycodeScreenEditorFactory()); editorManager->registerEditorFactory(new PolycodeFontEditorFactory()); editorManager->registerEditorFactory(new PolycodeTextEditorFactory()); editorManager->registerEditorFactory(new PolycodeProjectEditorFactory(projectManager)); editorManager->registerEditorFactory(new PolycodeSpriteEditorFactory()); screen->addChild(globalMenu); loadConfigFile(); frame->console->applyTheme(); #ifdef USE_POLYCODEUI_MENUBAR menuBar = new UIMenuBar(100, globalMenu); UIMenuBarEntry *fileEntry = menuBar->addMenuBarEntry("File"); fileEntry->addItem("New File", "new_file", KEY_n); fileEntry->addItem("New Project", "new_project", KEY_LSHIFT, KEY_n); fileEntry->addItem("New Folder", "new_folder", KEY_LSHIFT, KEY_f); fileEntry->addItem("Open Project", "open_project", KEY_LSHIFT, KEY_o); fileEntry->addItem("Close Project", "close_project", KEY_LSHIFT, KEY_w); fileEntry->addItem("Remove File", "remove_file"); fileEntry->addItem("Refresh Project", "refresh_project"); fileEntry->addItem("Save File", "save_file", KEY_s); fileEntry->addItem("Browse Examples", "browse_examples", KEY_LSHIFT, KEY_e); fileEntry->addItem("Quit", "quit"); UIMenuBarEntry *editEntry = menuBar->addMenuBarEntry("Edit"); editEntry->addItem("Undo", "undo"); editEntry->addItem("Redo", "redo"); editEntry->addItem("Cut", "cut"); editEntry->addItem("Copy", "copy"); UIMenuBarEntry *projectEntry = menuBar->addMenuBarEntry("Project"); projectEntry->addItem("Run Project", "run_project", KEY_r); projectEntry->addItem("Publish Project", "export_project"); UIMenuBarEntry *helpEntry = menuBar->addMenuBarEntry("Help"); helpEntry->addItem("API Reference", "show_api"); helpEntry->addItem("About Polycode", "show_about"); menuBar->addEventListener(this, UIEvent::OK_EVENT); screen->addChild(menuBar); frame->position.y = 25; #else menuBar = NULL; #endif core->setVideoMode(1100, 700, false, true, 0, 0); needsRedraw = false; lastConnected = false; }
nn_testing_app::nn_testing_app(PolycodeView *view, PolycodeView *graph_view): ship_st(),//thruster_cfg), thruster_sys(nullptr), EventHandler() { core = new POLYCODE_CORE(view, SCREEN_WIDTH, SCREEN_HEIGHT, false, false, 0, 0, 90); // graph_core = new POLYCODE_CORE(graph_view, 400, 300, false, false, 0, 0, 10);//90); CoreServices::getInstance()->getResourceManager()->addArchive("C:/Users/Cameron/Documents/GitHub/workbase/resource/common/polycode/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); rgen.seed(static_cast< uint32_t >(std::chrono::high_resolution_clock::now().time_since_epoch().count() & 0xffffffff)); ship_st.thruster_cfg = boost::shared_ptr< thruster_config< dim > >(new thruster_config< dim >(thruster_presets::square_minimal())); ship_st.ang_velocity = random_val< dim_traits::angular_velocity_t >(rgen); thruster_sys.cfg = ship_st.thruster_cfg; thruster_sys.sync_to_cfg(); frame_by_frame = true; advance = false; Screen *screen = new Screen(); scene = new ScreenEntity; scene->setScale(SHIP_BASE_SIZE, SHIP_BASE_SIZE); scene->setPosition(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); screen->addChild(scene); ship_base = new ScreenShape(ScreenShape::SHAPE_RECT, 2.0, 2.0);//SHIP_BASE_SIZE, SHIP_BASE_SIZE); ship_base->setColor(0.0,0.0,0.0,1.0); ship_base->colorAffectsChildren = false; ship_base->setPosition(to_polycode_vector(ship_st.position));//SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); ship_base->setRotation(ship_st.orientation * 360 / (2.0 * PI)); // degrees scene->addChild(ship_base); // thruster_cfg = ; // ship_st.thruster_sys.sync_to_cfg(); nn.create_from_file(nn_filename.c_str()); int const num_thrusters = ship_st.thruster_cfg->num_thrusters(); thruster_shapes.resize(num_thrusters); // TODO: For now rotations are hard coded double T_SIZE = (double)THRUSTER_SIZE / SHIP_BASE_SIZE; thruster_shapes[0] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, T_SIZE, T_SIZE, 3); thruster_shapes[0]->setRotation(0); thruster_shapes[1] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, T_SIZE, T_SIZE, 3); thruster_shapes[1]->setRotation(180); thruster_shapes[2] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, T_SIZE, T_SIZE, 3); thruster_shapes[2]->setRotation(180); thruster_shapes[3] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, T_SIZE, T_SIZE, 3); thruster_shapes[3]->setRotation(0); for(int t = 0; t < num_thrusters; ++t) { thruster_shapes[t]->setPosition(to_polycode_vector((*ship_st.thruster_cfg)[t].pos)); ship_base->addChild(thruster_shapes[t]); } //st = target_orientation::input_state_fn< boost::random::mt19937 >() (rgen); //facing = 0; ship_base->setRotation(ship_st.orientation * 360.0 / (2.0 * PI)); /* lin_vel_line = new ScreenLine(Vector2(0, 0), Vector2(st.lin_vel[0] * 30, st.lin_vel[1] * 30)); ship_base->addChild(lin_vel_line); lin_acc_line = nullptr; */ #if 0 grid = new ScreenEntity; grid->setColor(0.5, 0.5, 0.5, 1.0); scene->addChild(grid); scene->moveChildBottom(grid); grid->setPosition(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); /* for(int h = 0; h < 11; ++h) { horiz_bg[h] = new ScreenLine( Vector2(-5 * GRID_SCALE, (h - 5) * GRID_SCALE), Vector2(5 * GRID_SCALE, (h - 5) * GRID_SCALE) ); grid->addChild(horiz_bg[h]); } */ for(int v = 0; v < 11; ++v) { vert_bg[v] = new ScreenLine( Vector2((v - 5) * GRID_SCALE, -5 * GRID_SCALE), Vector2((v - 5) * GRID_SCALE, 5 * GRID_SCALE) ); grid->addChild(vert_bg[v]); } #endif lin_speed_lbl = new ScreenLabel("", 24); screen->addChild(lin_speed_lbl); ang_speed_lbl = new ScreenLabel("", 24); ang_speed_lbl->setPositionY(24); screen->addChild(ang_speed_lbl); core->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN); core->getInput()->addEventListener(this, InputEvent::EVENT_KEYUP); }
manual_thrusters_test_app::manual_thrusters_test_app(PolycodeView *view): thruster_sys(thruster_cfg), EventHandler() { core = new POLYCODE_CORE(view, SCREEN_WIDTH, SCREEN_HEIGHT, false, false, 0, 0, 90); CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *screen = new Screen(); ship_base = new ScreenShape(ScreenShape::SHAPE_RECT, SHIP_BASE_SIZE, SHIP_BASE_SIZE); ship_base->setColor(0.0,0.0,0.0,1.0); ship_base->colorAffectsChildren = false; ship_base->setPosition(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); ship_base->setRotation(0); // degrees screen->addChild(ship_base); /* ship_front = new ScreenShape(ScreenShape::SHAPE_CIRCLE, SHIP_BASE_SIZE, SHIP_BASE_SIZE, 3); ship_front->setColor(0.0,0.0,0.0,1.0); double temp = SHIP_BASE_SIZE - sqrt((1.7320508 * 0.5 * SHIP_BASE_SIZE * 1.7320508 * 0.5 * SHIP_BASE_SIZE) - (0.5 * 1.7320508 * 0.5 * SHIP_BASE_SIZE * 0.5 * 1.7320508 * 0.5 * SHIP_BASE_SIZE)); ship_front->setPosition(0, -(SHIP_BASE_SIZE - temp)); ship_front->setRotation(-90); // degrees ship_base->addChild(ship_front); */ thruster_cfg = thruster_presets::square_minimal(); thruster_sys.sync_to_cfg(); int const num_thrusters = thruster_cfg.thrusters.size(); thruster_shapes.resize(num_thrusters); // TODO: For now rotations are hard coded thruster_shapes[0] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, THRUSTER_SIZE, THRUSTER_SIZE, 3); thruster_shapes[0]->setRotation(0); thruster_shapes[1] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, THRUSTER_SIZE, THRUSTER_SIZE, 3); thruster_shapes[1]->setRotation(180); thruster_shapes[2] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, THRUSTER_SIZE, THRUSTER_SIZE, 3); thruster_shapes[2]->setRotation(180); thruster_shapes[3] = new ScreenShape(ScreenShape::SHAPE_CIRCLE, THRUSTER_SIZE, THRUSTER_SIZE, 3); thruster_shapes[3]->setRotation(0); for(int t = 0; t < num_thrusters; ++t) { thruster_shapes[t]->setPosition(Vector3( thruster_cfg[t].pos[0] * SHIP_BASE_SIZE / 2, thruster_cfg[t].pos[1] * SHIP_BASE_SIZE / 2, thruster_cfg[t].pos[2] * SHIP_BASE_SIZE / 2)); ship_base->addChild(thruster_shapes[t]); } // thrust = 0; linearSpeed = Vector3(0, 0, 0); // torque = 0; rotationSpeed = 0; core->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN); core->getInput()->addEventListener(this, InputEvent::EVENT_KEYUP); }
HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() { core = new POLYCODE_CORE(view, 640,480,false,false,0,0,90); CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak"); CoreServices::getInstance()->getResourceManager()->addDirResource("default", false); Screen *hud = new Screen(); onGroundLabel = new ScreenLabel("Arrow keys to control, spacebar to brake, press R to reset car", 16); hud->addChild(onGroundLabel); scene = new PhysicsScene(); ScenePrimitive *ground = new ScenePrimitive(ScenePrimitive::TYPE_PLANE, 30, 30); ground->loadTexture("Resources/green_texture.png"); scene->addPhysicsChild(ground, PhysicsSceneEntity::SHAPE_PLANE, 0.0); // Some obstacles ScenePrimitive *box = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 4,4,6); box->setPitch(25.0); box->setPosition(7,-1.05, 0.0); box->setColor(0.5,0.5,1.0,1.0); box->loadTexture("Resources/green_texture.png"); scene->addPhysicsChild(box, PhysicsSceneEntity::SHAPE_BOX, 0.0); box = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 4,4,6); box->setPitch(25.0); box->setPosition(-7,-1.05, 0.0); box->setColor(0.5,0.5,1.0,1.0); box->loadTexture("Resources/green_texture.png"); scene->addPhysicsChild(box, PhysicsSceneEntity::SHAPE_BOX, 0.0); box = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 20,2,5); box->setPosition(0.0,1.0, -4.3); box->setColor(0.5,0.5,1.0,1.0); box->loadTexture("Resources/green_texture.png"); scene->addPhysicsChild(box, PhysicsSceneEntity::SHAPE_BOX, 0.0); for(int i=0; i < 10; i++) { ScenePrimitive *box = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 0.7,0.7,0.7); box->loadTexture("Resources/pink_texture.png"); box->Roll(-45 + (rand() % 90)); box->Pitch(-45 + (rand() % 90)); box->setPosition(-3 + (rand() % 6), 2 + i*0.5, -5 + (rand() % 3)); scene->addPhysicsChild(box, PhysicsSceneEntity::SHAPE_BOX, 1.0); } // The vehicle vehicle = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 1.0,0.5,2.0); vehicle->loadTexture("Resources/pink_texture.png"); vehicle->setColor(1.0, 1.0, 0.0, 1.0); vehicle->setPosition(6,1,5); vehicleController = scene->addVehicleChild(vehicle, 5.0, 1.0); ScenePrimitive *wheel = new ScenePrimitive(ScenePrimitive::TYPE_SPHERE, 0.3, 10, 10); wheel->loadTexture("Resources/pink_texture.png"); wheel->setColor(0.0, 1.0, 0.0, 1.0); vehicleController->addWheel(wheel, Vector3(0.6,0,-0.5), Vector3(0,-1,0), Vector3(-1,0,0), 0.2, 0.3, true); scene->addEntity(wheel); wheel = new ScenePrimitive(ScenePrimitive::TYPE_SPHERE, 0.3, 10, 10); wheel->loadTexture("Resources/pink_texture.png"); wheel->setColor(0.0, 1.0, 0.0, 1.0); vehicleController->addWheel(wheel, Vector3(-0.6,0,-0.5), Vector3(0,-1,0), Vector3(-1,0,0), 0.2, 0.3, true); scene->addEntity(wheel); wheel = new ScenePrimitive(ScenePrimitive::TYPE_SPHERE, 0.3, 10, 10); wheel->loadTexture("Resources/pink_texture.png"); wheel->setColor(0.0, 1.0, 0.0, 1.0); vehicleController->addWheel(wheel, Vector3(0.6,0,0.5), Vector3(0,-1,0), Vector3(-1,0,0), 0.2, 0.3, false); scene->addEntity(wheel); wheel = new ScenePrimitive(ScenePrimitive::TYPE_SPHERE, 0.3, 10, 10); wheel->loadTexture("Resources/pink_texture.png"); wheel->setColor(0.0, 1.0, 0.0, 1.0); vehicleController->addWheel(wheel, Vector3(-0.6,0,0.5), Vector3(0,-1,0), Vector3(-1,0,0), 0.2, 0.3, false); scene->addEntity(wheel); steeringValue = 0; engineForce = 0; breaking = false; testBox = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 4, 4, 4); testBox->loadTexture("Resources/pink_texture.png"); testBox->setColor(0.3,0.5, 1.0,0.4); testBox->setPosition(-5,2,7); scene->addCollisionChild(testBox, PhysicsSceneEntity::SHAPE_BOX); scene->getDefaultCamera()->setPosition(16,16,16); scene->getDefaultCamera()->lookAt(Vector3(0,0,0)); core->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN); core->getInput()->addEventListener(this, InputEvent::EVENT_KEYUP); }