π
<-

[Axe] Pb code pour rebond en Axe

Assembleur, Axe, C/C++, ICE...

[Axe] Pb code pour rebond en Axe

Unread postby juan_30 » 27 May 2018, 09:59

Bonjour,
Je m'amuse à faire des petits bouts de code...pour faire plus gros un jour :) (un jour...)
Là, il s'agit d'une balle rebondissante...un truc tout simple. Le code fonctionne en gros les dix premiers rebonds, c'est pas très joli, mais bon, je demande juste que ça rebondisse pour l'instant. Et puis, allez savoir pourquoi, ma balle décide de s'envoler, tout doucement elle remonte l'écran puis finit par disparaître...
Et je vois pas pourquoi pas...
Alors si quelqu'un a cinq minutes à perdre et peut m'éclairer sur le sujet, ben ce serait avec grand plaisir. :)
Merci

Voilà le code, et aussi en fichier :
Code: Select all
.BOUNCEX

.definition de la balle
[00183C4E4E3C1800]->Pic1

ClrHome
DiagnosticOff

.coordonnees de depart
48->X:40->Y
.acceleration, sens
0->V:1->S


Repeat getKey(54)
   
   Repeat ((Y<=39) or (Y>=64))
      CAL()
   End
   .inversion du sens
   ~S->S
   CAL()
End

.fonction de calcul coordonnees et affichage
Lbl CAL
S*V+Y->Y
V+S->V
Pause 100
ClrDraw
Pt-On(X,Y,Pic1
DispGraph
You do not have the required permissions to view the files attached to this post.
User avatar
juan_30
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 40%
 
Posts: 6
Joined: 08 Dec 2017, 05:30
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: salarié

Re: Pb code pour rebond en Axe Parser

Unread postby Hayleia » 27 May 2018, 10:59

Alors tout d'abord l'organisation de ton code n'a aucun sens. Une fonction qui comme son nom l'indique calcule des coordonnées et affiche, c'est une mauvaise idée. Tu me diras que c'était pour l'appeler deux fois... oui mais pourquoi ? Ça ne sert à rien de l'appeler ligne 22 puisqu'elle va rapidement être appelée ligne 18 puisqu'il s'agit de boucles partout. Et sinon, on n'est pas en 2012, tu peux mettre jusqu'à 13 caractères dans tes noms de labels.

Ensuite "Pic1" ça ne veut rien dire. Ce n'est pas parce que des gens (qui ne connaissent rien à l'Axe) disent que l'Axe est illisible qu'il faut écrire de l'Axe illisible. J'ai donc utilisé "°TheBall" comme nom pour la sprite de la balle dans mon code.

Par ailleurs, on n'est pas en Basic. Omettre les parenthèses finales comme à la ligne 31 ne fait que mystifier le compilateur sans produire un code compilé plus petit. À la limite si tu codes sur une 83+ régulière (pas une 83+.fr USB), je peux comprendre l'économie d'octets sur le code source, mais dans les autres cas c'est juste une mauvaise pratique.

On n'est pas non plus en Lisp, il y a un certain nombre de parenthèses inutiles sur la ligne 17, du coup ça ne servait à rien d'en économiser 1 ligne 31.

Je conseille aussi de mettre le Return final. Certes le compilateur le mettra lui même, mais et alors ? Le jour où tu vas ajouter une autre "fonction" en dessous de CAL, tu vas oublier de mettre un return entre CAL et cette "fonction" et tu vas perdre du temps à chercher le bug.

Sinon, "Axe Parser" est le nom du compilateur, pas du langage, qui est juste "Axe", donc le titre de ton thread était incorrect (j'ai corrigé).

Enfin concernant ton problème, si tu regardes mieux, la balle ne s'envole pas juste tout doucement, elle vibre. Parce qu'elle est passée trop loin en dessous de 39, du coup elle change de sens mais à la frame d'après elle ne redescend pas au dessus de 39, du coup elle rechange de sens tout de suite, et ensuite elle fait continuellement ça, changer de sens sans jamais revenir dans la fenêtre 39-64, donc elle monte en vibrant. D'où ma correction, un vieux min(max()) pour restreindre Y entre 40 et 63.

Proposition de code :
Code: Select all
.BOUNCEX

.definition de la balle
[00183C4E4E3C1800]->°TheBall

ClrHome
DiagnosticOff

.coordonnees de depart
48->X:40->Y
.acceleration, sens
0->V:1->S

Repeat getKey(54)
   Repeat Y<=39 or (Y>=64)
      S*V+Y->Y
      V+S->V
      Pause 100
      ClrDraw
      Pt-On(X,Y,°TheBall)
      DispGraph
   End
   max(40,min(63,Y))->Y
   .inversion du sens
   ~S->S
End


Résultat :
Image

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: Pb code pour rebond en Axe

Unread postby juan_30 » 27 May 2018, 11:24

Wouah... j'en ai pris pour mon grade ! :) ... de petit débutant. Mais au moins, la leçon porte tout de suite :)
Bon, pour les Pic1 et autres parenthèses, désolé, mais là, je suis la méthode Kindermoute (et je suis bien content d'avoir ce tutoriel pour commencer).
En tout cas un grand merci pour ta réponse, particulièrement instructive. (tu devrais songer à faire un tutoriel...entre ton style et tes connaissances, pas de doute qu'il aurait un grand succès).
User avatar
juan_30
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 40%
 
Posts: 6
Joined: 08 Dec 2017, 05:30
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: salarié

Re: Pb code pour rebond en Axe

Unread postby Hayleia » 27 May 2018, 11:33

juan_30 wrote:Wouah... j'en ai pris pour mon grade ! :) ... de petit débutant. Mais au moins, la leçon porte tout de suite :)
Bon, pour les Pic1 et autres parenthèses, désolé, mais là, je suis la méthode Kindermoute (et je suis bien content d'avoir ce tutoriel pour commencer).

Oui oui, excuse si ça paraissait un peu rude, mais ce n'était pas censé être méchant :P
J'imagine bien que tout le monde ne sait pas tout dès le premier contact avec le langage mais justement, je voulais profiter de ma correction de ton code pour préciser quelques choses qui pourraient t'être utile (comme par exemple ne pas utiliser Pic1 quand on peut mettre des noms lisibles, ça aide quand on fait de gros programmes) plus tard.

juan_30 wrote:(tu devrais songer à faire un tutoriel...entre ton style et tes connaissances, pas de doute qu'il aurait un grand succès).

Il y aurait peut être eu un grand succès en 2012, mais là il n'y a plus grand monde qui recherche des tutos d'Axe.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar


Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 8 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
1084 utilisateurs:
>1064 invités
>15 membres
>5 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)