π
<-
Chat plein-écran
[^]

[Axe] Pb code pour rebond en Axe

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

[Axe] Pb code pour rebond en Axe

Message non lude juan_30 » 27 Mai 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: Tout sélectionner
.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
Fichiers joints
BOUNCE.8xp
(496 Octets) Téléchargé 26 fois
Avatar de l’utilisateur
juan_30
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 40%
 
Messages: 6
Inscription: 08 Déc 2017, 05:30
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: salarié

Re: Pb code pour rebond en Axe Parser

Message non lude Hayleia » 27 Mai 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: Tout sélectionner
.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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: Pb code pour rebond en Axe

Message non lude juan_30 » 27 Mai 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).
Avatar de l’utilisateur
juan_30
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 40%
 
Messages: 6
Inscription: 08 Déc 2017, 05:30
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: salarié

Re: Pb code pour rebond en Axe

Message non lude Hayleia » 27 Mai 2018, 11:33

juan_30 a écrit: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 a écrit:(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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar


Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 11 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.
1544 utilisateurs:
>1527 invités
>12 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)