#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
int address = 60; //0x3C; //means 12 (C) plus 3 16s or 48
//12 + 48 is 60.
int r_button = 2;
int l_button = 3;
int screen_width = 128;
int screen_height = 64;
//declaring my new lcd and naming it "screen
Adafruit_SSD1306 screen(screen_width,screen_height,&Wire, -1);
//(pixels wide, pixels tall, wire library, -1 is for the uno board reset pin)
void setup() {
pinMode(r_button,INPUT);
pinMode(l_button,INPUT);
// put your setup code here, to run once:
screen.begin(SSD1306_SWITCHCAPVCC,address);
screen.clearDisplay();//clears everything off display
Serial.begin(9600);
}
int circX=10;
int score=0;
void loop() {
draw();
check();
slidePuck();
Serial.println(score);
screen.setCursor(1,50);
screen.setTextSize(1);
screen.setTextColor(1);
screen.print("score:");
screen.print(score);
screen.display();
}
void draw(){
screen.fillCircle(circX,32,10,1);
screen.drawRect(100,0,25,64,1);
screen.drawLine(64,0,64,64,1);
screen.display();
}
void check() {
if(circX>=90 && circX<=135){
score = score + 2;
circX=12;
screen.clearDisplay();
delay(700);
}
if(circX<64 || circX>135){
circX=12;
screen.clearDisplay();
delay(700);
}
if(circX>101 && circX<124){
score = score + 3;
circX=12;
screen.clearDisplay();
delay(700);
}
if(circX>=64 && circX<90){
score++;
circX=12;
screen.clearDisplay();
delay(700);
}
}
void slidePuck() {
while(digitalRead(3) == 1) {
circX++;
delay(10);
screen.clearDisplay();
if(circX>150){
circX=12;
}
}
}