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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3461|回復: 3
收起左側

正點原子stm32精英版的flappy bird源碼

[復制鏈接]
ID:298809 發表于 2018-12-26 11:35 | 顯示全部樓層 |閱讀模式
2l貼圖片
2.jpg

flappy bird.rar

403.71 KB, 下載次數: 17, 下載積分: 黑幣 -5

評分

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

查看全部評分

回復

使用道具 舉報

ID:298809 發表于 2018-12-26 11:39 | 顯示全部樓層

  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"
  7. #include "tpad.h"
  8. #include "stdlib.h"

  9. #define a 7    //小鳥的長和寬
  10. #define b 15   

  11. #define width 60   //柱子寬度
  12. #define high 80    //柱子缺口高度

  13. void DrawDird(u16 x,u16 y,int fly)      //畫小鳥
  14. {
  15.         int x1,y1,x2,y2,x3,y3,x4,y4;
  16.        
  17.         if(fly==0)   //下落
  18.         {
  19.         x1=x-a;y1=y-b;
  20.         x2=x+a;y2=y+b;
  21.         x3=x-b;y3=y-a;
  22.         x4=x+b;y4=y+a;
  23.                
  24.        
  25.                
  26.         }
  27.         else if(fly==1)   //飛翔
  28.         {
  29.         x1=x+a;y1=y-b;
  30.         x2=x-a;y2=y+b;
  31.         x3=x-b;y3=y+a;
  32.         x4=x+b;y4=y-a;
  33.                
  34.        
  35.                
  36.         }
  37.        
  38.         LCD_Draw_Circle(x,y,5);     //小鳥的身體
  39.         LCD_DrawLine(x1,y1,x3,y3);
  40.         LCD_DrawLine(x1,y1,x4,y4);
  41.         LCD_DrawLine(x2,y2,x3,y3);
  42.         LCD_DrawLine(x2,y2,x4,y4);

  43. }
  44.   
  45. void DrawBar(u16 x,u16 y)    //畫柱子
  46. {
  47.         int x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8;  
  48.         //POINT_COLOR=color;
  49.        
  50.         x1=x,y1=0;
  51.         x2=x+60,y2=0;
  52.         x3=x,y3=y;
  53.         x4=x+60,y4=y;
  54.         x5=x,y5=y+100;
  55.         x6=x+60,y6=y+100;
  56.         x7=x,y7=500;
  57.         x8=x+60,y8=500;
  58.        
  59.        
  60.         LCD_DrawLine(x1,y1,x2,y2);
  61.         LCD_DrawLine(x1,y1,x3,y3);
  62.         LCD_DrawLine(x2,y2,x4,y4);
  63.         LCD_DrawLine(x3,y3,x4,y4);
  64.        
  65.         LCD_DrawLine(x5,y5,x6,y6);
  66.         LCD_DrawLine(x5,y5,x7,y7);
  67.         LCD_DrawLine(x6,y6,x8,y8);
  68.         LCD_DrawLine(x7,y7,x8,y8);
  69.        
  70.        
  71.        
  72. }



  73. int main(void)
  74. {         int i = 0;     //游戲進程
  75.          u8 score=0;     //分數
  76.         u8 num[12];      //存放分數字符串
  77.          
  78.          
  79.          u16 barx=300;   //柱子x
  80.          u16 bary=100;   //柱子y
  81.         u16 birdx=150;   //小鳥x
  82.         u16 birdy=200;   //小鳥y
  83.          
  84.          
  85.          //以下是背景
  86.         u16 firex=300;       //火焰x
  87.         u16 firey=200;       //火焰y
  88.         u16 waterx=300;       //水x
  89.         u16 watery=150;       //水y
  90.         u16 gx=300;       //gx
  91.         u16 gy=150;       //gy
  92.         u16 hx=300;       //hx
  93.         u16 hy=150;       //hy
  94.        


  95.         delay_init();                     //延時函數初始化          
  96.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  97.         uart_init(115200);                 //串口初始化為115200
  98.         LED_Init();                             //LED端口初始化
  99.         LCD_Init();
  100.        
  101.   TPAD_Init(6);                        //初始化觸摸按鍵         
  102.   
  103. while(1)
  104. {       
  105.        
  106.           POINT_COLOR=BLACK;   
  107.        
  108.        
  109.         DrawDird(birdx,birdy,TPAD_Scan(1));  //畫鳥*********************************
  110.        

  111.         birdy = birdy + 15;    //下落
  112.        
  113.         if(barx==92) {score++;}   //得分
  114.        
  115.         sprintf((char*)num,"SCORE:%d",score);   //將分數存儲在字符串里
  116.        
  117.         LCD_ShowString(30,30,200,16,16,num);    //打印分數
  118.        
  119.         if(i>20)                            //游戲開始后稍等一段時間
  120.         {
  121.         DrawBar(barx,bary);                  //畫柱子*********************************
  122.         barx = barx-8;   //柱子移動
  123.         if(barx==4)    //柱子刷新
  124.                 {barx = 300;
  125.                 bary = rand()%350;}
  126.         }
  127.        
  128.         /****************************背景的移動與漸變************************************************/
  129.         POINT_COLOR=0x0000+i;
  130.         LCD_Draw_Circle(firex,firey,2*i);
  131.         POINT_COLOR=0x0000+2*i;
  132.         LCD_Draw_Circle(waterx,watery,3*i);
  133.         POINT_COLOR=0x0000+3*i;
  134.         LCD_Draw_Circle(gx,gy,i);
  135.         POINT_COLOR=0x0000+3*i;
  136.         LCD_Draw_Circle(hx,hy,6*i);
  137.         POINT_COLOR=BLACK;
  138.         /**********************************************************************************************/

  139.        
  140.         /*******************************背景的刷新***********************************/       
  141.         firex = firex-30;
  142.   if(firex==0)   
  143.                 {firex = 300;
  144.                 firey = rand()%350;}       
  145.                
  146.         waterx = waterx-50;
  147.   if(waterx==0)   
  148.                 {waterx = 300;
  149.                 watery = rand()%350;}
  150.                
  151.         gx = gx-15;
  152.   if(gx==0)   
  153.                 {gx = 300;
  154.                 gy = rand()%350;}       
  155.                
  156.         hx = hx-5;
  157.   if(hx==0)   
  158.                 {hx = 300;
  159.                 hy = rand()%350;}       
  160.         /*******************************************************************************/       
  161.        
  162.                
  163.         if(birdy>=490) break;  //摔死
  164.         if(birdy<=50) birdy =60;//不能飛太高
  165.         if(TPAD_Scan(1))        //成功捕獲到了一次上升沿(此函數執行時間至少15ms)
  166.                 {
  167.                         birdy = birdy - 35;                //跳
  168.                 }
  169.                
  170.         if(barx<150&&barx>90)      //撞死在柱子上
  171.                 if(bary>birdy||bary<birdy-100) break;
  172.        

  173.                
  174.        
  175.   if(i%2==0) LCD_Clear(WHITE-1*i);  //漸變色清屏
  176.        

  177.         i++;   //游戲進程
  178. }

  179. while(1)  //game over
  180. {



  181. LCD_ShowString(110,200,210,24,24,"GAME OVER");
  182.         LCD_ShowString(120,300,200,16,16,num);
  183.        
  184. }
  185. }
復制代碼


回復

使用道具 舉報

ID:298809 發表于 2018-12-26 11:40 | 顯示全部樓層
論壇的發帖功能真蛋疼啊
回復

使用道具 舉報

ID:1 發表于 2018-12-26 15:40 | 顯示全部樓層
1912193931 發表于 2018-12-26 11:40
論壇的發帖功能真蛋疼啊

是指哪方便?我們好改進一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 成人蜜桃av | 精品久久中文 | 欧美二三区| 一级少妇女片 | 99re在线播放 | 久久激情视频 | 亚洲国产精品va在线看黑人 | 欧美日韩精品 | 91极品尤物在线播放国产 | 98成人网 | 欧美一级欧美三级在线观看 | 亚洲欧美在线一区 | 玖玖综合在线 | 91嫩草精品| 久久国内| 日本视频在线 | 久久久久久久一区 | 中文字幕在线观看 | 久久国产成人午夜av影院武则天 | 国产原创在线观看 | 欧美精品一区二区在线观看 | 中文字幕第一页在线 | 成人久久久| 欧美黄色片| 日本电影一区二区 | jizz亚洲人| 中文字幕一区二区三区日韩精品 | 日韩欧美高清 | 国产精品成人一区二区 | 在线色网站| 国产精品免费一区二区三区 | 国产高清一区二区三区 | 国产精品视频在线播放 | 一区二区三区四区免费视频 | 亚洲一页 | av片网站| 日韩视频在线免费观看 | 亚洲成av人片在线观看 | 在线只有精品 | 国产视频一区二区 |