[Résolu] Blocage sur un exercice
Bonjour,
Je suis en train de bloquer sur un exercice tout bête je suis sur, je dois faire rebondir un perso de gauche à droite en le faisant changer de sens (c'est à dire quand il va à droite il regarde vers la droite et à gauche quand il va à gauche )
Mais je n'y arrive pas je bloque dessus, j'arrive bien à avoir le rebond sans soucis, j'arrive à le faire tourner de sens quand il arrive au bord droite mais il ne repart pas vers la gauche
Je n'arrive pas à trouver mon erreur, si vous avez un petit indice pour m'aider je serai preneur
J'ai fait afficher le sprite selon la vitesse positive ou négative ça vient surement de la mais je bloque
Merci de vos réponses
@clael une copie de ton code nous aidera à t'aider.
Tu peux pour ça utiliser le site https://pastebin.com/
J'ai tout remodifié parce que je partais sur un mauvais truc je pense. j'utilisé 2 variable pour les 2 sprites (gauche et droite ) la j'utilise 1 seule pour les 2 sprites mais je n'arrive plus à avoir le rebond :/
voici le code :
img = {}
img.x = 0
img.y = 0
img.largeur = 67
img.hauteur = 85
img.Vitesse = 5
function love.load()
imgR = love.graphics.newImage("images/personnage_Right.png")
imgL = love.graphics.newImage("images/personnage_left.png")
img.x = 0
img.y = love.graphics.getHeight ()/2 - img.hauteur/2
end
function love.update(dt)
img.x = img.x + img.Vitesse
if img.x == love.graphics.getWidth () - img.largeur then
img.x = img.x + img.Vitesse * -1
end
end
function love.draw()
if img.Vitesse == -5 then
love.graphics.draw(imgL, img.x, img.y)
end
if img.Vitesse == 5 then
love.graphics.draw(imgR, img.x, img.y)
end
end
J'ai recommencé mais la j'ai même plus le rebond alors que j'utilse la même commande que pour le pong et que j'ai eu 0 soucis sur pong :/
ok j'ai trouvé mon erreur pour le rebond me reste plus qu'à faire l'autre côté et j'ai tout bon, j'ai le rebond et le changement d'orientation.... j'ai envie de me taper quand je fais des conneries comme ça mdr
Bon tout est ok j'ai trouvé mes erreurs tout fonctione.... ça fait 2 heure que je suis dessus à chercher à faire des truc compliqué, j'ai tout effacé tout recommencé et en 5 minutes c'est réglé.... désolé pour le dérangement
Technique du canard en plastique !
Content que tu aies pu te débug tout seul.
Les joies du code 😉
Je vous met le code final que j'ai obtenu, si vous pouvez me dire si il y' a encore plus simple? tous les points de vues sont bon à prendre 😉 @GamerPsy
img = {}
img.x = 0
img.y = 0
img.largeur = 67
img.hauteur = 85
img.Vitesse = 5
function love.load()
imgR = love.graphics.newImage("images/personnage_Right.png")
imgL = love.graphics.newImage("images/personnage_left.png")
img.x = 0
img.y = love.graphics.getHeight ()/2 - img.hauteur/2
end
function love.update(dt)
img.x = img.x + img.Vitesse
if img.x >= love.graphics.getWidth () - img.largeur then
img.Vitesse = img.Vitesse * -1
end
if img.x <= 0 then
img.Vitesse = img.Vitesse * -1
end
end
function love.draw()
if img.Vitesse == -5 then
love.graphics.draw(imgL, img.x, img.y)
end
if img.Vitesse == 5 then
love.graphics.draw(imgR, img.x, img.y)
end
end
Y a pas vraiment plus simple, le code c'est un langage et l'essentiel c'est que tu sois en capacité de te relire et de comprendre rapidement ce que tu exprimes dans ton code.
J'ai refactorisé ton code, tu peux tester :
img = {} img.x = 0 img.y = 0 img.largeur = 67 img.hauteur = 85 img.Vitesse = 5 function love.load() imgR = love.graphics.newImage("images/personnage_Right.png") imgL = love.graphics.newImage("images/personnage_left.png") img.x = 0 img.y = love.graphics.getHeight ()/2 - img.hauteur/2 end function love.update(dt) img.x = img.x + img.Vitesse if img.x >= love.graphics.getWidth () - img.largeur or img.x <= 0 then img.Vitesse = img.Vitesse * -1 end end function love.draw() side = img.Vitesse > 0 ? imgR : imgL; love.graphics.draw(side, img.x, img.y) end
- 6 Forums
- 238 Sujets
- 840 Posts
- 2 En ligne
- 45.5 {numéro}K Membres