| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- //
- // Polycode template. Write your code here.
- //
- #include "PolycodeTemplateApp.h"
- #include "polycode/view/android/PolycodeView.h"
- PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
- core = new POLYCODE_CORE(view, 800,480,false,false, 0,0,60, -1, true);
- ResourcePool *globalPool = Services()->getResourceManager()->getGlobalPool();
- globalPool->loadResourcesFromFolder("default", true);
- // Write your code here!
- srand(time(NULL));
- scene = new Scene(Scene::SCENE_2D);
- //scene->getActiveCamera()->setOrthoSize(1920, 1080);
- scene->useClearColor = true;
- scene->clearColor.setColor(1.0f / (float)(rand() % 5),1.0f / (float)(rand()%5),1.0f / (float)(rand() % 5),1.0f);
- test = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.5, 0.5);
- test->setPositionY(0.2);
- test->setMaterialByName("Unlit");
- test->getShaderPass(0).shaderBinding->loadTextureForParam("diffuse", "main_icon.png");
- //test->setColor(1.0,0.0,0.0,1.0);
- SceneLabel *testLabel = new SceneLabel("Hello Polycode!", 32, "sans", Label::ANTIALIAS_FULL, 0.2);
- testLabel->setPositionY(-0.2);
- scene->addChild(testLabel);
- /*ScenePrimitive* box;
- for(int i = 0; i < 1000; i++){
- box = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 0.2, 0.2,0.2);
- box->setMaterialByName("UnlitUntextured");
- //box->setColor(1.0, 0.0,0.0, 1.0);
- //box->getShaderPass(0).shaderBinding->loadTextureForParam("diffuse", "default/default.png");
- scene->addChild(box);
- }*/
- // bgSound = new Sound("FightBG.WAV");
- // bgSound->Play();
- // bgSound->setPitch(10.0);
- //sound1 = new Sound("hit.wav");
- //Logger::log("before Play");
- //sound1->Play(true);
- //Logger::log("after Play");
- // sound1->setPitch(2.3);
- // sound2 = new Sound("test.wav");
- // sound3 = new Sound("curve_02_c.wav");
- //sound2->Play(true);
- running = 0;
- rot = Vector3();
- fps = new SceneLabel("0", 32, "sans", Label::ANTIALIAS_FULL, 0.1);
- fps->setPosition(-0.6,0.3);
- scene->addChild(fps);
- scene->addChild(test);
- Services()->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN);
- Services()->getInput()->addEventListener(this, InputEvent::EVENT_TOUCHES_BEGAN);
- Services()->getInput()->addEventListener(this, InputEvent::EVENT_TOUCHES_ENDED);
- Services()->getInput()->addEventListener(this, InputEvent::EVENT_TOUCHES_MOVED);
- Services()->getCore()->addEventListener(this, Core::EVENT_ACCELEROMETER_MOTION);
- Services()->getCore()->addEventListener(this, Core::EVENT_GYRO_ROTATION);
- }
- void PolycodeTemplateApp::handleEvent(Event *event) {
- if(event->getEventType()=="InputEvent"){
- InputEvent *inputEvent = (InputEvent*) event;
- if(inputEvent->getEventCode() == InputEvent::EVENT_KEYDOWN){
- switch(inputEvent->getKey()) {
- case KEY_z:
- sound1->Play(true);
- break;
- case KEY_x:
- sound2->Play();
- break;
- case KEY_c:
- sound3->Play();
- break;
- }
- } else if (inputEvent->getEventCode() == InputEvent::EVENT_TOUCHES_BEGAN){
- //Logger::log("Touch began: %f, %f", inputEvent->touch.position.x, inputEvent->touch.position.y);
- Ray r = scene->projectRayFromCameraAndViewportCoordinate(scene->getActiveCamera(),inputEvent->touch.position);
- test->setPosition(r.origin.x, r.origin.y);
- } else if(inputEvent->getEventCode() == InputEvent::EVENT_TOUCHES_ENDED){
- //Logger::log("Touch ended: %f, %f", inputEvent->touch.position.x, inputEvent->touch.position.y);
- Ray r = scene->projectRayFromCameraAndViewportCoordinate(scene->getActiveCamera(),inputEvent->touch.position);
- test->setPosition(r.origin.x, r.origin.y);
- } else if(inputEvent->getEventCode() == InputEvent::EVENT_TOUCHES_MOVED){
- Logger::log("Touch moved: %f, %f", inputEvent->touch.position.x, inputEvent->touch.position.y);
- Ray r = scene->projectRayFromCameraAndViewportCoordinate(scene->getActiveCamera(),inputEvent->touch.position);
- Logger::log("Origin: %f, %f", r.origin.x, r.origin.y);
- test->setPosition(r.origin.x, r.origin.y);
- }
- } else if(event->getEventType() == "CoreMotionEvent"){
- CoreMotionEvent* motionEvent = (CoreMotionEvent*)event;
- if(motionEvent->getEventCode() == Core::EVENT_ACCELEROMETER_MOTION){
- //Logger::log("Acceleration: %f, %f, %f", motionEvent->amount.x, motionEvent->amount.y, motionEvent->amount.z);
- //rot += motionEvent->amount;
- //test->Translate(motionEvent->amount.y*0.01, motionEvent->amount.x*0.01);
- } else if (motionEvent->getEventCode() == Core::EVENT_GYRO_ROTATION){
- //Logger::log("Rotation: %f, %f, %f", motionEvent->amount.x, motionEvent->amount.y, motionEvent->amount.z);
- test->Translate(motionEvent->amount.x*0.01, motionEvent->amount.y*0.01);
- }
- }
- }
- PolycodeTemplateApp::~PolycodeTemplateApp() {
-
- }
- bool PolycodeTemplateApp::Update() {
- if (!core->paused) {
- //Logger::log("update");
- running += core->getElapsed();
- if(running >= 1){
- //core->deviceAttitude.
- //Logger::log("Orientation: %f, %f, %f", , rot.y, rot.z);
- fps->setText(String::NumberToString(core->getFPS(),0));
- //Logger::log("Backing: %f", Services()->getRenderer()->getBackingResolutionScaleX());
- running = 0;
- }
- return core->updateAndRender();
- } else {
- usleep(200000);
- return true;
- }
- }
|