#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 xKonum;
int yKonum;
uint8_t yukseklik;
uint8_t genislik;
char *grafik;
Grafik(int xa, int ya, uint8_t yuk, uint8_t gen, char *graf){
xKonum = xa;
yKonum = ya;
yukseklik = yuk;
genislik = gen;
grafik = graf;
}
void grafikCiz(int x, int y){
xKonum = x;
yKonum = y;
display.drawXBMP( xKonum, yKonum, yukseklik, genislik, grafik);
}
void grafikCiz(){
display.drawXBMP( xKonum, yKonum, yukseklik, genislik, grafik);
}
void grafikDegistir(char *graf, uint8_t yuk, uint8_t gen){
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;
int zaman;
void setup() {
araba3 = new Grafik(40,40,30,20,araba);
display.begin();
}
void loop() {
zaman++;
display.clearBuffer();
display.setFont(u8g2_font_ncenB14_tr);
display.setCursor(50, 10);
display.print(zaman);
arabam.grafikCiz();
kaktusum.grafikCiz();
arabam2.grafikCiz(30,30);
araba3->grafikCiz();
araba3->yKonum --;
if(zaman >10 && zaman < 20){
arabam.grafikDegistir(oneCactus,10,20);
}
if(zaman > 20){
arabam.grafikDegistir(araba,30,20);
zaman = 0;
}
display.sendBuffer();
}