
Bon, j’espère que tout le monde connaît le jeu du pong.
Le système est assez simple.
- 2 raquettes.
- 1 balle.
- Affichage du score des joueurs.
- Affichage du filet.
- L’angle du rebond de la balle change selon le point d’impact sur la raquette.
- Le premier joueur à obtenir 11 points remporte la partie.
Les raquettes
local raquettes = {}
function raquettes.new(positionX)
local raquette = {x=positionX, y=225, yDef=225, w=20, h=150, speed=300}
function raquette.draw()
love.graphics.rectangle("fill", raquette.x, raquette.y, raquette.w, raquette.h)
end
return raquette
endLa balle
local balle = {x=0, y=0, w=15, h=15, speed=250, follow=true, joueur=1}
function balle.update(dt)
if balle.follow then
-- suis la raquette du joueur
else
-- bouge tte seule
end
end
function balle.draw()
love.graphics.rectangle("fill", balle.x, balle.y, balle.w, balle.h)
endLes joueurs
local joueur = {}
function joueur.load()
-- joueur 1
joueur[1] = {score=0}
joueur[1].raquette = raquettes.new(10) -- positionX
joueur[1].keys = {up="z", down="s", fire="space"}
-- joueur 2
joueur[2] = {score=0}
joueur[2].raquette = raquettes.new(770) -- positionX
joueur[2].keys = {up="up", down="down", fire="return"}
end
function joueur.update(dt)
for n=1, 2 do
local j = joueur[n]
local pad = joueur[n].raquette
if love.keyboard.isDown(j.keys.up) and love.keyboard.isDown(j.keys.down) then
-- nothing
elseif love.keyboard.isDown(j.keys.up) then
pad.y = pad.y - (pad.speed * dt)
elseif love.keyboard.isDown(j.keys.down) then
pad.y = pad.y + (pad.speed * dt)
end
-- limit to screen
if pad.y <= 0 then
pad.y = 0
elseif pad.y + pad.h >= 600 then
pad.y = 600 - pad.h
end
end
end
--
function joueur.draw()
for n=1, #joueur do
joueur[n].raquette.draw()
end
endLe filet
local filet = {x=400,y=0,w=1,h=600}
function filet.draw()
love.graphics.rectangle("fill", filet.x, filet.y, filet.w, filet.h)
endLe Score
local gameUI = {}
function gameUI.draw()
love.graphics.print("J1 : "..joueur[1].score, 200, 10)
love.graphics.print("J2 : "..joueur[2].score, 600, 10)
endAvec ceci essayer de créer la logique du jeu…
Voir la solution a la page suivante