[FR] Comment mettre un objet Bmp une fois codé ?

Understanding the language, error messages, etc.

[FR] Comment mettre un objet Bmp une fois codé ?

Postby LuDoPhotography » Wed Dec 10, 2014 6:09 pm

Bonsoir a tous le monde !
j'aimerai savoir comment on fait pour faire apparaitre un objet une fois coder est pourquoi pas le faire animé en le bougeant avec les touches :)
je fait des tests voyons ce que celà peut donner pour éventuellement créer un jeux :)

Ha oui aussi ! quel dimmension d'image conseiller vous ?
LuDoPhotography
 
Posts: 51
Joined: Tue Nov 11, 2014 8:33 am

Re: [FR] Comment mettre un objet Bmp une fois coder ?

Postby clement » Thu Dec 11, 2014 5:36 pm

Pour afficher une bitmap sur ta gamebuino :

Code: Select all
const byte prince[] PROGMEM = {16,16,0x0,0x0,0x7,0x1,0x8,0x82,0x8,0x84,0x7,0x48,0x2,0x30,0x27,0x30,0x17,0x48,0xF,0x80,0x7,0x0,0x7,0x0,0x7,0x0,0x5,0x0,0x5,0x0,0x5,0x0,0xD,0x80,};

void loop(){
    if(gb.update())
    {
        gb.display.drawBitmap(0,28,prince);

}
}



Pour bouger il faut alterner deux image.

Pour les taille c'est a toi de voir sachant que l’écran de la gamebuino fait 84*48 px.

Comme je te le disait n'hesite pas a regarder le code de "sauve la princesse" :
https://github.com/Clement83/SavePrincesse
courrage :)

++
Last edited by clement on Thu Dec 11, 2014 6:15 pm, edited 1 time in total.
clement
 
Posts: 161
Joined: Sat Oct 25, 2014 8:06 am

Re: [FR] Comment mettre un objet Bmp une fois coder ?

Postby Cayon » Thu Dec 11, 2014 6:00 pm

L'écran fait 84*48 et non 84*44 mais je pense que tu le sais vue tes jeux Clément :)
User avatar
Cayon
 
Posts: 29
Joined: Mon Oct 27, 2014 4:28 pm
Location: France, Le Mans (72)

Re: [FR] Comment mettre un objet Bmp une fois coder ?

Postby clement » Thu Dec 11, 2014 6:15 pm

Merci pour la correction j'édite mon post
clement
 
Posts: 161
Joined: Sat Oct 25, 2014 8:06 am

Re: [FR] Comment mettre un objet Bmp une fois coder ?

Postby LuDoPhotography » Thu Dec 11, 2014 6:49 pm

Merci effaite j'aimerai essayer de tester de créer un jeux j'ai pas de nom de jeux mais c'est un avion qu'on bouge puis on tire sur les avions einemis qui arrive en face pour commencer basique
LuDoPhotography
 
Posts: 51
Joined: Tue Nov 11, 2014 8:33 am

Re: [FR] Comment mettre un objet Bmp une fois codé ?

Postby LuDoPhotography » Mon Dec 15, 2014 6:25 pm

sorry double post

voici ce que j'ai fait : je suis partie de base sur le "a_Hello"

Code: Select all
const byte file[] PROGMEM = {
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000111, B10111101, B11100000, B00000000, B00011111,
  B00000011, B11111111, B11111111, B11111111, B11000000, B00011111,
  B00000111, B11111111, B11111111, B11111111, B11100000, B00011111,
  B00000111, B11111111, B11111111, B11111111, B11100000, B00011111,

  B00000011, B11111111, B11111111, B11111111, B11000000, B00011111,
  B00000000, B11111111, B11111111, B11111111, B00000000, B00011111,
  B00000000, B00000000, B11111111, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B11111111, B00000000, B00000000, B00011111,
  B00000000, B00000000, B11111111, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

};



// the loop routine runs over and over again forever
void loop(){
  if(gb.update())
  {
      gb.display.drawBitmap(30,28,file);

  }
}


je n'ai aucun avion sur la gamebuino après le transfert. pourquoi ?
LuDoPhotography
 
Posts: 51
Joined: Tue Nov 11, 2014 8:33 am

Re: [FR] Comment mettre un objet Bmp une fois codé ?

Postby rodot » Mon Dec 15, 2014 7:51 pm

Tu devrais remplacer

Code: Select all
      gb.display.drawBitmap(30,28,file);


par

Code: Select all
      gb.display.drawBitmap(0,0,file);


Car x et y sont les coordonnée auxquelles afficher le bitmap, pas la dimension de celui ci ;)
User avatar
rodot
Site Admin
 
Posts: 1290
Joined: Mon Nov 19, 2012 11:54 pm
Location: France

Re: [FR] Comment mettre un objet Bmp une fois codé ?

Postby Cayon » Mon Dec 15, 2014 7:53 pm

Salut alors voici les quelques problème dans ton programme :
*Devant ton image bitmap tu doit mettre la largeur et la auteur avant de mettre le code binaire
*Il faut obligatoirement une fonction "setup" afin que la machine sache par où commencer puis elle passe au "loop" après
*gb.display.drawBitmap(0,0,file); Les deux premier paramètre sont les coordonnées X,Y d'où vas être positionné ton image(le pixel le plus en haut à droite de l'image au coordonné indiqué)
Voici le code corrigé:
Code: Select all
//imports the SPI library (needed to communicate with Gamebuino's screen)
#include <SPI.h>
//imports the Gamebuino library
#include <Gamebuino.h>
//creates a Gamebuino object named gb
Gamebuino gb;

const byte file[] PROGMEM = {48,84,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000111, B10111101, B11100000, B00000000, B00011111,
  B00000011, B11111111, B11111111, B11111111, B11000000, B00011111,
  B00000111, B11111111, B11111111, B11111111, B11100000, B00011111,
  B00000111, B11111111, B11111111, B11111111, B11100000, B00011111,

  B00000011, B11111111, B11111111, B11111111, B11000000, B00011111,
  B00000000, B11111111, B11111111, B11111111, B00000000, B00011111,
  B00000000, B00000000, B11111111, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00111100, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00011000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B11111111, B00000000, B00000000, B00011111,
  B00000000, B00000000, B11111111, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,
  B00000000, B00000000, B00000000, B00000000, B00000000, B00011111,

};



void setup(){
  // initialize the Gamebuino object
  gb.begin();
}

// the loop routine runs over and over again forever
void loop(){
  if(gb.update())
  {
      gb.display.drawBitmap(0,0,file);

  }
}


Si tu veut pouvoir bouger ton avion il faut que l'image ne représente que l'avion pour pouvoir la bouger sans tout faire bouger avec.
Enfin par la suite mettre les image en hexadécimal permet de prendre moins de place dans le code et le rendre plus agréable même si avec le binaire on peut directement voir à quoi ressemble l'image.A toi de voir ce que tu préfère.
Avion en binaire:
Code: Select all
const byte avion[] PROGMEM = {32,23,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000111,B10000000,B00000000,
B00000000,B00000111,B10000000,B00000000,
B00000000,B00000111,B10000000,B00000000,
B00000000,B00000111,B10000000,B00000000,
B00000000,B11110111,B10111100,B00000000,
B01111111,B11111111,B11111111,B11111000,
B11111111,B11111111,B11111111,B11111100,
B11111111,B11111111,B11111111,B11111100,
B01111111,B11111111,B11111111,B11111000,
B00011111,B11111111,B11111111,B11100000,
B00000000,B00011111,B11100000,B00000000,
B00000000,B00000111,B10000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00000011,B00000000,B00000000,
B00000000,B00011111,B11100000,B00000000,
B00000000,B00011111,B11100000,B00000000,
};

Avion en hexa:
Code: Select all
const byte avion[] PROGMEM = {32,23,
0x0,0x3,0x0,0x0,
0x0,0x7,0x80,0x0,
0x0,0x7,0x80,0x0,
0x0,0x7,0x80,0x0,
0x0,0x7,0x80,0x0,
0x0,0xF7,0xBC,0x0,
0x7F,0xFF,0xFF,0xF8,
0xFF,0xFF,0xFF,0xFC,
0xFF,0xFF,0xFF,0xFC,
0x7F,0xFF,0xFF,0xF8,
0x1F,0xFF,0xFF,0xE0,
0x0,0x1F,0xE0,0x0,
0x0,0x7,0x80,0x0,
0x0,0x3,0x0,0x0,
0x0,0x3,0x0,0x0,
0x0,0x3,0x0,0x0,
0x0,0x3,0x0,0x0,
0x0,0x3,0x0,0x0,
0x0,0x3,0x0,0x0,
0x0,0x3,0x0,0x0,
0x0,0x3,0x0,0x0,
0x0,0x1F,0xE0,0x0,
0x0,0x1F,0xE0,0x0,
};

Après il est aussi possible de mettre sur une seul et unique ligne :
Code: Select all
const byte avion[] PROGMEM = {32,23,0x0,0x3,0x0,0x0,0x0,0x7,0x80,0x0,0x0,0x7,0x80,0x0,0x0,0x7,0x80,0x0,0x0,0x7,0x80,0x0,0x0,0xF7,0xBC,0x0,0x7F,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xE0,0x0,0x1F,0xE0,0x0,0x0,0x7,0x80,0x0,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x1F,0xE0,0x0,0x0,0x1F,0xE0,0x0,};

Si tu veut faire bouger ton avion tu n'aura qu'à faire deux variable X et Y par exemple et les faire modifier avec les flèche puis afficher l'avion avec "gb.display.drawBitmap(X,Y,avion);"
Voila bonne continuation et n'hésite pas si tu à d'autre souci :)
User avatar
Cayon
 
Posts: 29
Joined: Mon Oct 27, 2014 4:28 pm
Location: France, Le Mans (72)

Re: [FR] Comment mettre un objet Bmp une fois codé ?

Postby LuDoPhotography » Mon Dec 15, 2014 8:46 pm

Super merci a tous :)

Cayon : Comment tu fait pour le faire que sur une seule ligne ?? :?: :?:
LuDoPhotography
 
Posts: 51
Joined: Tue Nov 11, 2014 8:33 am

Re: [FR] Comment mettre un objet Bmp une fois codé ?

Postby Cayon » Mon Dec 15, 2014 8:55 pm

Image
User avatar
Cayon
 
Posts: 29
Joined: Mon Oct 27, 2014 4:28 pm
Location: France, Le Mans (72)

Next

Return to Programming Questions

Who is online

Users browsing this forum: No registered users and 72 guests

cron