module dino
import mnit
+import realtime
import graphism
import fancy_dino
var cavemen_at_first_level = 6
var cavemen_incr = 4
+ var target_dt = 12000000
+
var game : nullable Game = null
+ var score = new Container[Int](0)
var imgs : nullable ImageSet = null
var splash : nullable SplashScreen = null
do
var game = game
if game != null then
+ var clock = new Clock
+
var turn = game.do_turn
game.draw( display, imgs.as(not null), turn )
+
+ 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
else
splash.draw( display, true )
end
else if input_event isa PointerEvent then
if game == null then
# start from splash
- game = new Game( cavemen_at_first_level )
+ game = new Game( cavemen_at_first_level, score )
else if game.over and game.ready_to_start_over then
# play next game
var next_nbr_caveman = game.nbr_wanted_cavemen
- if game.won then next_nbr_caveman += cavemen_incr
- game = new Game( next_nbr_caveman )
+ if game.won then
+ next_nbr_caveman += cavemen_incr
+ else
+ score = new Container[Int](0)
+ next_nbr_caveman = cavemen_at_first_level
+ end
+ game = new Game( next_nbr_caveman, score )
else
# normal play
game.dino.going_to = (new ScreenPos( input_event.x, input_event.y )).to_game( display.as(not null) )