Exemplo n.º 1
0
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;
}	
Exemplo n.º 2
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);		
}
Exemplo n.º 3
0
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;	
	
}
Exemplo n.º 4
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();
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
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);	
}
Exemplo n.º 7
0
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);	
}
Exemplo n.º 8
0
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();
}
Exemplo n.º 9
0
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));
	}
}
Exemplo n.º 10
0
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);	
}
Exemplo n.º 11
0
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;
}
Exemplo n.º 12
0
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);
}
Exemplo n.º 13
0
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);
}
Exemplo n.º 14
0
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();
}
Exemplo n.º 15
0
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;
}
Exemplo n.º 16
0
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);	
}
Exemplo n.º 17
0
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);	
}
Exemplo n.º 18
0
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);
}