attrap' goutte

Créations

Adamko

il y a 6 ans

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.


Voir la création

jicehel

NEW il y a 6 ans

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 ...

Adamko

il y a 6 ans

c'est la meta

Frakasss

NEW il y a 6 ans

Et pourquoi pas - en guise d'ennemis - un oiseau qui passe de temps en temps et qui lâche son 'petit cadeau' 


;-)

Adamko

il y a 6 ans

mouais, pourquoi pas.

Adamko

NEW il y a 6 ans

jicehel jicehel

c'est la meta

Adamko

NEW il y a 6 ans

Frakasss Frakasss

mouais, pourquoi pas.

Nux

NEW il y a 6 ans

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.

Adamko

il y a 6 ans

Merci, je vais continuer le développement.


Adamko

NEW il y a 6 ans

Nux Nux

Merci, je vais continuer le développement.


Adamko

NEW il y a 6 ans

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

il y a 6 ans

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 :) 

jicehel

NEW il y a 6 ans

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)

Adamko

il y a 6 ans

merci, mais le tableau je le fais comment?

clement

NEW il y a 6 ans

Adamko Adamko

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 :) 

Adamko

il y a 6 ans

alors, c'est quoi la "phrase de code" qui va afficher ma goutte d'eau?

Adamko

NEW il y a 6 ans

jicehel jicehel

merci, mais le tableau je le fais comment?

Adamko

NEW il y a 6 ans

clement clement

alors, c'est quoi la "phrase de code" qui va afficher ma goutte d'eau?

clement

il y a 6 ans

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

clement

NEW il y a 6 ans

Adamko Adamko

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

Adamko

il y a 6 ans

j'arrive pas a comprendre

Adamko

NEW il y a 6 ans

clement clement

j'arrive pas a comprendre

clement

il y a 6 ans

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.


clement

NEW il y a 6 ans

Adamko Adamko

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

il y a 6 ans

merci beaucouop, j'ai bien compris. j'en suis au tuto pong de aurelien donc le reste je connais.

Adamko

il y a 6 ans

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?

Adamko

NEW il y a 6 ans

clement clement

merci beaucouop, j'ai bien compris. j'en suis au tuto pong de aurelien donc le reste je connais.

clement

il y a 6 ans

j avais pas vu toutes tes updates . effectivement il maque la pluie , ce qui devrais etre reglé prochainement ;)