π
<-
Chat plein-écran
[^]

Pong en Lua

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: Pong en Lua

Unread postby Ti64CLi++ » 08 Sep 2017, 21:06

ok, merci
Image
User avatar
Ti64CLi++Modo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 69.7%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

Re: Pong en Lua

Unread postby 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
User avatar
Ti64CLi++Modo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 69.7%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

Re: Pong en Lua

Unread postby 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.
User avatar
AdriwebAdmin.
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 62.4%
 
Posts: 12510
Images: 1080
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Pong en Lua

Unread postby Ti64CLi++ » 08 Sep 2017, 21:34

ok, je tente, et je publie un code source.
Merci Adriweb
Image
User avatar
Ti64CLi++Modo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 69.7%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

Re: Pong en Lua

Unread postby 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
User avatar
Ti64CLi++Modo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 69.7%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

Re: Pong en Lua

Unread postby Ti64CLi++ » 08 Sep 2017, 22:07

Je post mon code source car je ne vois pas ou est l'erreur.
Code: Select all
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
User avatar
Ti64CLi++Modo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 69.7%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

Re: Pong en Lua

Unread postby 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: Select all
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
User avatar
AdriwebAdmin.
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 62.4%
 
Posts: 12510
Images: 1080
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Pong en Lua

Unread postby 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
User avatar
Ti64CLi++Modo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 69.7%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

Re: Pong en Lua

Unread postby Adriweb » 09 Sep 2017, 17:49

Pas vraiment pour le moment, ce que tu as fait me semble bien jusqu'alors.
User avatar
AdriwebAdmin.
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 62.4%
 
Posts: 12510
Images: 1080
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Pong en Lua

Unread postby Ti64CLi++ » 09 Sep 2017, 18:23

J'utilise correctement les classes?
Image
User avatar
Ti64CLi++Modo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 69.7%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

PreviousNext

Return to Nspire-Lua

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Featured topics
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
363 utilisateurs:
>357 invités
>2 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)