6 years ago
Bonjour tout le monde :)
je suis tout nouveau dans la famille gamebuino (franchement,elle est super bien la console ) et je suis en train de développer un petit jeu d'arcade inspiré d'un petit jeu slovaque (tu sais le tout petit petit pays dans l'europe de l'est) intitulé padajuce vajicka (les oeuf qui tombent) . la creation va mettre beaucoup de temps car je suis encore en train d'apprendre.
voici l'IDE globale du jeu(jeu de mot avec l'IDE arduino/idée ,t'as compris).:
-des gouttes d'eau tombent de partout (comme dans la vraie vie)
-avec notre seau il va falloir récupérer un max de gouttes d'eau pendant un laps de temps donné ( ca sera 60milles millisecondes, si tu sais pas combien font 60 mile millisecondes va sur Google).
-de temps à autres des bonus de temps apparaitrons comme par magie (wouah!).
-le D-pad permettera de déplacer le seau (et non le sceau) de gauche à droite.
-les boutons A et B ne serviront strictement à rien :( . update : le bouton A permettera de sauter pour éviter les ennemies.
-Le bouton menu affichera le aÏe score ou le highscore.
-update : des ennemies défileront horizontalement et si on en touche un ca nous enleve des vies ou des gouttes d'eau(je sais pas encore).
voilà un peu le début du jeu...mais c'est juste un brouillon.
à bientot ! :) :) :)
le jeudi 19 avril.
update
j'ai dessiné le décore (avec tout plein de "gb.display.fillRect") et j'ai creé le seau.
je n'ai pas encore fais les collisions avec les seau mais j'ai un petit problème de math (nan! j'déconne) j'ai un problème : dans mon jeu la pluie va tomber assez vite et va faloir bouger le seau non-stop assez vite mais je n'arrive pas faire avancer le sceau sassez vite. pouvez vous m'aider.
update 20/04
j'ai résolu le problème de la raquette qui allait lentement. maintenant il faut que je fasse les collisions et la pluie.
Mini update du 29 avril
Coucou, je suis revenue de Belgique en France donc j'ai pas pu développer. Mais je travaille sur les decores et la pluie (je dois régler quelque petit problème de goutte encore). Mon jeu aura un scénario : on ira dans quatre monde avec notre petit seau (et non sot), l'eau, la terre, l'air et le feu, les quatres ''elements''. Quand on aura fini un monde on gagnera un cristal, une fois que l'on aura les quatres cristaux un truc de la mort qui tue se passeras ,je sais pas encore quoi. Voici un petit avant goût:
En attendant au-revoir et bonne rentrée, et oui demain j'ai école.
NEW 6 years ago
Bon courage. Il faudrait que je m'y remette moi aussi ;) Tu es la la Gamebuino classique, c'est ça ? ou sur la Meta ? Sinon il y avait un jeu un peu dans le style en Game & watch: Oil Panic mais c'est un peu plus complexe, il faut aussi vider les sceaux ...
NEW 6 years ago
Pour ton problème de sceau:
Si le sceau ne se déplace pas assez vite et que tu veux garder cette vitesse pour la pluie, je ne vois qu'une solution, deplace de sceau plus vite héhé.
Par exemple: Sur ton axe X a lieu de le faire se déplacer de +1 / -1 fait le de +2/-2
Je suppose que tu y avais déjà pensé si jamais ca crée un problème de précision, tu peux rajouter un touche pour le faire sprinté (ca tombe bien j'ai crus comprendre que toute les touches ne servent pas ;) )
Ou à l'inverse fait le aller vite de base et la touche permet de faire un mouvement précis, comme tu le sent.
NEW 6 years ago
j'ai encore un problème, dans mon jeu de la pluie doit apparaitre aléatoirement sur l'axe X (horizontale) depuis le haut donc j'ai mis : pluie = random (80,1); . mais je sais pas comment faire pour afficher les gouttes de pluie, j'ai mis : gb.display.fillRect(random,1,4,4); mais ca ne marche pas :( . aidez moi.
clement
6 years ago
struct Goutte { int y; int x; }; Player soldat; #define NB_GOUTE_DE_PLUIE 10 Goutte Pluie[NB_GOUTE_DE_PLUIE];
J'irais un peux plus loin en ajoutant une structure Goute et un tableau de goute
Ce que tu veux faire avec tes gouttes c est exatement ce que je fait avec mes ennemies dans le jeux/tuto 1942 :
https://github.com/Clement83/1942Shooter/blob/3_ia_enn/ennemies.ino#L16
mis a part que je tire aleatoirement le y et que je modifie le x pour le deplacement et que toi tu veux l inverse.
I hope this help :)
NEW 6 years ago
Tu es obligé de passer par un tableau de position de gouttes.
Quand tu veux une nouvelle goutte, tu fais un tirage aléatoire de sa position et tu la ranges dans le tableau en X,1 afin de pouvoir après faire tomber ta goutte en gardant le X de cette goutte et en augmentant le Y de la vitesse de la chute (une variable aussi pour pouvoir la faire varier avec le niveau par exemple)
NEW 6 years ago
struct Goutte { int y; int x; }; Player soldat; #define NB_GOUTE_DE_PLUIE 10 Goutte Pluie[NB_GOUTE_DE_PLUIE];
J'irais un peux plus loin en ajoutant une structure Goute et un tableau de goute
Ce que tu veux faire avec tes gouttes c est exatement ce que je fait avec mes ennemies dans le jeux/tuto 1942 :
https://github.com/Clement83/1942Shooter/blob/3_ia_enn/ennemies.ino#L16
mis a part que je tire aleatoirement le y et que je modifie le x pour le deplacement et que toi tu veux l inverse.
I hope this help :)
NEW 6 years ago
alors, c'est quoi la "phrase de code" qui va afficher ma goutte d'eau?
clement
6 years ago
si tu regarde a ce niveau tu voie la boucle qui affiche tous mes ennemies sour forme de rectangle
https://github.com/Clement83/1942Shooter/blob/3_ia_enn/ennemies.ino#L39
NEW 6 years ago
si tu regarde a ce niveau tu voie la boucle qui affiche tous mes ennemies sour forme de rectangle
https://github.com/Clement83/1942Shooter/blob/3_ia_enn/ennemies.ino#L39
NEW 6 years ago
j'arrive pas a comprendre
clement
6 years ago
Tu as besoin de faire tomber la pluie (mon code ne compilera surment pas car je suis au TAF et j ai pas lIDE arduino sous la main)
la pluie est divisible en goute. chaque goute a une position sur ton ecran en X et en Y on vas donc definir une structure qui vas decrire une goute d'eau
struct Goutte { int y; int x; };
Apres il faut savoir combien de goute tu veux pour faire l pluie.
pour ma part je dit qu il en faut 10.
#define NB_GOUTE_DE_PLUIE 10
Puis je regroupe mes goutes dans un tableau pour pouvoir travailler dessus facilement. on arrive a ca
struct Goutte { int y; int x; }; #define NB_GOUTE_DE_PLUIE 10 Goutte pluie[NB_GOUTE_DE_PLUIE]; void init() { } void loop() { }
A partir de la il faut que tu initalise tes goute en haut de l ecran .
donc pour chaque goutte tu vas faire un random sur X et un Y=0 (le point x=0, y=0 est en haut a gauche de l'ecran et non pas en bas a gauche comme sur un repere mathématique "abituel")
void init() { for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { pluie[i].x = random(0,88); //entre le bord gauche et le bord droite de l ecran pluie[i].y = 0; //tout en haut de l ecran } }
Apres il faut les faire descendre a chaque frame pour cela on vas augmenter en Y la position de nos goutes
void loop() { while(gb.update()); //on attente la prochaine frame 25 par seconde for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { pluie[i].y = pluie[i].y + 1; // 25 fois par seconde je descent de 1 px ma goute } }
Il ne manque plus qu a afficher tout ca au position x et y choisi.
A ce niveau on voie une jolie pluie descendre jusqu a passe hors de l'ecran. elle reviendra dans longtemps lorsque elle aura fait le tour du compteur du int ....
void loop() { while(gb.update()); //on attente la prochaine frame 25 par seconde for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { pluie[i].y = pluie[i].y + 1; // 25 fois par seconde je descent de 1 px ma goute } for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { gb.display.fillrect(pluie[i].x, pluie[i].y, 1, 4); //si je dit pas de connerie ma goute est a la position x, y, elle st large de 1 pixel et longue de 4 } }
Je te conseille de regarder les tuto de Rodo sur le if pour reperer une goute qui sort de l'ecran et la refaire apparaitre plus haut.
tu peux aussi faire le y aleatoire (0, -15) pour que ta pluie ne tombe pas en ligne.
Si tu n arrive toujours pas a comprendre c est que tu te lance dans un projet trop embitieux, je te conseille de partir sur les tuto de rodo de base (hello world, la balle rebondissante et autres) qui parte vraiment des bases.
NEW 6 years ago
Tu as besoin de faire tomber la pluie (mon code ne compilera surment pas car je suis au TAF et j ai pas lIDE arduino sous la main)
la pluie est divisible en goute. chaque goute a une position sur ton ecran en X et en Y on vas donc definir une structure qui vas decrire une goute d'eau
struct Goutte { int y; int x; };
Apres il faut savoir combien de goute tu veux pour faire l pluie.
pour ma part je dit qu il en faut 10.
#define NB_GOUTE_DE_PLUIE 10
Puis je regroupe mes goutes dans un tableau pour pouvoir travailler dessus facilement. on arrive a ca
struct Goutte { int y; int x; }; #define NB_GOUTE_DE_PLUIE 10 Goutte pluie[NB_GOUTE_DE_PLUIE]; void init() { } void loop() { }
A partir de la il faut que tu initalise tes goute en haut de l ecran .
donc pour chaque goutte tu vas faire un random sur X et un Y=0 (le point x=0, y=0 est en haut a gauche de l'ecran et non pas en bas a gauche comme sur un repere mathématique "abituel")
void init() { for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { pluie[i].x = random(0,88); //entre le bord gauche et le bord droite de l ecran pluie[i].y = 0; //tout en haut de l ecran } }
Apres il faut les faire descendre a chaque frame pour cela on vas augmenter en Y la position de nos goutes
void loop() { while(gb.update()); //on attente la prochaine frame 25 par seconde for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { pluie[i].y = pluie[i].y + 1; // 25 fois par seconde je descent de 1 px ma goute } }
Il ne manque plus qu a afficher tout ca au position x et y choisi.
A ce niveau on voie une jolie pluie descendre jusqu a passe hors de l'ecran. elle reviendra dans longtemps lorsque elle aura fait le tour du compteur du int ....
void loop() { while(gb.update()); //on attente la prochaine frame 25 par seconde for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { pluie[i].y = pluie[i].y + 1; // 25 fois par seconde je descent de 1 px ma goute } for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) { gb.display.fillrect(pluie[i].x, pluie[i].y, 1, 4); //si je dit pas de connerie ma goute est a la position x, y, elle st large de 1 pixel et longue de 4 } }
Je te conseille de regarder les tuto de Rodo sur le if pour reperer une goute qui sort de l'ecran et la refaire apparaitre plus haut.
tu peux aussi faire le y aleatoire (0, -15) pour que ta pluie ne tombe pas en ligne.
Si tu n arrive toujours pas a comprendre c est que tu te lance dans un projet trop embitieux, je te conseille de partir sur les tuto de rodo de base (hello world, la balle rebondissante et autres) qui parte vraiment des bases.
Adamko
6 years ago
merci beaucouop, j'ai bien compris. j'en suis au tuto pong de aurelien donc le reste je connais.
Adamko
6 years ago
quand, je compile ton code que tu m'as dit ca me fait ;
C:\Users\lomthale\AppData\Local\Temp\arduino_build_711898/..\arduino_cache_959184\core\core_gamebuino_samd_gamebuino_meta_native_34963236aefe899b2cae6543e8765bb8.a(wiring.c.o): In function `init':
C:\Users\lomthale\AppData\Local\Arduino15\packages\gamebuino\hardware\samd\1.2.0\cores\arduino/wiring.c:61: multiple definition of `init'
C:\Users\lomthale\AppData\Local\Temp\arduino_build_711898\sketch\pluie_test.ino.cpp.o:C:\Users\lomthale\Documents\Arduino\pluie_test/pluie_test.ino:16: first defined here
collect2.exe: error: ld returned 1 exit status
Utilisation de la bibliothèque Gamebuino_META version 1.0.6 dans le dossier: C:\Users\lomthale\Documents\Arduino\libraries\Gamebuino_META
Utilisation de la bibliothèque SPI version 1.0 dans le dossier: C:\Users\lomthale\AppData\Local\Arduino15\packages\gamebuino\hardware\samd\1.2.0\libraries\SPI
exit status 1
Erreur de compilation pour la carte Gamebuino Meta
j'ai tapé ca ;
#include <Gamebuino-Meta.h>
void setup() {
gb.begin();
}
struct Goutte {
int y;
int x;
};
#define NB_GOUTE_DE_PLUIE 10
Goutte pluie[NB_GOUTE_DE_PLUIE];
void init()
{
for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) {
pluie[i].x = random(0,88); //entre le bord gauche et le bord droite de l ecran
pluie[i].y = 0; //tout en haut de l ecran
}
}
void loop() {
while(gb.update()); //on attente la prochaine frame 25 par seconde
for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) {
pluie[i].y = pluie[i].y + 1; // 25 fois par seconde je descent de 1 px ma goute
}
for(int i=0;i<NB_GOUTE_DE_PLUIE;i++) {
gb.display.fillRect(pluie[i].x, pluie[i].y, 1, 4); //si je dit pas de connerie ma goute est a la position x, y, elle st large de 1 pixel et longue de 4
}
}
pourquoi ca fonctionne pas?