int main () { printf ("Results of scene_input_self_remove_test:\n"); try { Scene scene; OrthoCamera::Pointer camera = OrthoCamera::Create (); camera->SetLeft (0); camera->SetRight (100); camera->SetTop (0); camera->SetBottom (-100); camera->SetZNear (-1); camera->SetZFar (1); camera->Translate (0.0f, 0.0f, 1.0f); camera->BindToScene (scene); zone = InputZone::Create (); additional_zone = InputZone::Create (); zone->SetName ("zone1"); zone->Translate (50.0f, -50.0f, 0.0f); zone->SetScale (10.0f, 10.0f, 1.0f); zone->RegisterNotificationHandler (&input_notify); zone->BindToScene (scene); additional_zone->SetName ("zone2"); additional_zone->RegisterNotificationHandler (&input_notify); additional_zone->BindToScene (scene); Screen screen; Viewport viewport; viewport.SetCamera (camera.get ()); viewport.SetArea (100, 100, 800, 800); screen.SetArea (0, 0, 1000, 1000); screen.Attach (viewport); SceneInputManager manager; manager.SetScreen (&screen); manager.SetTouchSize (2.0f, InputTransformSpace_Camera); manager.ProcessEvent ("CursorX axis 0"); manager.ProcessEvent ("CursorY axis 0"); manager.ProcessEvent ("Mouse0 down"); manager.ProcessEvent ("Mouse0 up"); printf ("exit\n"); fflush (stdout); } catch (std::exception& e) { printf ("%s\n", e.what ()); } return 0; }
Test () { //создание сцены sprite [0] = Sprite::Create (); sprite [0]->SetMaterial ("sprite_material"); sprite [0]->SetScale (10.0f, 10.0f, 1.0f); sprite [0]->SetPosition (-3.0f, -3.0f, 0.5f); sprite [0]->Rotate (math::anglef (), math::anglef (), math::degree (22.5f)); sprite [0]->SetColor (1.0f, 1.0f, 0.0f); sprite [0]->SetMode (SpriteMode_Oriented); sprite [0]->BindToScene (scene); sprite [1] = Sprite::Create (); sprite [1]->SetMaterial ("sprite_material"); sprite [1]->SetScale (10.0f, 10.0f, 1.0f); sprite [1]->SetPosition (3.0f, 3.0f, 0.1f); sprite [1]->SetColor (1.0f, 0.0f, 1.0f); sprite [1]->SetMode (SpriteMode_Oriented); sprite [1]->BindToScene (scene); sprite [2] = Sprite::Create (); sprite [2]->SetMaterial ("sprite_material"); sprite [2]->SetScale (10.0f, 10.0f, 1.0f); sprite [2]->SetPosition (3.0f, -1.5f, 0.75f); sprite [2]->SetColor (0.0f, 1.0f, 1.0f); sprite [2]->SetMode (SpriteMode_Oriented); sprite [2]->BindToScene (scene); input_zone [0] = InputZone::Create (); input_zone [0]->SetName ("zone1"); input_zone [0]->BindToParent (*sprite [0]); input_zone [0]->RegisterNotificationHandler (&Test::InputNotify); input_zone [1] = InputZone::Create (); input_zone [1]->SetName ("zone2"); input_zone [1]->BindToParent (*sprite [1]); input_zone [1]->RegisterNotificationHandler (&Test::InputNotify); input_zone [2] = InputZone::Create (); input_zone [2]->SetName ("zone3"); input_zone [2]->BindToParent (*sprite [2]); input_zone [2]->RegisterNotificationHandler (&Test::InputNotify); camera = PerspectiveCamera::Create (); camera->BindToScene (scene); camera->SetName ("Camera1"); camera->SetPosition (0, 0, -18.f); camera->SetFovX (math::degree (70.f)); camera->SetFovY (math::degree (70.f)); camera->SetZNear (0.1f); camera->SetZFar (20.f); //создание областей вывода Viewport vp1; vp1.SetName ("Viewport1"); vp1.SetZOrder (0); vp1.SetTechnique ("default"); vp1.SetCamera (camera.get ()); screen.Attach (vp1); //настройка ввода application.InputManager ().SetScreen (&screen); // application.InputManager ().SetTouchSize (1.0f); //настройка целевых буферов вывода RenderTarget& render_target = application.RenderTarget (); render_target.SetScreen (&screen); //загрузка ресурсов application.LoadResources (); }