Pong en Lua
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Pong en Lua
J'ai un probleme avec mon timer. Meme si je mets le timer a 0.01, la balle ne va pas assez vite
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Pong en Lua
Quand tu fais des déplacements ou autre, essaye plutôt de déplacer de 2 en 2 plutôt qu'1 en 1.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14615
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Pong en Lua
Ca marche parfaitement merci.
J'ai encore un petit probleme avec les collisions, si je puis dire ainsi, donc le code source devra attendre le prochain post
J'ai encore un petit probleme avec les collisions, si je puis dire ainsi, donc le code source devra attendre le prochain post
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Pong en Lua
Je post mon code source car je ne vois pas ou est l'erreur.
Et ce que ca fait que ca ne devrait pas faire:
Voila, si quelqu'un peut m'aider
Edit : Je code avec JSE 2.2 donc je dois recopier le code a chaque fois, c'est pour ca que je mets du temps (D'ailleur il faudrait qu'il fasse que l'on puisse recuperer les scripts sur l'ordinateur
- Code: Tout sélectionner
screen = platform.window
ww, wh = screen:width(), screen:height()
Pad = class()
function Pad:init(x,y) --rajouterai l pour la taille de la raquette plus tard
self.y = y
self.x = x
self.score = 0
--self.length = l
end
function Pad:move(dir)
if (dir > 0 and self.y < wh - 41) or (dir < 0 and self.y > 1) then
self.y = self.y + 2 * dir
end
end
function Pad:addPoint()
self.score = self.score + 1
end
function Pad:paint(gc)
gc:setColorRGB(255, 255, 255)
gc:fillRect(self.x, self.y, 6, 40)
end
Ball = class()
function Ball:init(x,y,dx,dy)
self.x = x
self.y = y
if dx == 1 then
dx = -2
end
if dy == 1 then
dy = -2
end --je n'ai pas trouve comment faire mieux
self.dx = dx
self.dy = dy
end
function Ball:move()
self.x = self.x + self.dx
self.y = self.y + self.dy
screen:invalidate()
end
function Ball:collision(pad1,pad2)
if self.x == 0 then
pad2:addPoint()
self:init(ww/2-2,wh/2-2,math.random(1,2),math.random(1,2))
elseif self.x == ww-5 then
pad1:addPoint()
self:init(ww/2-2,wh/2-2,math.random(1,2),math.random(1,2))
end
if (self.x == pad1.x+9 and self.y > pad1.y and self.y < pad1.y+35) or (self.x == pad2.x-5 and self.y > pad2.y and self.y < pad2.y+35) then
self.dx = -self.dx
end
if self.y == 0 or self.y == wh-5 then
self.dy = -self.dy
end
screen:invalidate()
end
function Ball:paint(gc)
gc:setColorRGB(255,255,255)
gc:fillArc(self.x,self.y,5,5,0,360)
end
player1 = Pad(5, wh / 2 - 20)
player2 = Pad(ww-13,wh/2-20)
ball = Ball(ww/2-2,wh/2-2,math.random(1,2),math.random(1,2))
timer.start(0.01)
function on.paint(gc)
gc:setColorRGB(0, 0, 0)
gc:fillRect(0, 0, ww, wh)
player1:paint(gc)
player2:paint(gc)
ball:paint(gc)
ball:collision(player1,player2)
gc:setFont("sansserif","b",24)
gc:setPen("thick","dashed")
gc:drawString(player1.score,ww/2-25,30)
gc:drawString(player2.score,ww/2+7,30)
gc:fillRect(ww/2-2,0,4,wh)
end
function on.arrowDown()
player1:move(2)
screen:invalidate()
end
function on.arrowUp()
player1:move(-2)
screen:invalidate()
end
function on.arrowLeft()
player2:move(-2)
screen:invlaidate()
end
function on.arrowRight()
player2:move(2)
screen:invalidate()
end
function on.timer()
ball:move()
screen:invalidate()
end
Et ce que ca fait que ca ne devrait pas faire:
- La balle sort de l'ecran quand elle passe tout en bas. Normalement elle est sense rebondir
- La balle sort de l'ecran quand elle passe tout a gauche, sans toucher la raquette. Normalement elle est sense rebondir
Voila, si quelqu'un peut m'aider
Edit : Je code avec JSE 2.2 donc je dois recopier le code a chaque fois, c'est pour ca que je mets du temps (D'ailleur il faudrait qu'il fasse que l'on puisse recuperer les scripts sur l'ordinateur
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Pong en Lua
Les bornes de tes checks dans Ball:collision étaient un peu trop strictes.
Voici une version corrigée:
Au passage, tu as mal écrit "invalidate" dans ton arrowLeft
Voici une version corrigée:
- Code: Tout sélectionner
function Ball:collision(pad1,pad2)
if self.x <= 0 then
pad2:addPoint()
self:init(ww/2-2,wh/2-2,math.random(1,2),math.random(1,2))
elseif self.x >= ww-5 then
pad1:addPoint()
self:init(ww/2-2,wh/2-2,math.random(1,2),math.random(1,2))
end
if (self.x <= pad1.x+9 and self.y > pad1.y and self.y < pad1.y+35) or (self.x >= pad2.x-5 and self.y > pad2.y and self.y < pad2.y+35) then
self.dx = -self.dx
end
if self.y <= 0 or self.y >= wh-5 then
self.dy = -self.dy
end
screen:invalidate()
end
Au passage, tu as mal écrit "invalidate" dans ton arrowLeft
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14615
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: Pong en Lua
Merci Adriweb je test ca.
Et sinon, tu as des commentaires a faire, des ameliorations ou d'autres choses sur mon code?
Parce que je voudrais m'ameliorer en Lua, et pour cela, j'ai besoin de l'aide d'un pro (professeur et professionel )
Et sinon, tu as des commentaires a faire, des ameliorations ou d'autres choses sur mon code?
Parce que je voudrais m'ameliorer en Lua, et pour cela, j'ai besoin de l'aide d'un pro (professeur et professionel )
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Pong en Lua
Pas vraiment pour le moment, ce que tu as fait me semble bien jusqu'alors.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14615
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
22 messages
• Page 2 sur 3 • 1, 2, 3
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités