#include <U8g2lib.h>
#include <TimerOne.h>
#include <avr/pgmspace.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C display(U8G2_R0);
unsigned long simdikiZaman;
unsigned long oncekiZaman;
static const unsigned char araba [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00,
0x80, 0x9B, 0x03, 0x00, 0xE0, 0x18, 0x0E, 0x00, 0x30, 0x18, 0x18, 0x00,
0x10, 0x18, 0x10, 0x00, 0x08, 0x18, 0x20, 0x00, 0x08, 0x18, 0x20, 0x00,
0x08, 0x18, 0x20, 0x00, 0xFE, 0xFF, 0xFF, 0x03, 0x02, 0x10, 0x00, 0x0C,
0x02, 0xD0, 0x00, 0x18, 0x02, 0x10, 0x00, 0x18, 0x07, 0x10, 0x00, 0x08,
0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0x1A, 0x58, 0x03, 0xC0, 0x18, 0x18, 0x03,
0x80, 0x0F, 0xF0, 0x01, 0x00, 0x07, 0xE0, 0x00 };
static const unsigned char oneCactus [] PROGMEM = {
0x30, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x01, 0xFB, 0x03,
0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x03, 0xFF, 0x01,
0xFE, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00,
0x78, 0x00, 0x00, 0x00,
};
class Grafik{
public:
int x;
int y;
uint8_t yukseklik;
uint8_t genislik;
char *grafik;
Grafik(int xa, int ya, uint8_t gen, uint8_t yuk, char *graf){
x = xa;
y = ya;
yukseklik = yuk;
genislik = gen;
grafik = graf;
}
void grafikCiz(int xb, int yb){
x = xb;
y = yb;
display.drawXBMP( x, y, genislik, yukseklik, grafik);
}
void grafikCiz(){
display.drawXBMP( x, y, genislik, yukseklik, grafik);
}
void grafikDegistir(char *graf, uint8_t gen, uint8_t yuk){
grafik = graf;
yukseklik = yuk;
genislik = gen;
}
};
Grafik arabam(5,5,30,20,araba);
Grafik kaktusum(20,20,10,20, oneCactus);
Grafik arabam2(30,30,30,20,araba);
Grafik* araba3;
Grafik* araba4;
int zaman;
void setup() {
araba3 = new Grafik(40,40,30,20,araba);
araba4 = new Grafik(60,0,30,20,araba);
display.begin();
Serial.begin(9600);
}
void loop() {
zaman++;
display.clearBuffer();
araba3->grafikCiz();
araba4->grafikCiz();
Serial.println(carpismaVarmi(araba3,araba4));
araba3->y --;
display.sendBuffer();
}
bool carpismaVarmi(Grafik *birinciObje, Grafik *ikinciObje){
bool result;
if(birinciObje->x + birinciObje->genislik >= ikinciObje->x &&
birinciObje->x <= ikinciObje->x + ikinciObje->genislik &&
birinciObje->y + birinciObje->yukseklik >= ikinciObje->y &&
birinciObje->y <= ikinciObje->y + ikinciObje->yukseklik
){
result = true;
return result;
}else{
result =false;
return result;
}
}