Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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 ();
  }