“极限逆行”小游戏
江宏晖
这是我在校期间自主学习设计的一个小游戏程序,结合单片机硬件来达到操控赛车躲避对象来车而得到分数的目的。这篇文章主要阐述了我对于设计这个游戏的思想以及部分代码展示。
其实不管做什么实验只有将自己的时间和精力花进去才能得到相应的回报,在这次实验过程中遇到了不少的难点,但是等思考解决之后会发现每个问题都是有可以迎刃而解的地方,然后在解决问题的过程中要保持冷静的思路,只有将思路理清问题也就解决了。
目录
一、设计内容;
二、重点要解决的问题及创新性;
三、概要设计;
四、部分详细设计代码展示;
五、单片机显示界面展示;
六、用户使用说明;
七、参考文献;
一、设计内容
设计一个赛车类小游戏,指车子驶入对向车道之后需要不停调整方向以达到躲避对向来车的目的。
二 、重点要解决的问题及创新性
1.玩家控制车辆的移动
2.对向来车的随机性以及移动方式
3.图片的添加
4.计分方式
5.格局的布控
三、概要设计
四、部分详细设计代码展示
1.所用控件
extern tPushButtonWidget goleft;
extern tPushButtonWidget goright;
extern tCanvasWidget z1;//左边画布控件1
extern tCanvasWidget z2;//左边画布控件2
extern tCanvasWidget z3;//左边画布控件3
extern tCanvasWidget y1;//右边画布控件1
extern tCanvasWidget y2;//右边画布控件2
extern tCanvasWidget y3;//右边画布控件3
extern tCanvasWidget c1;
extern tCanvasWidget c2;
extern tCanvasWidget score;
extern tCanvasWidget fenshu;
extern char g_pucImage1[];
extern char g_pucImage2[];
2.按钮功能定义
void OnButtonPress1(tWidget *pWidget)
{
CanvasFillColorSet(&c1, ClrRed);
CanvasImageSet(&c1,g_pucImage2);
CanvasImageOn(&c1);
WidgetAdd(WIDGET_ROOT,(tWidget *)&c1);
WidgetPaint((tWidget *)&c1);
WidgetMessageQueueProcess();
CanvasFillColorSet(&c2, 0);
CanvasImageOff(&c2);
WidgetAdd(WIDGET_ROOT,(tWidget *)&c2);
WidgetPaint((tWidget *)&c2);
WidgetMessageQueueProcess();
w=3;
}
3.延迟模块以及加速模块
void Delay(vo