Posté le 23/05/2020 17:08
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 65 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 23/05/2020 17:09 | #
On ne va pas pouvoir te dire grand-chose sans le code !
Citer : Posté le 23/05/2020 17:12 | # | Fichier joint
Effectivement. Le voici (oui je sais il est Très mal optimisé)!
Il ne faut pas prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont !
Citer : Posté le 23/05/2020 21:20 | #
Il y a pas mal de problèmes dans ce code juste à la lecture. Notamment :
Après c'est pas tant une question d'optimisation que d'éparpillement. Sépare au moins la simulation, le dessin et les entrées. ^^"
Citer : Posté le 23/05/2020 22:51 | #
Euh... j'ai pas très bien compris ce q'il faut que je change. Le prog fonctionne (sur émulateur du moins) c'est le principal non ?
Pas compris non plu ce qu'il faut que je sépare.
Il ne faut pas prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont !
Citer : Posté le 23/05/2020 23:01 | #
As far as I know,
Also, I think an assignment like
Citer : Posté le 23/05/2020 23:40 | #
Euh... j'ai pas très bien compris ce q'il faut que je change. Le prog fonctionne (sur émulateur du moins) c'est le principal non ?
Malheureusement c'est dans l'autre sens que ça marche : si le programme ne fonctionne pas sur la calculatrice alors il est buggé, et c'est par chance qu'il tombe en marche sur l'émulateur. Les cas où un programme ne marche et le problème n'est pas dans le code sont très rares et c'est certainement pas la première chose à s'imaginer en cas de problème.
Dans if(var = valeur) { ... } tu ne compares rien (la comparaison c'est ==), tu assignes une nouvelle valeur. C'est équivalent à var = valeur; if(var) { ... } et if(var) tout seul est une forme courte pour if(var != 0). Autrement dit if(T=1) affecte 1 à T et est toujours vrai ; pareil pour level = 1.
Dans if(IsKeyDown) tu n'appelles même pas la fonction donc tu ne testes rien de ce qui est pressé sur le clavier. Cette condition teste juste si la fonction IsKeyDown "existe" et sera toujours vraie. Il n'y a pas de façon immédiate de savoir si au moins une touche est pressée.
Ton code est éparpillé dans le sens où ta boucle principale mélange plein de choses :
• La simulation : toute la partie physique, mise à jour de la position des objets, etc.
• Le dessin du jeu à l'écran.
• La gestion des entrées avec les touches pressées.
Ça ne veut pas dire que le programme ne peut pas marcher, mais plus tu manques l'organisation et plus des bugs vont se glisser de façon inaperçue.
As far as I know, GetKeyWait is the only SH4-compatible keypad handling function.
This is incorrect, every keyboard function is SH4-compatible; IsKeyDown() requires the SH4 Compatibility Tool for a patch, all the others work immediately. Also SDK's GetKeyWait is broken and never sets the keycode, so it's pretty unusable.
Enfin, pour ce qui est de la partie "non déterministe" du code (le fait qu'il ne se comporte pas de la même façon à tous les coups, et ici selon la plateforme), les premiers coupables à regarder sont les valeurs non initialisées.
Citer : Posté le 23/05/2020 23:54 | #
Sorry, I was thinking of syscall 0x247, which returns the row and column
Citer : Posté le 24/05/2020 08:32 | #
In this case no problem, it works like a charm. Even better, all syscalls are SH4-compatible, which kinda saved the day back in 2012
Citer : Posté le 30/05/2020 14:13 | #
Après un test, je me suis rendu compte que c'étais ça qui buggais (l'histoire des T=1)
Merci !
Thank you all !
Il ne faut pas prendre les gens pour des cons, mais il ne faut pas oublier qu'ils le sont !
Citer : Posté le 30/05/2020 14:19 | #
Parfait, content que le problème soit résolu !