benchmarks/polygons: add make check
[nit.git] / examples / mnit_dino / src / graphism.nit
index 642a5df..d7e54a4 100644 (file)
@@ -48,6 +48,9 @@ redef class Entity
 end
 
 redef class Dino
+       # Notice: This method only implements the basic drawing feature, it is
+       # redefed in `fancy_dino`. If the `fancy_dino` module is imported by
+       # user methods, this code is dead and will never be executed.
        redef fun draw( display, imgs, turn )
        do
                var spos = pos.to_screen( display )
@@ -90,16 +93,27 @@ redef class Javelin
        end
 end
 
+redef class Bush
+       redef fun draw( display, imgs, turn )
+       do
+               var spos = pos.to_screen( display )
+               var img = imgs.bush_img
+               display.blit_centered( img, spos.x.to_i, spos.y.to_i )
+       end
+end
+
 class ImageSet
        var javelin_img : Image
 
        var dino_img : Image
        var dino_dead_img : Image
+       var dino_shadow : Image
 
        var caveman_img : Image
        var caveman_afraid_img : Image
        var caveman_ready_img : Image
        var blood_img : Image
+       var bush_img : Image
 
        var life_img : Image
        var life_empty_img : Image
@@ -109,17 +123,21 @@ class ImageSet
        var start_over_img : Image
        fun start_over_path : String is abstract
 
+       var numbers: NumberImages
+
        init ( app : App )
        do
                javelin_img = app.load_image( "images/javelin.png" )
 
                dino_img = app.load_image( "images/dino.png" )
                dino_dead_img = app.load_image( "images/dino_dead.png" )
+               dino_shadow = app.load_image( "images/shadow.png" )
 
                caveman_img = app.load_image( "images/caveman.png" )
                caveman_afraid_img = app.load_image( "images/caveman_afraid.png" )
                caveman_ready_img = app.load_image( "images/caveman_ready.png" )
                blood_img = app.load_image( "images/blood.png" )
+               bush_img = app.load_image( "images/bush.png" )
 
                life_img = app.load_image( "images/life.png" )
                life_empty_img = app.load_image( "images/life_empty.png" )
@@ -127,14 +145,15 @@ class ImageSet
                you_won_img = app.load_image( "images/you_won.png" )
                you_lost_img = app.load_image( "images/you_lost.png" )
                start_over_img = app.load_image( start_over_path )
+
+               numbers = app.load_numbers("images/#.png")
        end
 end
 
-
 redef class Game
        fun draw( display : Display, imgs : ImageSet, turn : Turn )
        do
-               display.clear( 0.0, 0.5, 0.1 )
+               display.clear(0.05, 0.45, 0.1)
 
                # entities (dino, cavemen and javelins)
                for e in entities do
@@ -155,6 +174,9 @@ redef class Game
                        display.blit_centered( imgs.life_empty_img, display.width*(empty+1)/11, display.top_offset )
                end
 
+               # display score
+               display.blit_number(imgs.numbers, score.item,  display.width/11, display.top_offset+32)
+
                # game over messages
                if over then
                        var concl_img : Image