Posté le 01/05/2014 17:34
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 233 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 01/05/2014 17:47 | #
Pour la boucle For, soit tu mets "Step -1" au bout, ce qui te permet de diminuer ton nombre, soit tu mets
20-I
Next
Ce qui te permet d'obtenir le résultat voulu.
Citer : Posté le 01/05/2014 17:49 | #
Tu peut faire des boucles for qui enlèvent:
// blabla
Next
Les jambes du personnage qui bougent en Basic tu vas avoir un peu de mal par contre pour ce qui est de faire un jeu de plateforme ca se tente
Pour les plateformes solides j'ai pas trop compris. Tu veux faire en sorte que ça traverse pas en gros ?
Citer : Posté le 02/05/2014 12:37 | #
Merci a vous (je ne savais pas pour Step -1 ), ce probleme etant reglé il me reste celui des plateformes.
Pour les plateformes solides j'ai pas trop compris. Tu veux faire en sorte que ça traverse pas en gros ?
Citer : Posté le 02/05/2014 12:39 | #
En fait il faut stocker des données dans la mémoire.
Par exemple, si il y a un sol, il est à 0.
Donc, un moment de dessiner ton personnage:
De manière plus générale, tu peux utiliser des matrices.
En revanche, tu ne feras pas une grille de 127*63 (si tu le fais en mode graphique), ça ne servira à rien et prendra beaucoup de mémoire.
Citer : Posté le 02/05/2014 13:17 | #
Ah c'est pas mal ! (J'ai mit du temps a comprendre ) Par exemple
Then Y>1=>Y-1->Y
IfEnd
Dautre part est il possible de faire un encadrement type "If 10<A<20" ? ca m'aiderait bien
Citer : Posté le 02/05/2014 13:19 | #
Non, tu dois mettre
Ce sont les opérateurs logiques (bon, ne t'embête pas avec ça, utilise juste Or et And ). Tu peux les trouver dans [OPTN]->[LOGIC].
Dans ton exemple, il y a du sol jusqu'à X=50.
Citer : Posté le 02/05/2014 13:19 | #
Pour l’encadrement fait le en deux conditions :
If A>10 and A<20
Then ...
Edit : grillé
Citer : Posté le 02/05/2014 13:22 | #
Oui je connais ca (enfin ceux dont tu parles)
Et bien il y en a de 50 a 127 (nb max de pixels) non ? Car X représente l'abscisse.
Citer : Posté le 02/05/2014 13:25 | #
C'est 127*63 (utilisables, l'écran fait 128*64)
Citer : Posté le 02/05/2014 13:25 | #
C'était juste pour préciser, histoire qu'on se mette d'accord sur la manière dont ça fonctionne.
En revanche tu ne pourras pas faire un niveau intéressant avec juste des conditions.
Utilise plutôt des matrices pour coder le niveau.
Citer : Posté le 02/05/2014 13:29 | #
C'est 127*63 (utilisables, l'écran fait 128*64)
Oui ca revient au meme
Je ne suis pas opérationnel avec (j'ai les bases), enfin je ne vois pas exactement comment les utiliser là.. peux tu m'expliquer quelles valeurs sont a entrer dans les matrices pour ce jeu précis ?
Citer : Posté le 02/05/2014 13:32 | #
Un exemple.
0 0 0 0 0 0 0 0 0 0 0 0
0 0 2 2 2 2 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 3 0 0
0 0 1 1 1 1 0 0 0 3 0 0
0 0 0 0 0 0 0 0 0 3 0 0
1 1 1 1 1 0 0 1 1 1 1 1
Avec, par exemple, 1 pour une plateforme (un bloc), 2 pour un bloc avec un point d'interrogation, 3 pour un tuyau, etc...
Je pense que tu vois ce que ça représente. Après, ça c'est pour un niveau de 12*6, à toi de voir quelle taille tu vas lui donner (en hauteur surtout).
Citer : Posté le 02/05/2014 13:33 | #
Et Lephenixnoir j'ai regardé ton space invaders comment puis je faire des graphismes comme les tiens (les planetes) ? Sur 35+ c'est possible ?
Ajouté le 02/05/2014 à 13:35 :
Merci mais chaque case ne représente pas un pixel ? Je n'arrive pas a me représenter ca exactement.
Citer : Posté le 02/05/2014 13:35 | #
Alors, non.
Il faut programmer en C, et sur une 35+ ce n'est pas possible. Par contre tu peux la transformer.
Sinon oui, ce n'est pas du Basic, mais du C.
Ajouté le 02/05/2014 à 13:37 :
Disons que la matrice que je t'ai montrée représente l'écran. Donc une case représente 64/6 (ou 128/12) = 10.6667 pixels.
Mauvaise idée
De manière générale, je te conseille de prendre dans l'autre sens, c'est-à-dire de choisir le nombre de pixels de chaque case. Dans mon jeu, j'en ai mis 8, ce qui donne un écran de 16*8.
Citer : Posté le 02/05/2014 16:04 | #
Mais a part la création de la matrice, quand est ce que tu l'utilise ? C'est flou
Citer : Posté le 02/05/2014 16:21 | #
Il faut l'utiliser lorsque le personnage se déplace. Avant de "valider" son mouvement, il faut vérifier que l'endroit où il souhaite se déplacer soit vide, donc que la case de la matrice correspondante soit égale à 0.
Citer : Posté le 02/05/2014 16:42 | #
Supposons pourl l'instant que ton personnage a toujours des coordonnées entières (il n'est jamais à cheval sur deux cases), sinon on ne va jamais s'en sortir. Ses coordonnées dans la matrice sont [Y,X] représentées comme suit.
[b]+------------------------- X[/b]
[b]| [/b]
[b]| [/b] 2 2 2 2
[b]| [/b] X 3
[b]| [/b] 1 1 1 1 3
[b]| [/b] 3
[b]Y [/b]1 1 1 1 1 1 1 1 1 1
Disons que ton personnage, c'est le X. Ici, ses coordonées sont [4,3].
Si tu veux aller à droite, tu vas augmenter sa coordonée en X de 1, donc tu obtiendras [Y,X+1], soit [4,4].
Donc
27 correspond à la direction droite. L'expression "Mat A[Y,X+1]", puisqu'elle ne contient pas d'opérateur comparatif, singnifie simplement "Si Mat A[Y,X+1] existe".
On dit qu'une valeu existe si elle est non nulle. Ici, c'est le cas de toutes les cases vides.
Citer : Posté le 02/05/2014 16:53 | #
Ah merci positon je comprends mieux ! Par contre je n'ai pas comprit ceci : "Disons que la matrice que je t'ai montrée représente l'écran. Donc une case représente 64/6 (ou 128/12) = 10.6667 pixels.
Mauvaise idée 
De manière générale, je te conseille de prendre dans l'autre sens, c'est-à-dire de choisir le nombre de pixels de chaque case. Dans mon jeu, j'en ai mis 8, ce qui donne un écran de 16*8."
Cela veut il dire que quand je déplacerai mon perso, il bougera case par case (et non pixel par pixel comme a présent) ? Mais si je dois "valider" comme tu dis a chaque case, ca ne risque pas d'être long et de ralentir ?
Citer : Posté le 02/05/2014 16:58 | #
En fait, j'ai fait pour aller vite une grille de 6*12. Or si elle remplit tout ton écran, ça fait 10.6667 pixels par case de la grille... ce qui est impossible.
Prenons plutôt du 8*8.
+---+---+---+---+---+---+---+---+
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ... jusqu'à 16
+---+---+---+---+---+---+---+---+
... 8 fois
Est-ce que tu vois ce que je veux dire ? La case 1 occupe les pixels 1 à 8, la case 2 les pixels 9 à 16, la 3 les 17 à 24, etc...
Citer : Posté le 02/05/2014 17:32 | #
"La case 1 occupe les pixels 1 à 8"
Une "case" ce n'est pas qu'une ligne de pixel ? Il y a une hauteur non ?