Main.lua 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. hud = Scene(Scene.SCENE_2D)
  2. label = SceneLabel("Click on a shape to select it.", 16)
  3. label:setPosition(-640/ 2 + 120, 480 / 2 - 10)
  4. hud:addChild(label)
  5. scene = CollisionScene(Vector3(2000, 2000, 2000), false, false)
  6. local ground = ScenePrimitive(ScenePrimitive.TYPE_PLANE, 10, 10)
  7. ground:loadTexture("Resources/green_texture.png")
  8. scene:addEntity(ground)
  9. local box = ScenePrimitive(ScenePrimitive.TYPE_BOX, 1, 1, 1)
  10. box:loadTexture("Resources/pink_texture.png")
  11. box:setPosition(0, 1, 0)
  12. scene:addCollisionChild(box, CollisionEntity.SHAPE_MESH)
  13. local cone = ScenePrimitive(ScenePrimitive.TYPE_CONE, 1, 1, 10)
  14. cone:loadTexture("Resources/pink_texture.png")
  15. cone:setPosition(1, 2, 2)
  16. scene:addCollisionChild(cone, CollisionEntity.SHAPE_CONE)
  17. local cylinder = ScenePrimitive(ScenePrimitive.TYPE_CYLINDER, 2, 0.5, 10)
  18. cylinder:loadTexture("Resources/pink_texture.png")
  19. cylinder:setPosition(2, 1, -1)
  20. scene:addCollisionChild(cylinder, CollisionEntity.SHAPE_CYLINDER)
  21. scene:getDefaultCamera():setPosition(7, 7, 7)
  22. scene:getDefaultCamera():lookAt(Vector3(0, 0, 0), Vector3(0, 1, 0))
  23. local lastEntity = nil
  24. function onMouseDown(button, x, y)
  25. local ray = scene:projectRayFromCameraAndViewportCoordinate(scene:getActiveCamera(), Vector2(x,y))
  26. local res = scene:getFirstEntityInRay(ray.origin, Vector3(ray.direction.x * 100, ray.direction.y * 100, ray.direction.z * 100))
  27. if lastEntity then
  28. lastEntity:setColor(1, 1, 1, 1)
  29. end
  30. if res.entity then
  31. res.entity:setColor(1, 0, 0, 1)
  32. lastEntity = res.entity
  33. end
  34. end