⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fangkuai.lst

📁 51单片机游戏程序包括图纸
💻 LST
📖 第 1 页 / 共 3 页
字号:
 403   2        }
 404   1        else
 405   1        {
 406   2           XiaoFengKuai(x1+shape[Tshape].point[0].x,y1+shape[Tshape].point[0].y,0);  //删除形状
 407   2               XiaoFengKuai(x1+shape[Tshape].point[1].x,y1+shape[Tshape].point[1].y,0);
 408   2               XiaoFengKuai(x1+shape[Tshape].point[2].x,y1+shape[Tshape].point[2].y,0);
 409   2               XiaoFengKuai(x1+shape[Tshape].point[3].x,y1+shape[Tshape].point[3].y,0);
 410   2        }
 411   1      }
 412          
 413          //**************************************************************************
 414          //= 函数原型:void Fangkuai_down()
 415          //= 功    能: 方块下降处理
 416          //= 参    数:                   
 417          //= 返 回 值:
 418          //= 函数性质:公有函数
 419          //= 注    意:
 420          //***************************************************************************   
 421          static uint DSpeed=MIN_SLOW_SPEED;                 //标识下降速度
 422          static uint Now_Speed=MIN_SLOW_SPEED;         //当前速度
 423          void Fangkuai_down()
 424          { 
 425   1        uchar i;
 426   1        static bit New_shape=1;                //标识是否要产生新形状
C51 COMPILER V7.01  FANGKUAI                                                               04/27/2007 22:08:22 PAGE 8   

 427   1        if(Game_Stop==1) return;
 428   1        if(New_shape==1)
 429   1        {
 430   2          New_shape=0;
 431   2          xx=X_START;
 432   2              yy=Y_START;
 433   2          This_shape=Next_shape;                          //当前方块等于预方块
 434   2              Show_shape(15,18,Next_shape,0);     // 产生一下个方块前,将预方块删除
 435   2              Next_shape=Random();                    //产生下一个方块
 436   2              Show_shape(xx,yy,This_shape,1);          //显示当前方块
 437   2              Show_shape(15,18,Next_shape,1);          //预显示下一个方块
 438   2              if(Bottom_Anti())
 439   2              {
 440   3                 Game_Stop=1;
 441   3             Show_Image(35,15,94,114,0);        //清屏
 442   3                 char_wr(6,6,Game_Char,0,4); //显示Game 
 443   3                 char_wr(6,8,Over_Char,0,4); //显示over
 444   3                 return;
 445   3              } 
 446   2        }
 447   1        else
 448   1        {
 449   2            if(DSpeed==0)
 450   2                  {
 451   3                     DSpeed=Now_Speed;        //确定方块下落的速度
 452   3                     if(Bottom_Anti())
 453   3                       {
 454   4                           New_shape=1;//产生新的形状
 455   4                          for(i=0;i<4;i++)
 456   4                           {
 457   5                             Platform[xx+shape[This_shape].point[i].x][yy+shape[This_shape].point[i].y]=1;//写入平台
 458   5                                
 459   5                               }
 460   4                                       UnDisplay_line();//消行计分
 461   4                                       return;
 462   4                    }
 463   3                     else
 464   3                       {
 465   4                         Show_shape(xx,yy,This_shape,0); //删除当前形状
 466   4                         yy++;
 467   4                     Show_shape(xx,yy,This_shape,1); //显示形状(形状下移一个位置)
 468   4                         return;
 469   4                        }
 470   3              }
 471   2            else
 472   2             {
 473   3                DSpeed--;
 474   3                    
 475   3              }
 476   2              
 477   2          }
 478   1      }
 479          
 480          //**************************************************************************
 481          //= 函数原型:void Fangkuai_Control()
 482          //= 功    能: 方块游戏控制
 483          //= 参    数:                   
 484          //= 返 回 值:
 485          //= 函数性质:公有函数
 486          //= 注    意:
 487          //*************************************************************************** 
 488          #define Move_Left    4
C51 COMPILER V7.01  FANGKUAI                                                               04/27/2007 22:08:22 PAGE 9   

 489          #define Move_Right       6
 490          #define Add_Speed    5
 491          #define Change_Shape 8
 492          #define Game_Star    7
 493          #define Game_Pause   9
 494          
 495          void Fangkuai_Control()
 496          {
 497   1              
 498   1               switch(Key)    //消息处理
 499   1               {
 500   2                   case  Move_Left: 
 501   2                             {
 502   3                                    Key=Nothing;  //信息已被处理,抛弃它
 503   3                            if(!Left_Anti())
 504   3                            {
 505   4                                   Show_shape(xx,yy,This_shape,0); //删除当前形状
 506   4                               xx--;
 507   4                                   Show_shape(xx,yy,This_shape,1); //显示移动后的形状
 508   4                            }
 509   3                                 }break;
 510   2                   case  Move_Right:
 511   2                            {
 512   3                                   Key=Nothing;  //信息已被处理,抛弃它
 513   3                           if(!Right_Anti())
 514   3                           {
 515   4                                  Show_shape(xx,yy,This_shape,0); //删除当前形状
 516   4                              xx++;
 517   4                                  Show_shape(xx,yy,This_shape,1); //显示移动后的形状
 518   4                           }
 519   3                                }break;
 520   2                   case  Add_Speed:
 521   2                             {
 522   3                                     Key=Nothing;               //信息已被处理,抛弃它
 523   3                                         if(Game_Stop==1)
 524   3                                              {
 525   4                                                 if(Game_Level==0)
 526   4                                                 {
 527   5                                                    Game_Level=9;
 528   5                                                        Show_num(13,11,9);     //显示等级水平
 529   5                                                        Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度
 530   5                                                      }
 531   4                                                      else
 532   4                                                      {
 533   5                                                         Game_Level--;
 534   5                                                         Show_num(13,11,Game_Level);   //显示等级水平
 535   5                                                         Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度
 536   5                                                      }
 537   4                                               }
 538   3                                              else
 539   3                                              {
 540   4                                            Now_Speed=1;                         //调整位置后,加速下降
 541   4                                            DSpeed=Now_Speed;
 542   4                                              }
 543   3                                 }break;
 544   2                   case  Change_Shape:
 545   2                              {
 546   3                                          Key=Nothing;           //信息已被处理,抛弃它
 547   3                                              if(Game_Stop==1)
 548   3                                              {
 549   4                                                 if(Game_Level==9)
 550   4                                                 {
C51 COMPILER V7.01  FANGKUAI                                                               04/27/2007 22:08:22 PAGE 10  

 551   5                                                    Game_Level=0;
 552   5                                                        Show_num(13,11,0);     //显示等级水平
 553   5                                                        Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度
 554   5                                                      }
 555   4                                                      else
 556   4                                                      {
 557   5                                                         Game_Level++;
 558   5                                                         Show_num(13,11,Game_Level);   //显示等级水平
 559   5                                                         Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度
 560   5                                                      }
 561   4                                               }
 562   3                                              else
 563   3                                              {
 564   4      
 565   4                                             if(!Change_Shape_Anti())
 566   4                                             {
 567   5                                                Show_shape(xx,yy,This_shape,0); //删除当前形状
 568   5                                            This_shape=shape[This_shape].next;
 569   5                                                Show_shape(xx,yy,This_shape,1); //显示变化后的形状
 570   5                                              }
 571   4                                              }
 572   3                                  }break;
 573   2                      case  Game_Star:
 574   2                            {
 575   3                                   Key=Nothing;                 //信息已被处理,抛弃它
 576   3                                       ClrGraphic();
 577   3                                       Show_Image(35,15,94,114,0);
 578   3                                   Init_GamePlatform();
 579   3                                       Game_Stop=0;
 580   3                                }break;
 581   2                      case  Game_Pause:
 582   2                            {
 583   3                                   Key=Nothing;                 //信息已被处理,抛弃它
 584   3                                   Game_Stop=!Game_Stop;
 585   3                                }
 586   2                      default:Now_Speed=Game_Speed;
 587   2                }
 588   1      }
 589          
 590          
 591          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2997    ----
   CONSTANT SIZE    =      8    ----
   XDATA SIZE       =    465    ----
   PDATA SIZE       =     15      13
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       3
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -