[Résolu] Impossible d'avancer dans certaines directions : " Atelier : Inertie et rotation Les bases d’un Lunar Lander en Love2D"
J'ai recopié attentivement ce code deux fois en suivant la vidéo mais rien à faire quand je veux que le vaisseau monte, il avance (un tout petit peu), il avance seulement plus vite, quand on incline l'objet vers le haut à gauche, ça ne fonctionne pas en haut à droite. Si je l'incline vers la droite, il tombe.
-- Cette ligne permet d'afficher des traces dans la console pendant l'éxécution
io.stdout:setvbuf('no')
local Lander = {}
Lander.x = 0
Lander.y = 0
Lander.angle = -90
Lander.vx = 0
Lander.vy = 0
Lander.speed = 3
Lander.engineOn = false
Lander.img = love.graphics.newImage("images/ship.png")
Lander.imgEngine = love.graphics.newImage("images/engine.png")
function love.load()
largeur = love.graphics.getWidth()
hauteur = love.graphics.getHeight()
Lander.x = largeur/2
Lander.y = hauteur/2
end
function love.update(dt)
Lander.vy = Lander.vy + (0.6 * dt)
if love.keyboard.isDown("right") then
Lander.angle = Lander.angle + (90 * dt)
end
if love.keyboard.isDown("left") then
Lander.angle = Lander.angle - (90 * dt)
end
if love.keyboard.isDown("up") then
Lander.engineOn = true
local angle_radian = math.rad(Lander.angle)
local force_x = math.cos(angle_radian) * (Lander.speed * dt)
local force_y = math.sin(angle_radian) * (Lander.speed * dt)
Lander.vx = Lander.vx + force_x
Lander.vy = Lander.vx + force_y
else
Lander.engineOn = false
end
Lander.x = Lander.x + Lander.vx
Lander.y = Lander.y + Lander.vy
end
function love.draw()
love.graphics.draw(Lander.img, Lander.x, Lander.y,
math.rad(Lander.angle), 1, 1, Lander.img:getWidth()/2, Lander.img:getHeight()/2)
if Lander.engineOn == true then
love.graphics.draw(Lander.imgEngine, Lander.x, Lander.y,
math.rad(Lander.angle), 1, 1, Lander.imgEngine:getWidth()/2, Lander.imgEngine:getHeight()/2)
end
end
ok, j'ai trouvé l'erreur (Lander.vy = Lander.vx + force_y)...
- 6 Forums
- 238 Sujets
- 840 Posts
- 2 En ligne
- 45.5 {numéro}K Membres