Page 2 of 3

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 3:17 am
by TheSpikeFactory
I seem to be having a different problem, but it still prevents me from verifying the code

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 3:19 am
by TheSpikeFactory
Well, it sadly does not work for me.

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 3:23 am
by TheSpikeFactory
#include <SPI.h> //imports the SPI library
#include <Gamebuino.h> //imports the Gamebuino library
Gamebuino gb; //creates a Gamebuino object named gb

static unsigned char PROGMEM sprite[] =
{
12,6,
B000111100000,
B010101001000,
B010000001000,
B001111110000,
B000100000000,
B000001000000,
};

void setup(){
gb.begin());
//display the main menu
gb.titleScreen(F("Dart Monkey Sprite"));
}
gb.sound.playTick();
//the main loop
void loop(){
while(true) {
if(gb.update()){
gb.display.drawBitmap(12,6,sprite);
}
}
}
Using this exact code, this is the error: sketch_feb13b.ino:5:37: error: variable 'sprite' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
sketch_feb13b.ino:8:3: error: 'B000111100000' was not declared in this scope
sketch_feb13b.ino:9:3: error: 'B010101001000' was not declared in this scope
sketch_feb13b.ino:10:3: error: 'B010000001000' was not declared in this scope
sketch_feb13b.ino:11:3: error: 'B001111110000' was not declared in this scope
sketch_feb13b.ino:12:3: error: 'B000100000000' was not declared in this scope
sketch_feb13b.ino:13:3: error: 'B000001000000' was not declared in this scope
sketch_feb13b.ino: In function 'void setup()':
sketch_feb13b.ino:17:13: error: expected ';' before ')' token
sketch_feb13b.ino: At global scope:
sketch_feb13b.ino:21:1: error: 'gb' does not name a type
Error compiling.

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 3:29 am
by Skyrunner65
Be sure to quote what I have said, and learn how to post code on the forums the right way.
Ah, the problem might be that the X value needs to be a multiple of 8(or 4?).
Try this:
Code: Select all
#include <SPI.h> //imports the SPI library
#include <Gamebuino.h> //imports the Gamebuino library
Gamebuino gb; //creates a Gamebuino object named gb

static unsigned char PROGMEM sprite[] =
{
  16,6,
  B00011110,B00000000,
  B01010100,B10000000,
  B01000000,B10000000,
  B00111111,B00000000,
  B00010000,B00000000,
  B00000100,B00000000,
};

void setup(){
  gb.begin());
  //display the main menu
  gb.titleScreen(F("Dart Monkey Sprite"));
  gb.sound.playTick();
}
//the main loop
void loop(){
  while(true) {
    if(gb.update()){
    gb.display.drawBitmap(16,6,sprite);
    }
  }
}
//This is the program.

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 1:01 pm
by rodot
Skyrunner, I'm sorry if it sounds a little harsh, please stop saying people what to do like you're a moderator of some kind. You're free to advise them when it's relevant though. By the way there is no rule that people have to use quotes (especially when not relevant).
Also, when you post code to help, please make sure it works first, because your code doesn't even compile.

TheSpikeFactory, your code doesn't compile for several reasons:

1 - Bytes can only be 8 bits long, for example B00001111. By the way this is just a way of writing it in its binary form, you can also write it in hexadecimal : 0x0F, which is more compact (in your source code, it doesn't make any difference once compiled). Plus, the bitmaps width has to be a multiple of 8. Also, the PROGMEM keyword should be the last one, you should use the keyword const, and you don't need the keyword static. You should not "type" your sprites by hand directly into the code, it's quicker to encode them using the bitmap encoder and will avoid you to make these mistakes.

2 - You can an extra closing bracket at the line
Code: Select all
gb.begin());


3 - You call gb.sound.playTick(); out of setup() and loop(). Functions can't be called anywhere like that.

Here is you code with the mentioned corrections :

Code: Select all
#include <SPI.h> //imports the SPI library
#include <Gamebuino.h> //imports the Gamebuino library
Gamebuino gb; //creates a Gamebuino object named gb

const byte sprite[] PROGMEM =
{
  8,6,
  B0011110,
  B10101001,
  B10000001,
  B01111110,
  B00100000,
  B00001000,
};

void setup(){
  gb.begin();
  //display the main menu
  gb.titleScreen(F("Dart Monkey Sprite"));
  gb.sound.playTick();
}

//the main loop
void loop(){
  while(true) {
    if(gb.update()){
      gb.display.drawBitmap(12,6,sprite);
    }
  }
}


As Skyrunner said, you can use the "code" tags on the forum for better formatting. You'll find the button right above the text area where you type your post, or you can manually write the tags
Code: Select all
[code]Your code here[/code]


I think you should read the examples provided with the library to understand syntaxing. There is several topics on the topic with links to learn the basics of C++ you might be interested in reading.

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 1:16 pm
by Montiey
you forgot a 0 in the sprite map on the first line! :P
Fix is below:
Here is you code with the mentioned corrections :
const byte sprite[] PROGMEM =
{
8,6,
B00111100,
B10101001,
B10000001,
B01111110,
B00100000,
B00001000,
};

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 1:21 pm
by Montiey
Hmm.. I get a black screen when I run this. Same happens for my other game I tried to make. Any clues to common problems? Other games run fine, but anything that comes out of the arduino IDE doesn't work for me.

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 1:55 pm
by TheSpikeFactory
The code works now. Thanks R0D0T! ;) However, is there a way I can convert a .ino file into a .hex file?

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 4:26 pm
by rodot
.ino is the source code of you game, you have to compile it to get the binaries in .hex format. It's explained on the Getting Started page.
You should start from working examples which are close to what you are trying to do, and change things one by on and see if that works. This way, you always know where the problem comes from ;)

Re: Gamebuino Library Issues

PostPosted: Sat Feb 14, 2015 4:28 pm
by Skyrunner65
Sorry Rodot. I was just trying to tell him how to use the "Code" tags correctly.
Ah, and I had a whole post about how to do so.
Me and forgetting things...