GAME OVER (Jetpack Hero)
Première notion de fin de jeu, quand un alien nous touche on écrit GAME OVER et c’est fini. Pour rejouer il faudra relancer le jeu ; c’est violent mais il faut bien commencer quelque part.
DragonRuby reste avant tout du Ruby. Même s’il nous fournit un state
très
pratique, on peut construire nos objets comme d’habitude :
class Game
def initialize
@game_over = false
end
end
Dans la partie render on affiche GAME OVER au milieu de l’écran, sous condition :
if @game_over
outputs.labels << {
x: 640,
y: 360,
size_px: 200,
alignment_enum: 1,
vertical_alignment_enum: 1,
text: "GAME OVER",
r: 255,
g: 255,
b: 255,
}
end
On saute la partie calc quand on a perdu, ce qui a pour effet de figer les éléments présents :
def calc
return if @game_over
# ...
end
La partie est perdue dès qu’il y a collision entre un alien et le personnage :
def calc_alien_collision
if a = Geometry.find_intersect_rect(state.hero, state.aliens)
@game_over = true
end
end
Références
- Vous trouverez le code de Jetpack Hero sur github
- Documentation de DragonRuby
Cet article fait partie d’une série :
- Jetpack Hero
- Partie II
- Une platforme, des collisions
- Première animation du personnage
- Ajouter des platformes
- Du carburant pour le jetpack
- Collecte de minerai
- Effets sonores
- Du rangement avec la classe Game
- Apparition des aliens
- Tir du personnage
- On dégomme de l’alien
- GAME OVER
- Les aliens bougent enfin
Commentaires
Pas encore trouvé de solution simple et non-invasive pour avoir des commentaires sur le blog. En attendant vous pouvez laisser votre Commentaire sur mastodon@lkdjiin