Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 94a85f7f rédigé par Samuel AMARAL ANTUNES's avatar Samuel AMARAL ANTUNES :cactus:
Parcourir les fichiers

Blocage eau

utilisation d'une slice d'ints pour les tiles obstacles
parent b370001b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -6,18 +6,30 @@ import "gitlab.univ-nantes.fr/jezequel-l/quadtree/configuration" ...@@ -6,18 +6,30 @@ import "gitlab.univ-nantes.fr/jezequel-l/quadtree/configuration"
// un tableau de booléen indiquant si les cases au dessus (0), // un tableau de booléen indiquant si les cases au dessus (0),
// à droite (1), au dessous (2) et à gauche (3) du personnage // à droite (1), au dessous (2) et à gauche (3) du personnage
// sont bloquantes. // sont bloquantes.
var blockingTiles []int = []int{-1, 5, 6}
func (f Floor) Blocking(characterXPos, characterYPos, camXPos, camYPos int) (blocking [4]bool) { func (f Floor) Blocking(characterXPos, characterYPos, camXPos, camYPos int) (blocking [4]bool) {
relativeXPos := characterXPos - camXPos + configuration.Global.ScreenCenterTileX relativeXPos := characterXPos - camXPos + configuration.Global.ScreenCenterTileX
relativeYPos := characterYPos - camYPos + configuration.Global.ScreenCenterTileY relativeYPos := characterYPos - camYPos + configuration.Global.ScreenCenterTileY
// flèche haut // flèche haut
blocking[0] = relativeYPos <= 0 || f.content[relativeYPos-1][relativeXPos] == -1 || f.content[relativeYPos-1][relativeXPos] == 5 blocking[0] = relativeYPos <= 0 || checkInList(blockingTiles, f.content[relativeYPos-1][relativeXPos])
// flèche droite // flèche droite
blocking[1] = relativeXPos >= configuration.Global.NumTileX-1 || f.content[relativeYPos][relativeXPos+1] == -1 || f.content[relativeYPos][relativeXPos+1] == 5 blocking[1] = relativeXPos >= configuration.Global.NumTileX-1 || checkInList(blockingTiles, f.content[relativeYPos][relativeXPos+1])
//flèche bas //flèche bas
blocking[2] = relativeYPos >= configuration.Global.NumTileY-1 || f.content[relativeYPos+1][relativeXPos] == -1 || f.content[relativeYPos+1][relativeXPos] == 5 blocking[2] = relativeYPos >= configuration.Global.NumTileY-1 || checkInList(blockingTiles, f.content[relativeYPos+1][relativeXPos])
//flèche gauche //flèche gauche
blocking[3] = relativeXPos <= 0 || f.content[relativeYPos][relativeXPos-1] == -1 || f.content[relativeYPos][relativeXPos-1] == 5 blocking[3] = relativeXPos <= 0 || checkInList(blockingTiles, f.content[relativeYPos][relativeXPos-1])
return blocking return blocking
} }
func checkInList(l []int, val int) bool {
for _, v := range l {
if v == val {
return true
}
}
return false
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter