Un space invaders avec Opal.rb - partie 14
Lorsque le joueur faisait feu, le tir prenait naissance dans le coin supérieur gauche du joueur. On le voudrait plutôt au milieu.
Voici donc la nouvelle classe Fire
:
class Fire
SIDE = 4
DELTA = 5
attr_reader :x, :y
def initialize(player)
@x = player.x + player.w / 2
@y = player.y - SIDE
end
def w; SIDE; end
def h; SIDE; end
def color; "white"; end
def update_position
@y -= DELTA
end
end
Dans initialize
, on calcule la position d’origine du tir par rapport
au joueur, passé en argument.
Il faut donc changer aussi la méthode fire
de la classe Game
:
class Game
...
def fire
@fires << Fire.new(@player)
end
...
end
Voilà, ça c’est fait. N’oubliez pas que le code est maintenant disponible sur Github.
À demain.
/ / / / / / / / / /