return true
else if event.name == "escape" then
exit 0
+ else if event.name == "." and event.is_down then
+ dynamic_resolution_ratio *= 2.0
+ print dynamic_resolution_ratio
+ else if event.name == "," and event.is_down then
+ dynamic_resolution_ratio /= 2.0
+ print dynamic_resolution_ratio
end
end
# How does this event affect the ship thrust?
fun thrust: Float
do
- if is_arrow_up or name == "w" then return 1.0
+ if name == "up" or name == "w" then return 1.0
return 0.0
end
# How does this event affect the ship thrust?
fun rotation: Float
do
- if is_arrow_right or name == "d" then return -1.0
- if is_arrow_left or name == "a" then return 1.0
+ if name == "right" or name == "d" then return -1.0
+ if name == "left" or name == "a" then return 1.0
return 0.0
end
end
import gamnit
import gamnit::cameras
+import gamnit::dynamic_resolution
import gamnit::limit_fps
-
-import android_two_fingers_motion is conditional(android)
+import gamnit::camera_control
# Draw a `texture` at `center`
#
# Camera for world `sprites` and `depth::actors` with perspective
#
- # By default, the camera is configured to respect the resolution
- # of the screen in world coordinates at `z == 0.0`.
+ # By default, the camera is configured to a height of 1080 units
+ # of world coordinates at `z == 0.0`.
var world_camera: EulerCamera is lazy do
var camera = new EulerCamera(app.display.as(not null))
- # Aim for pixel resolution at level 0
- camera.reset_height
- camera.near = 100.0
+ # Aim for full HD pixel resolution at level 0
+ camera.reset_height 1080.0
+ camera.near = 10.0
return camera
end
# Camera for `ui_sprites` using an orthogonal view
- var ui_camera: UICamera = new UICamera(app.display.as(not null)) is lazy
+ var ui_camera = new UICamera(app.display.as(not null)) is lazy
# World sprites to draw as seen by `world_camera`
var sprites: Set[Sprite] = new SpriteSet
# Draw the whole screen, all `glDraw...` calls should be executed here
protected fun frame_core_draw(display: GamnitDisplay)
do
- perf_clock_main.lapse
+ frame_core_dynamic_resolution_before display
+ perf_clock_main.lapse
frame_core_world_sprites display
perfs["gamnit flat world_sprites"].add perf_clock_main.lapse
frame_core_ui_sprites display
perfs["gamnit flat ui_sprites"].add perf_clock_main.lapse
+
+ frame_core_dynamic_resolution_after display
end
private fun frame_core_sprites(display: GamnitDisplay, sprite_set: SpriteSet, camera: Camera)
redef fun clear
do
+ for sprite in self do
+ sprite.context = null
+ sprite.sprite_set = null
+ end
super
for c in contexts_items do c.destroy
contexts_map.clear