1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2012-2013 Alexis Laferrière <alexis.laf@xymus.net>
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 # App for the Dino game, manages App lifecyle and inputs
19 app_version
(0, 2, git_revision
)
30 var cavemen_at_first_level
= 6
33 var game
: nullable Game = null
34 var score
= new Ref[Int](0)
35 var imgs
: nullable ImageSet = null
36 var splash
: nullable SplashScreen = null
45 assert display
!= null
47 # load only splash images
48 splash
= new SplashScreen( self )
49 splash
.draw
( display
, false )
52 imgs
= new ImageSet( self )
54 splash
.draw
( display
, true )
57 redef fun frame_core
( display
)
61 var turn
= game
.do_turn
62 game
.draw
( display
, imgs
.as(not null), turn
)
64 splash
.draw
( display
, true )
68 redef fun input
( input_event
)
70 if input_event
isa QuitEvent then # close window button
71 quit
= true # orders system to quit
72 return true # this event has been handled
74 else if input_event
isa PointerEvent then
77 game
= new Game( cavemen_at_first_level
, score
)
78 else if game
.over
and game
.ready_to_start_over
then
80 var next_nbr_caveman
= game
.nbr_wanted_cavemen
82 next_nbr_caveman
+= cavemen_incr
84 score
= new Ref[Int](0)
85 next_nbr_caveman
= cavemen_at_first_level
87 game
= new Game( next_nbr_caveman
, score
)
90 game
.dino
.going_to
= (new ScreenPos( input_event
.x
, input_event
.y
)).to_game
( display
.as(not null) )
94 else if input_event
isa KeyEvent then
98 return false # unknown event, can be handled by something else