class PontUI
Auteur:: Brabant Mano Version:: 0.1 Date:: 09/04/2020
Cette classe permet d'afficher un pont de la grille
Public Class Methods
creer(pont, taille = 40)
click to toggle source
Ce constructeur permet de créer un nouveau afficheur de pont
- param
-
casee La pont à afficher
-
taille La taille d'une case (40 par defaut)
-
# File lib/Hashiparmentier/UI/PontUI.rb, line 23 def PontUI.creer(pont, taille = 40) new(pont, taille) end
Public Instance Methods
clickOn()
click to toggle source
Cette méthode permet de simuler le clic sur la case
Calls superclass method
CaseUI#clickOn
# File lib/Hashiparmentier/UI/PontUI.rb, line 129 def clickOn() super() end
draw(window)
click to toggle source
Cette méthode permet de dessiner le pont
- param
-
window La fenetre sur laquelle l'ile va etre afficher
-
Calls superclass method
CaseUI#draw
# File lib/Hashiparmentier/UI/PontUI.rb, line 102 def draw(window) super(window) cr = window.create_cairo_context afficheSurbrillance(cr) if @casee.surbrillance if(@casee.marque) cr.set_source_rgb(1, 0, 0) else cr.set_source_rgb(@casee.couleurPontCourante.rouge, @casee.couleurPontCourante.vert, @casee.couleurPontCourante.bleu) end affichePontSimple(cr) if @casee.valeur == 1 affichePontDouble(cr) if @casee.valeur == 2 end
valeur()
click to toggle source
Cette méthode permet de retourner la valeu du pont
# File lib/Hashiparmentier/UI/PontUI.rb, line 123 def valeur return @casee.valeur end
Private Instance Methods
affichePontDouble(cr, largeur = 4, tailleDecalage = 4)
click to toggle source
# File lib/Hashiparmentier/UI/PontUI.rb, line 89 def affichePontDouble(cr, largeur = 4, tailleDecalage = 4) calculPosition(4, 4) cr.rectangle(@departY - @decalageY, @departX - @decalageX, @tailleY, @tailleX) cr.rectangle(@departY + @decalageY, @departX + @decalageX, @tailleY, @tailleX) cr.fill() end
affichePontSimple(cr, largeur = 4, tailleDecalage = 4)
click to toggle source
# File lib/Hashiparmentier/UI/PontUI.rb, line 81 def affichePontSimple(cr, largeur = 4, tailleDecalage = 4) calculPosition(4, 4) cr.rectangle(@departY, @departX, @tailleY, @tailleX) cr.fill() end
afficheSurbrillance(cr)
click to toggle source
# File lib/Hashiparmentier/UI/PontUI.rb, line 38 def afficheSurbrillance(cr) cr.set_source_rgba(1, 0, 0, 0.4) calculPosition(@taille/2, 0) cr.rectangle(@departY, @departX, @tailleY, @tailleX) cr.fill() end
calculPosition(largeur = 4, tailleDecalage = 4)
click to toggle source
# File lib/Hashiparmentier/UI/PontUI.rb, line 49 def calculPosition(largeur = 4, tailleDecalage = 4) @departX = @taille * @casee.posX() @departY = @taille * @casee.posY() if(@casee.direction == Pont::HORIZONTAL || @casee.directionSurbrillance == Pont::HORIZONTAL) @tailleX = largeur @tailleY = @taille @departX += @tailleY/2 - @tailleX/2 @decalageY = 0 @decalageX = tailleDecalage elsif(@casee.direction == Pont::VERTICAL || @casee.directionSurbrillance == Pont::VERTICAL) @tailleX = @taille @tailleY = largeur @departY += @tailleX/2 - @tailleY/2 @decalageY = tailleDecalage @decalageX = 0 else @tailleX = 0 @tailleY = 0 end end