2020-08-16 13:59:43 +00:00
|
|
|
import "luxe: world" for World, Camera, Entity, Transform
|
|
|
|
|
import "luxe: render" for Render
|
|
|
|
|
import "outline/Renderer" for Renderer
|
2020-08-18 21:16:04 +00:00
|
|
|
import "globals" for ActiveRenderer
|
2020-08-16 13:59:43 +00:00
|
|
|
|
|
|
|
|
class App {
|
|
|
|
|
|
|
|
|
|
world { _world }
|
|
|
|
|
ui { _ui_world }
|
|
|
|
|
|
|
|
|
|
camera { _camera }
|
|
|
|
|
ui_camera { _ui_camera }
|
|
|
|
|
|
|
|
|
|
color { _color }
|
|
|
|
|
color=(v) { _color = v }
|
|
|
|
|
|
|
|
|
|
width { Render.window_w() }
|
|
|
|
|
height { Render.window_h() }
|
|
|
|
|
scale { Render.drawable_ratio() }
|
|
|
|
|
|
|
|
|
|
construct new() {
|
|
|
|
|
|
|
|
|
|
_color = [0,0,0.2,1]
|
|
|
|
|
|
|
|
|
|
//create worlds
|
|
|
|
|
|
|
|
|
|
_world = World.create("game")
|
|
|
|
|
_ui_world = World.create("ui")
|
|
|
|
|
|
|
|
|
|
//create cameras
|
|
|
|
|
|
|
|
|
|
_camera = Entity.create(_world, "app.camera")
|
|
|
|
|
Transform.create(_camera)
|
|
|
|
|
Camera.create(_camera)
|
|
|
|
|
Camera.set_default(_world, _camera)
|
2020-08-18 21:16:04 +00:00
|
|
|
Camera.ortho(_camera, 0, ActiveRenderer.x.height, ActiveRenderer.x.width, 0, -20, 20)
|
2020-08-16 13:59:43 +00:00
|
|
|
|
|
|
|
|
_ui_camera = Entity.create(_ui_world, "app.ui_camera")
|
|
|
|
|
Transform.create(_ui_camera)
|
|
|
|
|
Camera.create(_ui_camera)
|
|
|
|
|
Camera.set_default(_ui_world, _ui_camera)
|
|
|
|
|
|
|
|
|
|
} //new
|
|
|
|
|
|
2020-08-18 21:16:04 +00:00
|
|
|
update_cam(){
|
|
|
|
|
Camera.ortho(_camera, 0, ActiveRenderer.x.height, ActiveRenderer.x.width, 0, -20, 20)
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-16 13:59:43 +00:00
|
|
|
destroy() {
|
|
|
|
|
|
|
|
|
|
//destroy cameras
|
|
|
|
|
|
|
|
|
|
Camera.destroy(_camera)
|
|
|
|
|
Camera.destroy(_ui_camera)
|
|
|
|
|
|
|
|
|
|
Entity.destroy(_camera)
|
|
|
|
|
Entity.destroy(_ui_camera)
|
|
|
|
|
|
|
|
|
|
//destroy worlds
|
|
|
|
|
|
|
|
|
|
World.destroy(_ui_world)
|
|
|
|
|
World.destroy(_world)
|
|
|
|
|
|
|
|
|
|
} //destroy
|
|
|
|
|
|
|
|
|
|
tick(delta) {
|
|
|
|
|
|
|
|
|
|
//update worlds
|
|
|
|
|
|
|
|
|
|
World.tick_systems(_world, delta)
|
|
|
|
|
World.tick_systems(_ui_world, delta)
|
|
|
|
|
|
|
|
|
|
World.tick_world(_world, delta)
|
|
|
|
|
World.tick_world(_ui_world, delta)
|
|
|
|
|
|
|
|
|
|
//render worlds
|
|
|
|
|
|
|
|
|
|
World.render(_world, _camera, "game", {"clear_color":_color})
|
|
|
|
|
World.render(_ui_world, _ui_camera, "ui")
|
|
|
|
|
|
|
|
|
|
} //tick
|
|
|
|
|
|
|
|
|
|
} //
|