#include<TFT_eSPI.h>
#define led 2
int bx,by=5,x=65,y=57,mark,level=1;
const int r=5,sjs=23,pin=13;
TFT_eSPI tft=TFT_eSPI();
uint16_t color=tft.color565(128,0,128); //RGB颜色转GBR565,紫色
void setup()
{
// put your setup code here, to run once:
Serial.begin(921600);
pinMode(led,OUTPUT);
pinMode(pin,INPUT);
digitalWrite(led,LOW);
tft.init();
tft.fillScreen(TFT_WHITE);
tft.setRotation(3);
tft.setTextSize(2);
tft.setTextColor(TFT_BLACK);
randomSeed(analogRead(sjs)); //使用一个引脚来作为随机数种子
bx=random(5,155);
}
void loop()
{
// put your main code here, to run repeatedly:
if(bx>=x&&bx<=x+15&&by+5>=y&&by+5<=y+3)
{
mark++;
if(mark%5==0)
{
level++;
}
tft.fillScreen(TFT_WHITE);
tft.setCursor(0,0);
tft.println("you win!");
tft.print("your mark:");
tft.println(mark);
tft.print("your level:");
tft.print(level);
delay(1000);
tft.fillScreen(TFT_WHITE);
randomSeed(analogRead(sjs));
bx=random(5,155);
by=5;
x=65;
y=57;
}
if(bx<=155&&bx>=5&&by>=5&&by<=75)
{
tft.fillRect(x,y,15,3,TFT_BLACK);
tft.fillCircle(bx,by,r,color);
tft.drawPixel(bx,by,TFT_WHITE);
delay(100);
tft.fillCircle(bx,by,r,TFT_WHITE);
tft.fillRect(x,y,15,3,TFT_WHITE);
x=double(analogRead(13))/4095.00*145;
Serial.println(bx>=x&&bx<=x+15&&by+5<=y&&by+5>=y+3);
Serial.print(x);
Serial.print(" ");
Serial.print(bx);
Serial.print(" ");
Serial.println(by);
by+=2*level+1;
}
else
{
tft.fillScreen(TFT_WHITE);
tft.setCursor(0,0);
tft.println("Game ovor!");
tft.print("your mark:");
tft.println(mark);
tft.print("your level:");
tft.print(level);
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
digitalWrite(led,HIGH);
delay(3000);
exit(0);
}
}
cpp
#include<TFT_eSPI.h>
#define led 2
int bx,by=5,x=65,y=57,mark,level=1;
const int r=5,sjs=23,pin=13;
TFT_eSPI tft=TFT_eSPI();
uint16_t color=tft.color565(128,0,128); //RGB颜色转GBR565,紫色
void setup()
{
// put your setup code here, to run once:
Serial.begin(921600);
pinMode(led,OUTPUT);
pinMode(pin,INPUT);
digitalWrite(led,LOW);
tft.init();
tft.fillScreen(TFT_WHITE);
tft.setRotation(3);
tft.setTextSize(2);
tft.setTextColor(TFT_BLACK);
randomSeed(analogRead(sjs)); //使用一个引脚来作为随机数种子
bx=random(5,155);
}
void loop()
{
// put your main code here, to run repeatedly:
if(bx>=x&&bx<=x+15&&by+5>=y&&by+5<=y+3)
{
mark++;
if(mark%5==0)
{
level++;
}
tft.fillScreen(TFT_WHITE);
tft.setCursor(0,0);
tft.println("you win!");
tft.print("your mark:");
tft.println(mark);
tft.print("your level:");
tft.print(level);
delay(1000);
tft.fillScreen(TFT_WHITE);
randomSeed(analogRead(sjs));
bx=random(5,155);
by=5;
x=65;
y=57;
}
if(bx<=155&&bx>=5&&by>=5&&by<=75)
{
tft.fillRect(x,y,15,3,TFT_BLACK);
tft.fillCircle(bx,by,r,color);
tft.drawPixel(bx,by,TFT_WHITE);
delay(100);
tft.fillCircle(bx,by,r,TFT_WHITE);
tft.fillRect(x,y,15,3,TFT_WHITE);
x=double(analogRead(13))/4095.00*145;
Serial.println(bx>=x&&bx<=x+15&&by+5<=y&&by+5>=y+3);
Serial.print(x);
Serial.print(" ");
Serial.print(bx);
Serial.print(" ");
Serial.println(by);
by+=2*level+1;
}
else
{
tft.fillScreen(TFT_WHITE);
tft.setCursor(0,0);
tft.println("Game ovor!");
tft.print("your mark:");
tft.println(mark);
tft.print("your level:");
tft.print(level);
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
digitalWrite(led,HIGH);
delay(3000);
exit(0);
}
}