Sun Jan 11, 2015 4:01 am
#include <SPI.h>
#include <Gamebuino.h>
Gamebuino gb;
int ShipXDisp = 15;
int ShipYDisp = 15;
int ShipXLoc = 0;
int ShipYLoc = 0;
int ShipFace = 0;
static byte PROGMEM Ship[] =
{
7,7, //width and height
B00010001,
B00111001,
B00111001,
B00111001,
B01111101,
B11111111,
B00111001,
};
void setup(){
gb.begin();
gb.titleScreen(F("Game"));
}
void loop(){
if(gb.collideRectRect(ShipXDisp, ShipXDisp, 7, 7, 0, 0, 8, 48)){
//ShipYDisp = ShipYDisp + 1;
ShipXDisp = ShipXDisp + 1;
}
if(gb.collideRectRect(1, 1, 83, 7, ShipXDisp, ShipXDisp, 7, 7)){
ShipYDisp = ShipYDisp + 1;
gb.popup(F("Colide"),40);
// ShipXDisp = ShipXDisp + 1;
}
if(gb.update()){
gb.display.drawRect(0, 0, 8, 48);
gb.display.drawRect(0, 0, 84, 8);
if(gb.buttons.timeHeld(BTN_UP)){
ShipYDisp = ShipYDisp - 1;
ShipYLoc = ShipYLoc - 1;
ShipFace = 0;
}
if(gb.buttons.timeHeld(BTN_DOWN)){
ShipYDisp = ShipYDisp + 1;
ShipYLoc = ShipYLoc + 1;
ShipFace = 2;
}
if(gb.buttons.timeHeld(BTN_LEFT)){
ShipXDisp = ShipXDisp - 1;
ShipXLoc = ShipXLoc - 1;
ShipFace = 1;
}
if(gb.buttons.timeHeld(BTN_RIGHT)){
ShipXDisp = ShipXDisp + 1;
ShipXLoc = ShipXLoc + 1;
ShipFace = 3;
}
gb.display.fillCircle(15 - ShipXLoc, 20 - ShipYLoc, 5);
gb.display.drawBitmap(ShipXDisp,ShipYDisp,Ship,ShipFace,0);
gb.display.print(ShipXLoc);
gb.display.print("_");
gb.display.print(ShipYLoc);
gb.display.print(" ");
gb.display.print(ShipXDisp);
gb.display.print("_");
gb.display.print(ShipYDisp);
}
}
Sun Jan 11, 2015 8:39 am
#include <SPI.h>
#include <Gamebuino.h>
Gamebuino gb;
int ShipXDisp = 15;
int ShipYDisp = 15;
int ShipXLoc = 0;
int ShipYLoc = 0;
int ShipFace = 0;
static byte PROGMEM Ship[] =
{
7,7, //width and height
B00010001,
B00111001,
B00111001,
B00111001,
B01111101,
B11111111,
B00111001,
};
void setup(){
gb.begin();
gb.titleScreen(F("Game"));
}
void loop(){
if(gb.update()){
if(gb.collideRectRect(ShipXDisp, ShipYDisp, 7, 7, 0, 0, 8, 48)){
//ShipYDisp = ShipYDisp + 1;
ShipXDisp = ShipXDisp + 1;
}
if(gb.collideRectRect(1, 1, 83, 7, ShipXDisp, ShipYDisp, 7, 7)){
ShipYDisp = ShipYDisp + 1;
// ShipXDisp = ShipXDisp + 1;
}
gb.display.drawRect(0, 0, 8, 48);
gb.display.drawRect(0, 0, 84, 8);
if(gb.buttons.timeHeld(BTN_UP)){
ShipYDisp = ShipYDisp - 1;
ShipYLoc = ShipYLoc - 1;
ShipFace = 0;
}
if(gb.buttons.timeHeld(BTN_DOWN)){
ShipYDisp = ShipYDisp + 1;
ShipYLoc = ShipYLoc + 1;
ShipFace = 2;
}
if(gb.buttons.timeHeld(BTN_LEFT)){
ShipXDisp = ShipXDisp - 1;
ShipXLoc = ShipXLoc - 1;
ShipFace = 1;
}
if(gb.buttons.timeHeld(BTN_RIGHT)){
ShipXDisp = ShipXDisp + 1;
ShipXLoc = ShipXLoc + 1;
ShipFace = 3;
}
gb.display.fillCircle(15 - ShipXLoc, 20 - ShipYLoc, 5);
gb.display.drawBitmap(ShipXDisp,ShipYDisp,Ship,ShipFace,0);
gb.display.print(ShipXLoc);
gb.display.print("_");
gb.display.print(ShipYLoc);
gb.display.print(" ");
gb.display.print(ShipXDisp);
gb.display.print("_");
gb.display.print(ShipYDisp);
}
}
Sun Jan 11, 2015 9:41 pm
Jamish wrote:Looks like the problem is that you were calling "ShipXDisp, ShipXDisp" instead of "ShipXDisp, ShipYDisp" in both of your collide calls.
Also, your gb.collideRectRect checks should go inside gb.update(), otherwise that code is getting called a LOT more than once per frame
Mon Jan 12, 2015 5:39 pm
minecraftlog21 wrote:Thanks for the fixed code shows how carful you need to be