📄 fangkuai.lst
字号:
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 + -