Merge: Check operator
[nit.git] / examples / mnit_moles / src / moles.nit
index 1c6bb83..7266a0c 100644 (file)
 # Classic moles game
 #
 # This is a minimal practical example of the mnit framework.
-module moles
+module moles is
+       app_version(1, 0, git_revision)
+       app_name("Crazy Groundhogs")
+end
 
 import mnit
-import realtime
 
 class Hole
        var game: Game
@@ -107,7 +109,7 @@ class Game
        var holes = new Array[Hole].with_capacity(4)
 
        # rule / const
-       var modifier_half_life = 40.0
+       var modifier_half_life = 1000.0
        fun rows: Int do return 4
        fun columns: Int do return 5
 
@@ -227,19 +229,15 @@ class Screen
        end
 end
 
-class MyApp
-       super App
+redef class App
 
        var screen: nullable Screen = null
 
-       var target_dt = 20000000
-
-       init do super
-
-       redef fun init_window
+       redef fun window_created
        do
                super
 
+               maximum_fps = 50
                init_screen_and_game
        end
 
@@ -249,16 +247,8 @@ class MyApp
        do
                var screen = self.screen
                if screen != null then
-                       var clock = new Clock
-
                        screen.game.do_turn
                        screen.do_frame(display)
-
-                       var dt = clock.lapse
-                       if dt.sec == 0 and dt.nanosec < target_dt then
-                               var sleep_t = target_dt - dt.nanosec
-                               sys.nanosleep(0, sleep_t)
-                       end
                end
        end
 
@@ -285,6 +275,3 @@ fun display_offset_x: Int do return (512.0*display_scale).to_i
 
 # Depends on the width of the holes
 fun display_offset_y: Int do return (800.0*display_scale).to_i
-
-var app = new MyApp
-app.main_loop