久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7342|回復: 7
打印 上一主題 下一主題
收起左側(cè)

[arduino游戲]飛機大戰(zhàn)

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:277903 發(fā)表于 2018-2-5 17:53 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

飛機大戰(zhàn)游戲,你可以通過按鍵控制飛機躲避障礙,直到30000分通關(guān)
  你要控制飛機在烏云中飛行并躲避一切障礙物

  碰到 烏云(黑白間隔方塊) -1 生命
  碰到 小鳥(白色方塊)     -2 生命
  碰到 加油機(一個圓圈中間一個x) 隨機1-3生命 并進行加分
  碰到 其他飛機(內(nèi)嵌正方形的正方形) 隨機扣1生命或加1生命

  如果遇到障礙物無法躲避可以進行加速俯沖(持續(xù)右鍵),有一定幾率減少傷害
  遇到加油機可以進行減速(左鍵),這樣可以加到更多油(生命)和更多分數(shù)
  并且按B鍵可以暫停游戲  









游戲下載:
The_plane_war.zip (962.44 KB, 下載次數(shù): 49)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-2-6 01:34 | 只看該作者
樓主的源碼:
  1. /*
  2.   飛機大戰(zhàn)游戲,你可以通過按鍵控制飛機躲避障礙,直到30000分通關(guān)
  3.   你要控制飛機在烏云中飛行并躲避一切障礙物

  4.   碰到 烏云(黑白間隔方塊) -1 生命
  5.   碰到 小鳥(白色方塊)     -2 生命
  6.   碰到 加油機(一個圓圈中間一個x) 隨機1-3生命 并進行加分
  7.   碰到 其他飛機(內(nèi)嵌正方形的正方形) 隨機扣1生命或加1生命

  8.   如果遇到障礙物無法躲避可以進行加速俯沖(持續(xù)右鍵),有一定幾率減少傷害
  9.   遇到加油機可以進行減速(左鍵),這樣可以加到更多油(生命)和更多分數(shù)
  10.   并且按B鍵可以暫停游戲  (暫停圖像改了下Mystic-Balloon 神秘氣球中的一個素材 如果有問題請聯(lián)系我刪除這個素材 你們可以到https://github.com/Gaveno/ID-34-Mystic-Balloon查看這個神秘氣球的游戲)

  11.   Copyright (c) 2018 HWT團隊 作者:LHW
  12.   如果修改并發(fā)布務必留下原作者信息,不能修改程序中的QR碼數(shù)組信息
  13.   如果發(fā)現(xiàn)BUG 請把BUG發(fā)送到1281702594@qq.com 或 createskyblue@outlook.com 謝謝!
  14. */

  15. //#include <EEPROM.h> //EEPROM 存儲庫
  16. #include "U8glib.h"//引用U8G頭文件
  17. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);//設置設備名稱:I2C-SSD1306-128*64(OLED)
  18. //如果屏幕不同請自行修改 如果第一次使用u8glib并且遇到顯示不正確,請自行修改u8g配置
  19. /***********************************************/
  20. #define UP 11//定義方向鍵上為Arduino上的11號引腳
  21. #define DOWN 10//定義方向鍵上為Arduino上的10號引腳
  22. #define LEFT 9//定義方向鍵上為Arduino上的9號引腳
  23. #define RIGHT 8//定義方向鍵上為Arduino上的8號引腳
  24. #define A 7//定義方向鍵上為Arduino上的7號引腳
  25. #define B 6//定義方向鍵上為Arduino上的6號引腳
  26. /***********************************************/
  27. //初始化變量
  28. byte wait = 40; //延遲
  29. int HP = 20; //HP
  30. byte PPX = 4; //初始化玩家X位置
  31. byte PPY = 2; //初始化玩家Y位置
  32. byte PX = 0; //初始化玩家x軸坐標
  33. byte PY = 0; //初始化玩家y軸坐標
  34. int RT = 1; //初始化運行周期
  35. int S = 0; //分數(shù)
  36. byte OA; //障礙物
  37. byte OB; //障礙物
  38. byte OC; //障礙物
  39. byte OD; //障礙物
  40. int Atmp = 0; //緩存A
  41. int Btmp; //緩存B
  42. byte CA[50]; //A列
  43. byte CB[50]; //B列
  44. byte CC[50]; //C列
  45. byte CD[50]; //D列
  46. byte CAX[50]; //A列_X軸
  47. byte CBX[50]; //B列_X軸
  48. byte CCX[50]; //C列_X軸
  49. byte CDX[50]; //D列_X軸
  50. byte CAY[50]; //A列_Y軸
  51. byte CBY[50]; //B列_Y軸
  52. byte CCY[50]; //C列_Y軸
  53. byte CDY[50]; //D列_Y軸
  54. //載入位圖
  55. const uint8_t title[] PROGMEM = {
  56.   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
  57.   0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
  58.   0x98, 0x81, 0x31, 0xF3, 0x20, 0x45, 0x1F, 0x44, 0x8A, 0x00, 0xA0, 0x00, 0x00, 0x81, 0x00, 0x00,
  59.   0x68, 0x41, 0x4A, 0x92, 0x20, 0x45, 0x04, 0x44, 0x8A, 0x00, 0xB0, 0x01, 0x00, 0x40, 0x01, 0x00,
  60.   0x14, 0x02, 0x49, 0xF2, 0xE0, 0x45, 0xC4, 0xC4, 0x8B, 0x00, 0x4E, 0x06, 0x00, 0x80, 0x00, 0x00,
  61.   0x14, 0x82, 0x48, 0x92, 0x20, 0x55, 0xC4, 0x44, 0xAA, 0x00, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x00,
  62.   0x68, 0x41, 0x48, 0x92, 0x20, 0x29, 0x04, 0x44, 0x52, 0x08, 0xA8, 0x00, 0x3E, 0x00, 0x00, 0x00,
  63.   0x98, 0xC1, 0x33, 0xF7, 0x20, 0x29, 0x04, 0x5C, 0x52, 0x00, 0x40, 0xC0, 0x61, 0x00, 0x00, 0x30,
  64.   0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x38, 0xC3, 0x00, 0x00, 0x0C,
  65.   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE7, 0xC6, 0xFF, 0x07, 0x03,
  66.   0x00, 0x40, 0x00, 0x04, 0x52, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE0, 0x0C, 0xFE, 0xFF, 0xF9, 0x00,
  67.   0xC0, 0xF3, 0x1D, 0x04, 0x12, 0x00, 0x08, 0x00, 0x00, 0x00, 0x30, 0xE8, 0x81, 0x0F, 0xFC, 0x40,
  68.   0x00, 0x42, 0x94, 0x3F, 0x7E, 0x00, 0x14, 0x40, 0x00, 0x00, 0x1C, 0x1F, 0x00, 0x8E, 0x7F, 0x00,
  69.   0x00, 0xE5, 0x14, 0x04, 0x12, 0x00, 0x08, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x00, 0xFC, 0x1F, 0x08,
  70.   0x00, 0xE3, 0x14, 0x0A, 0x57, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFC, 0x0F, 0x00,
  71.   0x00, 0xE5, 0x14, 0x0A, 0x25, 0x00, 0x00, 0x00, 0x20, 0x00, 0x76, 0x00, 0x00, 0xF8, 0x03, 0x00,
  72.   0x00, 0x51, 0x15, 0x11, 0x55, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF1, 0x00, 0x00, 0xF6, 0x01, 0x00,
  73.   0x00, 0x52, 0xA3, 0x20, 0x47, 0x00, 0x02, 0x20, 0x00, 0x60, 0xFC, 0x00, 0x80, 0x79, 0x00, 0x00,
  74.   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x18, 0xFA, 0x01, 0x60, 0x36, 0x10, 0x14,
  75.   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x38, 0x84, 0xF1, 0x03, 0x90, 0x09, 0x00, 0x02,
  76.   0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1D, 0x00, 0x76, 0x43, 0xF0, 0x03, 0x7C, 0x07, 0x00, 0x54,
  77.   0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0xCD, 0x00, 0xF8, 0x07, 0x9B, 0x01, 0x20, 0x00,
  78.   0x00, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x02, 0x60, 0x33, 0x00, 0xEA, 0xC3, 0x44, 0x00, 0x02, 0x05,
  79.   0x00, 0x11, 0x03, 0x00, 0x00, 0x40, 0x02, 0xD8, 0x0C, 0x00, 0xE5, 0x31, 0x33, 0x00, 0x00, 0x28,
  80.   0xC0, 0xCC, 0x1C, 0x00, 0x00, 0x00, 0x70, 0x36, 0x03, 0x40, 0xDA, 0xC8, 0x1E, 0x00, 0x40, 0x75,
  81.   0x20, 0x32, 0x61, 0x80, 0x00, 0x00, 0x88, 0x8F, 0x00, 0xB0, 0x36, 0x36, 0x03, 0x00, 0x00, 0x20,
  82.   0x98, 0x0A, 0x81, 0x03, 0x00, 0x00, 0xE8, 0x70, 0x00, 0xE8, 0x8D, 0xC9, 0x20, 0x10, 0x50, 0x14,
  83.   0x64, 0x0C, 0x02, 0x1C, 0x00, 0x00, 0x78, 0x18, 0x00, 0x5E, 0x63, 0x36, 0x00, 0x02, 0x00, 0x00,
  84.   0x13, 0x08, 0x04, 0xE0, 0x00, 0x00, 0x08, 0x06, 0x80, 0xE7, 0x90, 0x19, 0x00, 0x00, 0x15, 0x75,
  85.   0x08, 0x08, 0x04, 0x00, 0x1F, 0x00, 0x90, 0x01, 0x40, 0x31, 0x6C, 0x06, 0x06, 0x00, 0x00, 0x20,
  86.   0x06, 0x10, 0x08, 0x00, 0xE0, 0xFF, 0x5F, 0x00, 0xF0, 0x10, 0x9B, 0x01, 0x00, 0x44, 0x50, 0x55,
  87.   0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x28, 0xC8, 0x64, 0x00, 0x00, 0x00, 0x00, 0x20,
  88.   0x80, 0x10, 0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1E, 0x38, 0x13, 0x00, 0x00, 0x11, 0x75, 0x65,
  89.   0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xCC, 0x0C, 0x00, 0x00, 0x00, 0x02, 0xA0,
  90.   0x00, 0x20, 0x40, 0x00, 0x00, 0xC0, 0x00, 0x40, 0x01, 0x34, 0x03, 0x00, 0x44, 0x55, 0x55, 0x5D,
  91.   0x00, 0x40, 0x40, 0x00, 0x00, 0x20, 0x00, 0xF0, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x80, 0x82, 0x28,
  92.   0x04, 0x50, 0x80, 0x00, 0x00, 0x18, 0x00, 0x38, 0x00, 0x23, 0x00, 0x00, 0x11, 0x15, 0x57, 0x65,
  93.   0x00, 0x40, 0x00, 0x01, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x19, 0x20, 0x00, 0x00, 0x8A, 0x08, 0x20,
  94.   0x00, 0x80, 0x00, 0x01, 0x80, 0x01, 0x80, 0x07, 0x80, 0x06, 0x00, 0x44, 0xD1, 0x25, 0x44, 0x15,
  95.   0x00, 0x80, 0x00, 0x03, 0x60, 0x00, 0xC0, 0x01, 0xC0, 0x81, 0x00, 0x00, 0xA8, 0x60, 0xA0, 0x22,
  96.   0x00, 0x80, 0xC0, 0x00, 0x18, 0x00, 0x70, 0x00, 0x40, 0x00, 0x00, 0x45, 0x76, 0xC7, 0x30, 0x03,
  97.   0x00, 0x00, 0x31, 0x00, 0x04, 0x00, 0x78, 0x00, 0x20, 0x00, 0x00, 0x00, 0x22, 0xCA, 0x81, 0x00,
  98.   0x40, 0x00, 0x8D, 0x00, 0x03, 0x00, 0x4E, 0x00, 0x20, 0x00, 0x40, 0x00, 0x10, 0x80, 0x41, 0x05,
  99.   0x00, 0x80, 0xE3, 0xC0, 0x00, 0x80, 0x27, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x14,
  100.   0x00, 0x80, 0x18, 0x31, 0x00, 0xC0, 0x21, 0x00, 0xC8, 0x4B, 0x8F, 0x17, 0x66, 0x3A, 0x06, 0x04,
  101.   0x00, 0x20, 0x07, 0x0D, 0x00, 0x40, 0x20, 0x00, 0x08, 0x49, 0x81, 0x14, 0xA9, 0x0A, 0x1E, 0x04,
  102.   0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x10, 0x00, 0x04, 0x79, 0x87, 0x17, 0xAF, 0x3A, 0xFF, 0xE4,
  103.   0x00, 0x00, 0xC0, 0x03, 0x00, 0x20, 0x10, 0x00, 0x04, 0x49, 0x81, 0x10, 0x29, 0x0B, 0xFE, 0xF3,
  104.   0x00, 0x00, 0xC0, 0x03, 0x00, 0x2A, 0x10, 0x00, 0x02, 0x49, 0x8F, 0x70, 0x29, 0x3A, 0xBF, 0xDF,
  105.   0x20, 0x00, 0xF0, 0x03, 0x00, 0x15, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0C,
  106.   0x00, 0x80, 0xF8, 0x07, 0xA0, 0x1E, 0x08, 0x00, 0x01, 0x00, 0x88, 0xCC, 0x01, 0xC0, 0x7F, 0x44,
  107.   0x00, 0x40, 0x79, 0x07, 0x54, 0x13, 0x08, 0x80, 0x00, 0x00, 0x88, 0x52, 0x21, 0xC4, 0x5B, 0x34,
  108.   0x00, 0x80, 0xA8, 0xA7, 0xEA, 0x1C, 0x04, 0x80, 0x00, 0xFE, 0x88, 0x5E, 0x71, 0x97, 0x9F, 0x39,
  109.   0x00, 0x18, 0xD8, 0x5F, 0x35, 0x0B, 0x04, 0x5F, 0x80, 0xF9, 0xA8, 0xD2, 0xA8, 0x8A, 0x17, 0xE0,
  110.   0x00, 0x86, 0xD8, 0xBC, 0xFE, 0x0C, 0xE4, 0x30, 0x60, 0xF8, 0x50, 0x52, 0xD1, 0x45, 0x07, 0x90,
  111.   0x80, 0xAA, 0xD8, 0xFA, 0x13, 0x0B, 0x1E, 0x3C, 0x18, 0xF0, 0x50, 0x52, 0xA9, 0x08, 0xA7, 0x86,
  112.   0xF0, 0xCF, 0xF1, 0xFF, 0xD0, 0x04, 0xE2, 0x13, 0x06, 0x60, 0x00, 0x00, 0x74, 0x01, 0x07, 0x05,
  113.   0xAC, 0x72, 0xF7, 0x1F, 0x30, 0x04, 0x1E, 0x90, 0x01, 0x18, 0x00, 0x00, 0xA8, 0x86, 0x85, 0x22,
  114.   0x57, 0xDD, 0xE1, 0x07, 0x10, 0x04, 0x01, 0x68, 0x00, 0x06, 0x00, 0xC0, 0x5D, 0xFE, 0x49, 0x05,
  115.   0xAA, 0x8A, 0xC0, 0x00, 0x08, 0xFE, 0x01, 0x04, 0x80, 0x01, 0x28, 0xA8, 0x0A, 0x18, 0xC9, 0xA3,
  116.   0x77, 0xBF, 0x34, 0x00, 0x04, 0x02, 0x01, 0x04, 0x70, 0x00, 0x76, 0x76, 0x77, 0xE3, 0x50, 0x01,
  117.   0xAA, 0x0A, 0x17, 0x00, 0x04, 0x82, 0x00, 0x02, 0x0C, 0x07, 0xA2, 0x8A, 0xAA, 0x42, 0xE1, 0x02,
  118.   0xD5, 0xC1, 0x16, 0x00, 0x04, 0x82, 0x00, 0x01, 0xC3, 0x08, 0xD1, 0xC5, 0xD5, 0x45, 0x40, 0x47,
  119.   0xAA, 0xB8, 0x08, 0x00, 0x02, 0x81, 0x80, 0xC1, 0x30, 0x06, 0xAA, 0x0A, 0x80, 0x4A, 0xF2, 0x2F,
  120. };
  121. const uint8_t QR[] PROGMEM = {
  122.   0x7F, 0xAD, 0x41, 0x4C, 0x0D, 0xFD, 0x01, 0x41, 0x6D, 0x9D, 0x01, 0xCD, 0x05, 0x01, 0x5D, 0x3F,
  123.   0xC9, 0xFE, 0xB2, 0x75, 0x01, 0x5D, 0x9F, 0xA3, 0x2A, 0x9B, 0x74, 0x01, 0x5D, 0xCE, 0xE7, 0x8F,
  124.   0x14, 0x74, 0x01, 0x41, 0x57, 0x49, 0x0C, 0x5B, 0x04, 0x01, 0x7F, 0x55, 0x55, 0x55, 0x55, 0xFD,
  125.   0x01, 0x00, 0x04, 0x7A, 0x24, 0xF6, 0x01, 0x00, 0x73, 0x3A, 0xD1, 0xCF, 0x00, 0xE9, 0x01, 0x10,
  126.   0x16, 0x49, 0xA2, 0x1F, 0x2B, 0x00, 0x67, 0x7C, 0xB5, 0x7E, 0xC2, 0x5F, 0x01, 0xB2, 0x41, 0xB6,
  127.   0x49, 0xFB, 0x32, 0x00, 0xC6, 0x88, 0xB2, 0x3C, 0x4E, 0xBE, 0x00, 0xB0, 0x61, 0x1C, 0xA7, 0x16,
  128.   0x23, 0x00, 0xEF, 0x55, 0x6D, 0x65, 0xCB, 0x47, 0x01, 0x96, 0xB6, 0x65, 0x6A, 0xBC, 0x34, 0x00,
  129.   0x50, 0x22, 0x81, 0xC7, 0xEA, 0xCA, 0x00, 0x23, 0x23, 0xC9, 0x99, 0x35, 0xB9, 0x00, 0xF3, 0x09,
  130.   0x6B, 0x54, 0xE5, 0xBC, 0x01, 0x22, 0x36, 0x89, 0x19, 0x29, 0x39, 0x01, 0xD2, 0x6D, 0x5C, 0x96,
  131.   0x26, 0x2F, 0x00, 0x02, 0xD9, 0xE7, 0x07, 0xB4, 0x71, 0x00, 0xFB, 0x93, 0xD0, 0xC7, 0x39, 0xBF,
  132.   0x01, 0x1B, 0x17, 0x78, 0x1C, 0x6F, 0x31, 0x00, 0x52, 0x1B, 0x6B, 0x75, 0x42, 0x75, 0x01, 0x1A,
  133.   0xB5, 0x61, 0x94, 0xA5, 0xF1, 0x01, 0xFD, 0x7D, 0xE4, 0x97, 0xBF, 0xFF, 0x01, 0xB8, 0xCB, 0x7E,
  134.   0x61, 0x50, 0x0C, 0x00, 0xE2, 0x88, 0x72, 0xD5, 0xE0, 0xDB, 0x01, 0x8A, 0x76, 0x7C, 0x1B, 0x35,
  135.   0x2C, 0x01, 0x43, 0x66, 0xE9, 0xC4, 0x06, 0xBE, 0x01, 0x9E, 0xE4, 0xE1, 0x92, 0xE2, 0x8B, 0x01,
  136.   0x53, 0xA5, 0x98, 0x90, 0xE4, 0xD8, 0x01, 0xB9, 0x17, 0x4D, 0x36, 0x09, 0x4D, 0x00, 0x41, 0x9A,
  137.   0xE2, 0xF4, 0x43, 0x4E, 0x01, 0x1B, 0xAF, 0xB8, 0x69, 0xF9, 0xAB, 0x01, 0x5C, 0x76, 0xBC, 0x5B,
  138.   0xA8, 0x0B, 0x00, 0xBD, 0xCB, 0x27, 0x3F, 0x9F, 0x45, 0x00, 0x62, 0xFD, 0x56, 0x64, 0x53, 0x6C,
  139.   0x01, 0x0E, 0x17, 0x1E, 0x8C, 0xDF, 0xA7, 0x01, 0x47, 0x28, 0xE0, 0x9F, 0xEA, 0x7F, 0x00, 0x00,
  140.   0x61, 0x69, 0x8C, 0x39, 0x91, 0x00, 0x7F, 0x6A, 0x7D, 0xCD, 0x02, 0xF5, 0x01, 0x41, 0x47, 0x5F,
  141.   0x9C, 0x32, 0xB1, 0x00, 0x5D, 0x99, 0xF2, 0x97, 0x00, 0x3F, 0x00, 0x5D, 0x74, 0x1C, 0x06, 0xBC,
  142.   0xAB, 0x01, 0x5D, 0x60, 0x2F, 0xAD, 0xB9, 0xFA, 0x01, 0x41, 0x8B, 0x47, 0x09, 0x8F, 0xB5, 0x00,
  143.   0x7F, 0x05, 0xEB, 0x76, 0x60, 0xC9, 0x01,
  144. };
  145. const uint8_t pause[] PROGMEM = {
  146.   0xA7, 0xAA, 0xAA, 0xAA, 0x3A, 0x55, 0x55, 0x55, 0x55, 0x29, 0x07, 0x00, 0x00, 0x00, 0x38, 0xF0,
  147.   0xF7, 0xFB, 0xF7, 0x03, 0x19, 0x1C, 0x8E, 0x1C, 0x26, 0x8A, 0xCF, 0x04, 0xC8, 0x14, 0x89, 0x08,
  148.   0x24, 0x09, 0x24, 0x8A, 0x08, 0x24, 0xC9, 0x17, 0x89, 0xC9, 0x24, 0x09, 0x24, 0x1A, 0xCC, 0x24,
  149.   0x19, 0x16, 0xF1, 0xFF, 0xFF, 0xFF, 0x23, 0x0A, 0x86, 0x4C, 0x18, 0x16, 0xC9, 0x34, 0x4D, 0xC8,
  150.   0x24, 0x0A, 0x04, 0x4D, 0x0E, 0x14, 0x09, 0x02, 0xCD, 0xD9, 0x27, 0xCA, 0x33, 0x41, 0x10, 0x14,
  151.   0xC9, 0x33, 0x21, 0x18, 0x26, 0xFA, 0xFF, 0xFF, 0xFF, 0x17, 0x70, 0xFC, 0xDE, 0xEF, 0x03, 0x07,
  152.   0x00, 0x00, 0x00, 0x38, 0x55, 0x55, 0x55, 0x55, 0x29, 0xA7, 0xAA, 0xAA, 0xAA, 0x3A,
  153. };
  154. const uint8_t plane[] PROGMEM = {0x8, 0xC, 0x8C, 0xFF, 0xFF, 0x8C, 0xC, 0x8};
  155. const uint8_t BOA[] PROGMEM = {0xCC, 0xCC, 0x33, 0x33, 0xCC, 0xCC, 0x33, 0x33};
  156. const uint8_t BOB[] PROGMEM = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
  157. const uint8_t BOC[] PROGMEM = {0x18, 0x66, 0x7E, 0xBD, 0xBD, 0x7E, 0x66, 0x18};
  158. const uint8_t BOD[] PROGMEM = {0x0, 0x7E, 0x42, 0x5A, 0x5A, 0x42, 0x7E, 0x0};
  159. const uint8_t life[] PROGMEM = {0x0, 0x66, 0xFF, 0xCF, 0xDF, 0x7E, 0x3C, 0x18};
  160. /***********************************************/
  161. void setup(void) {
  162.   //串口通訊波特率設置
  163.   Serial.begin(9600);
  164.   //初始化按鈕
  165.   pinMode(UP, INPUT);//定義方向UP引腳狀態(tài)
  166.   pinMode(DOWN, INPUT);//定義方向DOWN引腳狀態(tài)
  167.   pinMode(LEFT, INPUT);//定義方向LEFT引腳狀態(tài)
  168.   pinMode(RIGHT, INPUT);//定義方向RIGHT引腳狀態(tài)
  169.   pinMode(A, INPUT);//定義按鍵A引腳狀態(tài)
  170.   pinMode(B, INPUT);//定義按鍵B引腳狀態(tài)
  171.   randomSeed(analogRead(A0)); //偽隨機數(shù)pin
  172.   u8g.firstPage();
  173.   do
  174.   {
  175.     u8g.drawXBMP( 0, 0, 128, 64, title);
  176.   } while ( u8g.nextPage() );
  177.   delay(1024);
  178. }
  179. /***********************************************/
  180. void(* resetFunc) (void) = 0; //制造重啟命令
  181. void loop(void) {
  182.   if (HP < 0 || S > 30000) {
  183.     //循環(huán)檢測按鈕
  184.     while (1) {
  185.       if (digitalRead(A) == HIGH) {
  186.         //軟復位指令
  187.         if (HP < 0) resetFunc();    //重啟程序開始
  188.         if (S >= 30000) {
  189.           while (1) {
  190.             u8g.setColorIndex(1);
  191.             u8g.firstPage();
  192.             do
  193.             {
  194.               u8g.drawXBMP(40, 8, 56, 49, QR);
  195.             } while ( u8g.nextPage() );
  196.           }
  197.         }
  198.       }
  199.     }
  200.   }
  201.   //按鍵輸入 如果按鈕是接入GND 請修改程序 默認按鈕接VCC
  202.   if (digitalRead(UP) == HIGH) {
  203.     if (PPY > 0) PPY -= 1;
  204.   }
  205.   if (digitalRead(DOWN) == HIGH) {
  206.     if (PPY < 4) PPY += 1;
  207.   }
  208.   if (digitalRead(LEFT) == HIGH) {
  209.     if (PPX > 1) PPX -= 1;
  210.   }
  211.   if (digitalRead(RIGHT) == HIGH) {
  212.     if (PPX < 15) PPX += 1;
  213.   }
  214.   if (digitalRead(B) == HIGH) {
  215.     delay (200);
  216.     u8g.firstPage();
  217.     do
  218.     {
  219.       draw();
  220.       u8g.setColorIndex(0);
  221.       u8g.drawBox(42, 10, 46, 28); //先覆蓋掉原屏幕,避免下面的圖片變透明
  222.       u8g.setColorIndex(1);
  223.       u8g.drawXBMP(45, 13, 40, 22, pause);
  224.     } while ( u8g.nextPage() );
  225.     while (1) {
  226.       if (digitalRead(B) == HIGH) {
  227.         delay (200);
  228.         break;
  229.       }
  230.     }
  231.   }
  232.   /***********************************************/
  233.   //計算
  234.   S += 1;
  235.   PX = PPX * 8;
  236.   PY = PPY * 8;
  237.   OA = 9;
  238.   OB = 9;
  239.   OC = 9;
  240.   OD = 9;
  241.   if (RT < 16) {
  242.     //障礙物生成
  243.     //障礙物
  244.     Atmp = random(1, 100);
  245.     if (Atmp <= 70) {
  246.       OA = random(0, 5);
  247.     }
  248.     //TNT
  249.     Atmp = random(1, 100);
  250.     if (Atmp <= 30) {
  251.       OB = random(0, 5);
  252.     }
  253.     //加血
  254.     Atmp = random(1, 100);
  255.     if (Atmp <= 5) {
  256.       OC = random(0, 5);
  257.     }
  258.     //隨機buff
  259.     Atmp = random(1, 100);
  260.     if (Atmp <= 50) {
  261.       OD = random(0, 5);
  262.     }
  263.   }
  264.   if (HP > 12) HP = 12;
  265.   //保存障礙物位置
  266.   CAY[RT] = OA * 8;
  267.   CBY[RT] = OB * 8;
  268.   CCY[RT] = OC * 8;
  269.   CDY[RT] = OD * 8;
  270.   CA[RT] = OA;
  271.   CB[RT] = OB;
  272.   CC[RT] = OC;
  273.   CD[RT] = OD;
  274.   CAX[RT] = 120;
  275.   CBX[RT] = 120;
  276.   CCX[RT] = 120;
  277.   CDX[RT] = 120;
  278.   //傷害判斷
  279.   Btmp = 15 - PPX;
  280.   if (RT > Btmp) {
  281.     Atmp = RT - Btmp;
  282.     if (PPY == CA[Atmp]) {
  283.       HP -= 1;
  284.     }
  285.     if (PPY == CB[Atmp]) {
  286.       HP -= 2;
  287.     }
  288.     if (PPY == CC[Atmp]) {
  289.       Atmp = random(1, 3);
  290.       HP += Atmp;
  291.       S += 30;
  292.     }
  293.     if (PPY == CD[Atmp]) {
  294.       Atmp = random(1, 100);
  295.       if (Atmp < 50) {
  296.         HP += 1;
  297.         S += 15;
  298.       } else {
  299.         HP -= 1;
  300.       }
  301.     }
  302.   }
  303.   /***********************************************/
  304.   //繪圖
  305.   u8g.firstPage();
  306.   do {
  307.     draw();
  308.   } while ( u8g.nextPage() );
  309.   /***********************************************/
  310.   //把障礙物往下移
  311.   Atmp = RT - 16;
  312.   if (Atmp < 1) {
  313.     Atmp = 1;
  314.   }
  315.   for (Atmp; Atmp <= RT; Atmp ++) {
  316.     CAX[Atmp] -= 8;
  317.     CBX[Atmp] -= 8;
  318.     CCX[Atmp] -= 8;
  319.     CDX[Atmp] -= 8;
  320.   }
  321.   RT += 1;
  322.   if (RT >= 32) {
  323.     RT = 1;
  324.   }
  325.   delay(wait); //防止游戲運行到只有神才能玩的級別
  326. }
  327. void draw() {
  328.   //障礙物循環(huán)初始化計算
  329.   Atmp = RT - 16;
  330.   if (Atmp < 1) {
  331.     Atmp = 1;
  332.   }
  333.   //障礙物顯示
  334.   for (Atmp; Atmp <= RT; Atmp ++) {
  335.     if (CCX[Atmp] > 0) {
  336.       u8g.drawBitmapP(CCX[Atmp], CCY[Atmp], 1, 8, BOC);
  337.     }
  338.     if (CDX[Atmp] > 0) {
  339.       u8g.drawBitmapP(CDX[Atmp], CDY[Atmp], 1, 8, BOD);
  340.     }
  341.     if (CAX[Atmp] > 0) {
  342.       u8g.drawBitmapP(CAX[Atmp], CAY[Atmp], 1, 8, BOA);
  343.     }
  344.     if (CBX[Atmp] > 0) {
  345.       u8g.drawBitmapP(CBX[Atmp], CBY[Atmp], 1, 8, BOB);
  346.     }
  347.   }
  348.   //顯示玩家
  349.   u8g.drawBitmapP(PX, PY, 1, 8, plane);
  350.   //生命以及分數(shù)
  351.   u8g.setFont(u8g_font_helvB08);
  352.   if (HP > 0) {
  353.     u8g.setPrintPos(8, 54);
  354.     u8g.print("HP:");
  355.     for (Atmp = 1; Atmp <= HP; Atmp ++) {
  356.       Btmp = Atmp * 8 + 20;
  357.       u8g.drawBitmapP(Btmp, 45, 1, 8, life);
  358.     }
  359.   }
  360.   u8g.setPrintPos(8, 62);
  361.   u8g.print("score:");
  362.   u8g.print(S);
  363.   if (HP < 0 || S >= 30000) {
  364.     //讀取EEPROM 地址0
  365.     //Atmp=EEPROM.read(1);
  366.     //if (S > HS) {
  367.     //破紀錄啦
  368.     //EEPROM.write(1,S);
  369.     //   HS = S;
  370.     //   Atmp = S;
  371.     // }
  372.     u8g.setColorIndex(255);
  373.     u8g.drawBox(0, 0, 128, 64);
  374.     u8g.setFont(u8g_font_fub14);
  375.     u8g.setColorIndex(0);
  376.     u8g.setPrintPos(4, 21);
  377.     if (HP < 0) u8g.print("GAME OVER");
  378.     if (S >= 30000) u8g.print("  YOU WIN");
  379.     u8g.setFont(u8g_font_helvB08);
  380.     //u8g.setPrintPos(35, 34);
  381.     //u8g.print("history:");
  382.     //u8g.print(Atmp);
  383.     if (Atmp == S) {
  384.       //破了紀錄
  385.       u8g.print("  NEW");
  386.     }
  387.     u8g.setPrintPos(35, 39);
  388.     u8g.print("score:");
  389.     if (HP < 0) u8g.print(S);
  390.     if (S >= 30000) u8g.print("30000");
  391.     u8g.setPrintPos(2, 62);
  392.     if (HP < 0) u8g.print("Please push A to RESET");
  393.     if (S >= 30000) u8g.print("     Push A to QR code");
  394.   }
  395. }

復制代碼
回復

使用道具 舉報

板凳
ID:330315 發(fā)表于 2018-5-15 15:38 | 只看該作者
樓主真厲害
回復

使用道具 舉報

地板
ID:330315 發(fā)表于 2018-5-15 16:09 | 只看該作者
很有意思的制作
回復

使用道具 舉報

5#
ID:330949 發(fā)表于 2018-5-16 06:27 | 只看該作者
This is so good bro.
回復

使用道具 舉報

6#
ID:362331 發(fā)表于 2018-6-30 16:19 | 只看該作者
飛機大戰(zhàn)游戲,你可以通過按鍵控制飛機躲避障礙,直到30000分通關(guān)
回復

使用道具 舉報

7#
ID:454378 發(fā)表于 2019-3-5 12:25 | 只看該作者
樓主可否提供硬件信息科物料信息
回復

使用道具 舉報

8#
ID:937433 發(fā)表于 2021-6-14 18:18 | 只看該作者
i love this game
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三 | 久久久91精品国产一区二区三区 | 羞羞色影院 | 天天综合网天天综合色 | 精品一二区 | 中文字幕一区二区三区精彩视频 | 91精品国产综合久久国产大片 | 亚洲国产精品成人 | 天堂在线一区 | 欧美日韩精品在线一区 | a在线视频| 精品国产乱码 | 久久中文字幕一区 | 欧美不卡一区二区三区 | 黄色大片在线免费观看 | 国内精品视频在线 | a欧美| 综合久久综合久久 | 国产精品中文 | 羞羞的视频免费观看 | 成人在线电影网站 | 请别相信他免费喜剧电影在线观看 | 免费精品在线视频 | 国产精品成人一区二区三区 | 欧美韩一区二区 | 伊人网综合在线观看 | 欧美日韩中文字幕在线 | 欧美www在线 | 久久精品国产亚洲 | 亚洲福利一区 | 欧美成人黄色小说 | 日韩午夜在线播放 | 成人免费共享视频 | 中文字幕精品一区二区三区精品 | 国产精品久久久免费 | 81精品国产乱码久久久久久 | 一级黄片一级毛片 | 小h片免费观看久久久久 | 国产一区二区成人 | 国产aaaaav久久久一区二区 | 日韩av在线不卡 |