基于wince的c的贪吃蛇游戏内容摘要:

功实现。 附上判断游戏结束的代码: if(uTag==0) { for(int i=0。 i()。 i++) { CPoint uPoint1=(i)。 if(== amp。 amp。 ==) { uTag=1。 break。 } } } if(uTag==0) { 16 (0,uPoint)。 ReDisplay(uPoint)。 if(== amp。 amp。 ==) { m_nCount++。 IniAim()。 Invalidate()。 } else { CPoint uPoint1=(())。 (())。 ReDisplay(uPoint1)。 } } else { KillTimer(1)。 MessageBox(strTemp,_T(游戏结束 ))。 //游戏结束对话框 } CView::OnTimer(nIDEvent)。 } ( 5) 对得分对话框的测试 在点击“开始”按钮后,控制“蛇”进行进食(利用“蛇”头去“吃掉”显示框体里的黑色“食物”),进行 3 次测试,依次吃掉 10 个食物,然后“自杀”结束游戏,观察弹出的对话框里显示的得分是否合理,测试的结果完全符合设计预期的效果,此功能成功实现。 附上实现该功能的代码: CString strTemp。 (_T(你的得分是: %d 分 \n 你的用时是: %d 秒 ),m_nCount,m_nTime)。 ( 6) 对“退出”按钮的测试 在游戏开始前、游戏运行过程中,点击“退出”按钮,成功退出 17 程序。 游戏结束后,弹出用时、得分对话框后会显示“退出”按钮,点击“退出”按钮,成功退出程序。 与设计预期效果一致,此功能成功实现。 ( 7) 部分重要代码: 游戏窗框的构建: void CtcsView::IniGame() { m_nLeft=40。 //左边界 m_nTop=30。 //上边界 m_nWidth=50。 //窗框宽度 m_nHeight=25。 //窗框高度 m_nSize=14。 //缩放比例 m_nDirect=1。 //运动方向,只能设定为 m_nCount=0。 //得分计数起始值 ()。 (CPoint(2,8))。 //蛇身的起始位置(共个) (CPoint(2,7))。 (CPoint(2,6))。 (CPoint(2,5))。 (CPoint(2,4))。 (CPoint(2,3))。 m_nTime=0。 m_nTime1=0。 srand(1)。 IniAim()。 } 蛇身、食物、时间、得分的定义: void CtcsView::OnDraw(CDC* pDC) { CtcsDoc* pDoc = GetDocument()。 ASSERT_VALID(pDoc)。 pDCSelectStockObject(WHITE_BRUSH)。 pDCRectangle(CRect(m_nLeft1,m_nTop1,m_nLeft+m_nWidth*m_nSize+1,m_nTop+m_nHeight*m_nSize+1))。 18 CString uStr。 (_T(用时: %d),m_nTime)。 //用时显示 (_T(得分: %d),m_nCount)。 //得分显示 pDCSelectStockObject(GRAY_BRUSH)。 //贪吃蛇颜色(黑 BLACK_BRUSH,深灰 DKGRAY_BRUSH,灰 GRAY_BRUSH,浅灰 LTGRAY_BRUSH,白 WHITE) pDCRectangle(CRect(m_nLeft+*m_nSize,m_nTop+*m_nSize,m_nLeft+(+1)*m_nSize,m_nTop+(+1)*m_nSize))。 for(int i=0。 i=()。 i++) { CPoint uPoint=(i)。 pDCRectangle(CRect(m_nLeft+*m_nSize,m_nTop+*m_nSize,m_nLeft+(+1)*m_nSize,m_nTop+(+1)*m_nSize))。 } } 五、 运行结果 游戏运行效果图: ( 1)游戏初始界面: 19 ( 2) 游戏运行时界面: ( 3) 游戏结束界面: 20 经过在 Visual Studio2020 环境中测试和排错后,应用程序没有出现错误。 PC 机和实验箱建立连接后,在 VS2020 中启动 Debug 按钮,选择相应设置, C++贪吃蛇应用程序顺利运行在 Windows CE 系统上,运行结果如下图: 六、附录 参考资料 《面向对象程序设计与 Visual C++ 教程》 《嵌入式系统设计与开发》 网上的相关资料 21 遇到的问题与解决方法 我们的程序是从 PC 上的 MFC 程序改编过来的。 在一开始把所有东西都搭建好,写好代码后,编译时发现大量的错误。 后来经过仔细的检查,发现了几个 方面的问题。 首先是一些由于疏忽导致的语法错误,例如漏了“;”或“:”等符号,类名函数名打错等。 第二个问题就是我们一些生成的对话框里面的字符串,都要换成相应的格式才能实现。 如: (你的得分是: %d 分 \n 你的用时是: %d 秒 ,m_nCount,m_nTime)。 要改成 (_T(你的得分是: %d 分 \n 你的用时是: %d 秒 ),m_nCount,m_nTime)。 第三个问题则是有一些使用到的函数在 WinCE 上没有定义,不能实现,需要换一种函数或 换一种方式来实现,如显示时间、显示分数用到的textout,我们最后把它改成了用对话框进行实现。 当我们把所有错误都修正,通过了编译之后,到实验箱里进行测试时,又遇到了更加棘手的问题。 一开始蛇的方向是用键盘的 a、 s、w、 d 和上下左右键来控制的,但实验箱的小键盘只有数字键和 abcd四个按键,而用 wince 屏幕上的键盘来控制又很不方便,我们就把代码中的控制按键改成了数字键 9。 但是当我们把修改后的程序 build 进去的时候,发现不能用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。