|
|
@@ -1,76 +0,0 @@
|
|
|
-objects = {}
|
|
|
-max_objects = 70
|
|
|
-
|
|
|
-function init()
|
|
|
- -- Set the title of the main window
|
|
|
- Window.set_title("Hello world!")
|
|
|
-
|
|
|
- -- Create the resource package
|
|
|
- package = Device.create_resource_package("level")
|
|
|
- -- Load resource package
|
|
|
- ResourcePackage.load(package)
|
|
|
- -- Wait for completion
|
|
|
- ResourcePackage.flush(package)
|
|
|
-
|
|
|
- -- Create world
|
|
|
- world = Device.create_world()
|
|
|
-
|
|
|
- -- Spawn camera
|
|
|
- camera_unit = World.spawn_unit(world, "units/camera")
|
|
|
- camera = Unit.camera(camera_unit, "camera")
|
|
|
-
|
|
|
- -- Setup camera
|
|
|
- Camera.set_near_clip_distance(camera, 0.01)
|
|
|
- Camera.set_far_clip_distance(camera, 1000)
|
|
|
- Camera.set_projection_type(camera, Camera.ORTHOGRAPHIC)
|
|
|
- Camera.set_orthographic_metrics(camera, -6, 6, -6 / 1.6, 6 / 1.6)
|
|
|
- Camera.set_viewport_metrics(camera, 0, 0, 1000, 625)
|
|
|
- Unit.set_local_position(camera_unit, 0, Vector3(0, 0, 1))
|
|
|
-
|
|
|
- local unit_names = { "units/star", "units/circle", "units/pentagon", "units/square" }
|
|
|
- -- Spawn units randomly
|
|
|
- math.randomseed(os.time())
|
|
|
- for i = 1, max_objects do
|
|
|
- objects[i] = {
|
|
|
- unit = World.spawn_unit(world, unit_names[math.random(#unit_names)],
|
|
|
- Vector3(math.random(-6, 6), math.random(-6 / 1.6, 6 / 1.6), 0)),
|
|
|
- rot_speed = math.random(1.5),
|
|
|
- cur_rot = math.random(3.14)
|
|
|
- }
|
|
|
- end
|
|
|
-end
|
|
|
-
|
|
|
-function frame(dt)
|
|
|
- -- Update the world
|
|
|
- Device.update_world(world, dt)
|
|
|
-
|
|
|
- -- Stop the engine when the 'ESC' key is released
|
|
|
- if Keyboard.button_released(Keyboard.ESCAPE) then
|
|
|
- Device.stop()
|
|
|
- end
|
|
|
-
|
|
|
- for i = 1, max_objects do
|
|
|
- local obj = objects[i]
|
|
|
- local r = obj.rot_speed
|
|
|
- obj.cur_rot = obj.cur_rot + r * dt
|
|
|
-
|
|
|
- Unit.set_local_rotation(obj.unit, 0, Quaternion(Vector3(0, 0, 1), obj.cur_rot))
|
|
|
- end
|
|
|
-
|
|
|
- -- Render the world
|
|
|
- Device.render_world(world, camera)
|
|
|
-end
|
|
|
-
|
|
|
-function shutdown()
|
|
|
- -- Destroy all units
|
|
|
- for i = 1, max_objects do
|
|
|
- World.destroy_unit(world, objects[i].unit)
|
|
|
- end
|
|
|
- World.destroy_unit(world, camera_unit)
|
|
|
-
|
|
|
- -- Destroy world
|
|
|
- Device.destroy_world(world)
|
|
|
- -- Unload package
|
|
|
- ResourcePackage.unload(package)
|
|
|
- Device.destroy_resource_package(package)
|
|
|
-end
|