Bug dans le code Pong, la raquette ne s'arrête pas à l'extrémister du haut.
Bonsoir,
Avant tout, merci de prendre le temps de me lire alors que c'est affaire qui parle de "PONG", ça peut-être assez comique quand on voit les autres postes, plus prestigieux que le miens à cotés.
Je débute à peine les exercices dans le PONG, et il semblerait qu'une commande soit dépassée.
https://love2d.org/wiki/love.graphics.getHeight
Ce qu'il y a écrit à la page de correction à la page 16, en liens avec la vidéo "5 - Pong la raquette.mp4" ne fonctionne pas, ni ce qu'il y as dans la vidéo, j'ai l'impression que le code à était Outdated ou quelques choses dans le genre.
https://www.gamecodeur.fr/liste-ateliers/atelier-jeu-de-pong-apprenez-a-coder-votre-premier-jeu-video-rapidement-et-facilement/?vimeography_gallery=5&vimeography_video=460636918
Ce qui ce passe pour ma part, est bien que bien bloquer pour le bas de la raquette, mais le haut de la raquette lui est infinie, et je n'arrive pas à résoudre ça, j'ai supposés qu'il faillait faire un graphic.getHeight() aussi pour "up" mais ça n'as fonctionner, et ça fait bloquer la raquette quand je la descend en bas, impossible après ça à la remonter, donc je vois pas trop quoi faire d'autres avec mes connaissances actuelles, dons je passe à la suite.
Je ne sais pas si j'ai découvert un bug ou si mon code est mauvais, voici mon code, qui est aussi joint en fichier png.
""
pad = {}
pad.x = 0
pad.y = 0
pad.largeur = 20
pad.hauteur = 80
function love.load()
end
function love.update()
if love.keyboard.isDown("down") and
pad.y < love.graphics.getHeight() - pad.hauteur then
pad.y = pad.y + 3
end
if love.keyboard.isDown("up") then
pad.y = pad.y - 3
end
end
function love.draw()
love.graphics.rectangle("fill", pad.x, pad.y, pad.largeur, pad.hauteur)
love.graphics.rectangle("line", 50, 50, 10, 10)
love.graphics.rectangle("fill", 770, 510, 20, 80)
end
""
Voilà, si vous pouviez me dire ce qui ne va pas ? ça serait cool, dans tous les cas, je continue avec, je ne crois pas que cela soit très grave, c'est présent, mais pas embêtant pour la suite des exercices à venir, je pense.
Bonne continuation dans ce que vous entreprenez !
@embuscade je pense que la version française devrait te rassurer : https://love2d.org/wiki/love.graphics.getHeight_(Français)
En règle générale avant de dire que le code est "dépassé" il faut indiquer quelle version tu utilises de love 2D mais comme tu peux le lire avec la version traduite de la page... peu de chance que ta fonction soit obsolète.
Rapidement, je répond juste à ta question principale pour le fait que quand tu vas vers le haut tu sors de l'écran, dans ta fonction update il te manque une condition.
Monter et descendre c'est la coordonnée y (la hauteur de ton écran si tu préfères), il faut que tu interdises de sortir de l'écran en hauteur au point y=0, c'est ce qu'il manque à ton code.
C'est important que tu comprennes la logique et pourquoi c'est y=0 comme coordonnée limite qu'il te manque (la réponse n'est pas y=0, je t'indique juste où creuser), tant que ce n'est pas compris ça me semble compliqué pour la suite car ça veut dire que tu n'as pas compris le concept des collisions et ne sais pas te repérer sur les coordonnées x et y.
Quand tu écris " j'ai supposés qu'il faillait faire un graphic.getHeight() aussi pour "up" " on voit que tu testes mais ne comprends pas encore ce que ça fait.
Tu as du aller un peu trop vite sur le premier atelier Pixel et origine à mon avis.
Prends le temps qu'il faut pour bien maitriser et comprendre ce que tu fais et pourquoi ça fonctionne, ce n'est pas une course.
Bon code et apprentissage de la patience 😉
pad = {} pad.x = 0 pad.y = 0 pad.largeur = 20 pad.hauteur = 80 function love.load() end function love.update() if love.keyboard.isDown("down") and pad.y < love.graphics.getHeight() - pad.hauteur then pad.y = pad.y + 3 end if love.keyboard.isDown("up") then -- ???? pad.y = pad.y - 3 end end function love.draw() love.graphics.rectangle("fill", pad.x, pad.y, pad.largeur, pad.hauteur) love.graphics.rectangle("line", 50, 50, 10, 10) love.graphics.rectangle("fill", 770, 510, 20, 80) end
Comme dis plus haut il manque quelque chose...
- 6 Forums
- 262 Sujets
- 906 Posts
- 0 En ligne
- 45.6 {numéro}K Membres