Arduino小游戏

您所在的位置:网站首页 arduino小游戏项目 Arduino小游戏

Arduino小游戏

2022-10-02 15:15| 来源: 网络整理| 查看: 265

#include"U8glib.h" U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);//设置设备名称:I2C-SSD1306-128*64(OLED) #define UP 11//定义方向键上为Arduino引脚11号引脚 #define DOWN 10//定义方向键下为Arduino引脚10号引脚 #define LEFT 9//定义方向键上为Arduino引脚9号引脚 #define RIGHT 8//定义方向键上为Arduino引脚8号引脚 #define A 7//定义方向键上为Arduino引脚7号引脚 #define B 6//定义方向键上为Arduino引脚6号引脚 /***********************************************/ //初始化变量 //声明变量很多地方用了byte类型不用int类型,可以节约内存 byte wait=40;//延迟 int HP=20;//HP byte PPX=4;//初始化玩家X位置 byte PPY=2;//初始化玩家Y位置 byte PX=0;//初始化玩家X轴坐标 byte PY=0;//初始化玩家Y轴坐标 int RT=1;//初始化运行周期 int S=0;//分数 byte OA;//障碍物 byte OB;//障碍物 byte OC;//障碍物 byte OD;//障碍物 int Atmp=0;//缓存A int Btmp;//缓存B //下面湿障碍物的数据,我们把障碍物数据保存在数组里,由运行内存显示,每隔20次运行周期会重新覆盖,保存内存不溢出 byte CA[50];//障碍物A的位置 byte CB[50];//障碍物B的位置 byte CC[50];//障碍物C的位置 byte CD[50];//障碍物D的位置 //下面湿障碍物A、B、C、D的坐标信息 byte CAX[50];//障碍物A_X轴 byte CBX[50];//障碍物B_X轴 byte CCX[50];//障碍物C_X轴 byte CDX[50];//障碍物D_X轴 byte CAY[50];//障碍物A_Y轴 byte CBY[50];//障碍物B_Y轴 byte CCY[50];//障碍物C_Y轴 byte CDY[50];//障碍物D_Y轴 //载入位图 const uint8_t title[] PROGMEM= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; const uint8_t QR[] PROGMEM= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; const uint8_t pause[] PROGMEM= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; const uint8_t plane[] PROGMEM= {0x8,0xc,0x8c,0xff,0xff,0x8c,0xc,0x8}; const uint8_t BOA[] PROGMEM= {0xcc,0xcc,0x33,0x33,0xcc,0xcc,0x33,0x33}; const uint8_t BOB[] PROGMEM= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; const uint8_t BOC[] PROGMEM= {0x18,0x66,0x7e,0xbd,0xbd,0x7e,0x66,0x18}; const uint8_t BOD[] PROGMEM= {0x0,0x7e,0x42,0x5a,0x5a,0x42,0x7e,0x0}; const uint8_t life[] PROGMEM= {0x0,0x66,0xff,0xcf,0xdf,0x7e,0x3c,0x18}; /********************************************************/ void setup() { // put your setup code here, to run once: //初始化按钮 pinMode(UP,INPUT);//定义方向键上的引脚状态 pinMode(DOWN,INPUT);//定义方向键下的引脚状态 pinMode(LEFT,INPUT);//定义方向键左的引脚状态 pinMode(RIGHT,INPUT);//定义方向键右的引脚状态 pinMode(A,INPUT);//定义A的引脚状态 pinMode(B,INPUT);//定义B的引脚状态 randomSeed(analogRead(A0));//伪随机数PIN u8g.firstPage(); do { u8g.drawXBMP(0,0,128,64,title); } while(u8g.nextPage()); delay(1024); } /**********************************************************/ void(* resetFunc)(void)=0;//制造从起命令的函数,下面会用到 void loop() { // put your main code here, to run repeatedly: //下面是GAME OVER或胜利后的处理 if(HP30000) { //循环检测按钮 while(1) { //如果GAME OVER就等待按下A键复位游戏 if(digitalRead(A)==HIGH) if(HP=30000){ while(1) {u8g.setColorIndex(1); u8g.firstPage(); do { u8g.drawXBMP(40,8,56,49,QR); } while(u8g.nextPage()); } } } } if(digitalRead(UP)==HIGH) { delay(10); if(digitalRead(UP)==HIGH) { if(PPY>1) PPY-=1; } } if(digitalRead(DOWN)==HIGH) { delay(10); if(digitalRead(DOWN)==HIGH) { if(PPY1) PPX-=1; } } if(digitalRead(RIGHT)==HIGH) { delay(10); if(digitalRead(RIGHT)==HIGH) { if(PPX


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3