π
<-
Chat plein-écran
[^]

Pong en Lua

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: Pong en Lua

Message non lude Ti64CLi++ » 08 Sep 2017, 21:06

ok, merci
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Pong en Lua

Message non lude Ti64CLi++ » 08 Sep 2017, 21:30

J'ai un probleme avec mon timer. Meme si je mets le timer a 0.01, la balle ne va pas assez vite :(
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Pong en Lua

Message non lude Adriweb » 08 Sep 2017, 21:33

Quand tu fais des déplacements ou autre, essaye plutôt de déplacer de 2 en 2 plutôt qu'1 en 1.
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Pong en Lua

Message non lude Ti64CLi++ » 08 Sep 2017, 21:34

ok, je tente, et je publie un code source.
Merci Adriweb
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Pong en Lua

Message non lude Ti64CLi++ » 08 Sep 2017, 21:37

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 :)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Pong en Lua

Message non lude Ti64CLi++ » 08 Sep 2017, 22:07

Je post mon code source car je ne vois pas ou est l'erreur.
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 ;)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Pong en Lua

Message non lude Adriweb » 09 Sep 2017, 14:13

Les bornes de tes checks dans Ball:collision étaient un peu trop strictes.

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
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Pong en Lua

Message non lude Ti64CLi++ » 09 Sep 2017, 14:15

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 :D )
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Pong en Lua

Message non lude Adriweb » 09 Sep 2017, 17:49

Pas vraiment pour le moment, ce que tu as fait me semble bien jusqu'alors.
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Pong en Lua

Message non lude Ti64CLi++ » 09 Sep 2017, 18:23

J'utilise correctement les classes?
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

PrécédenteSuivante

Retourner vers Nspire-Lua

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1077 utilisateurs:
>1058 invités
>14 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)