Alors, je commence par faire un commentaire un peu détaillé sur ton programme ici.
J'aime beaucoup ton jeu. Il est assez beau et simple, réactif (ce qui n'est pas gagné pour du basic) et plutôt bien réalisé pour un premier jeu. Je souhaite te donner des conseils pour t'améliorer, ou potentiellement rendre ton jeu meilleur. Je vais ici surtout parler de ton code.
Je commence avec le sous-programme "First", qui est en fait le sous-programme qui initialise les pictures 1, 2 et 3. D'une part, sache que tu peux intégrer directement des pictures à ton programme que tu laisses à télécharger. Breizh a souligné qu'avoir un programme d'initialisation était un avantage, ce qui est vrai, mais cette technique a deux inconvénients dont un non négligeable. Le premier, c'est que le joueur ne comprend pas trop ce qu'il se passe au début. Le deuxième, qui est essentiel, c'est que tes pictures prennent 2064 octets chacune, soit un total de 6204 octets, ce qui fait que ton programme occupe près de 10 000 octets sur la calculatrice en réalité. Plus de la moitié de cet espace est donc occupée par 3 pictures. L'avantage de les fournir en amont plutôt que de les initialiser, c'est que tu peux diviser leur taille par deux via BIDE de Zezombye ou Picture 1024 de Purobaz. Tu aras des explications plus précises dans ce dernier lien. J'avais également écrit une astuce un jour à ce sujet, je te conseille de lire les réponses des membres dont celles de Remiweb.
Ensuite, toujours dans ce programme "First", je vois ça :
F-Line 1, 63, 126, 63
F-Line 126, 63, 126, 2
F-Line 126, 2, 1, 2
F-Line 1, 2, 1, 63
F-Line 2, 1, 127, 1
F-Line 127, 1, 127, 62
Et là, je n'ai qu'une chose à te dire ! Prends vite connaissance des fonctions suivantes : Vertical et Horizontal ! Tu verras, la vie sera plus simple !
En fait, j'ai encore autre chose à te dire à ce sujet. Dans tout ton programme, tu exploites les fonctions F-Line. Je trouve même que tu les exploites dans tout leur potentiel, de manière très judicieuse, et que tu obtiens de beaux graphismes avec tes techniques (nuages, missiles, etc). Toutefois, j'aimerais que tu prennes connaissance de ces techniques de dessin ultra rapides en Basic : le DrawStat et le Super DrawStat. Potentiellement, tu seras en mesure d'avoir un jeu Basic encore plus réactif.
Dans ton programme principal, tu utilises les variables X et Y. Ce n'est pas judicieux, pour une raison simple. Les fonctions de dessin F-Line et autre utilisent ces variables-là et les modifient lors de leur utilisation. Par exemple, quand tu dessine un point de coordonnés (10, 50), eh bien ta variable X sera initialisée à 10 et Y à 50. Peut-être as-tu rencontré des problèmes avec ça, peut-être pas. En tous les cas, tu le sauras à l'avenir.
Pour dessiner les coupes dans les prix à remporter, je vois cette boucle :
6 -> B
Do
F-Line 4, B + 3, 8, B + 3
F-Line 8, B + 3, 8, B + 1
F-Line 7, B, 5, B
F-Line 5, B, 4, B + 2
F-Line 6, B, 6, B - 1
F-Line 5, B - 2, 7, B - 2
B + 10 -> B
LpWhile B < 63
Bon, je chipote, mais c'est plus un prétexte pour t'apprendre deux trucs trucs. Pourquoi ne pas utiliser une boucle For qui serait plus adaptée ? Peut-être ne connais-tu pas l'existence du Step ? Tu économiserais trois octets sur l'initialisation de B. Tu aurais un truc comme ça :
For 6→B To 63 Step 10
F-Line 4, B + 3, 8, B + 3
F-Line 8, B + 3, 8, B + 1
F-Line 7, B, 5, B
F-Line 5, B, 4, B + 2
F-Line 6, B, 6, B - 1
F-Line 5, B - 2, 7, B - 2
Next
Après, un truc comme ça, ça se fait très bien en DrawStat.
Un dernier point, même si je pourrais aller encore plus loin :
If G = 47 :Then
Cls
Text 25, 7, "Jeux et cours pour calto sur"
Text 35, 20, "www.planete-casio.fr"
200 -> W
Prog "WAIT"
BG-None
Stop
IfEnd
Astucieux, le coup de la fonction Wait. Toutefois, je n'ai même pas eu le temps de lire quand j'ai arrêté le jeu. Pourquoi ne pas simplement faire...
If G = 47 :Then
Cls
Text 25, 7, "Jeux et cours pour calto sur"
Text 35, 20, "www.planete-casio.fr"◢
BG-None
Stop
IfEnd
Bref ! Je t'encourage, n'hésite pas à me poser des questions si tu as besoin ! Oh, et j'ai découvert ton code "I know the author". Il suffit juste de connaitre les getkeys ! |