网站大量收购独家精品文档,联系QQ:2885784924

贪吃蛇游戏设计.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

基于DSP的贪吃蛇游戏设计

班级:13级7班

学号:

姓名:梁检满

一、实验目的

1.熟练掌握C6713的中断结构和对中断的处理过程。

2.熟练掌握C6713定时器的控制和使用方法。

3.熟练掌握键盘的使用原理及编程方法。

4.熟练掌握使用C6713DSP的扩展空间控制外围设备信息的方法;掌握蜂鸣器发声原理和音乐发生方法;掌握液晶显示器的显示控制原理及编程方法。

5.掌握C6713的系统自启动设计方法。

6.熟练掌握C语言开发DSP程序的流程及调试方法。

二、实验设备

计算机,ICETEK-C6713-EDU实验箱,示波器。

三、实验内容

3.1贪吃蛇概述

“贪吃蛇”是一个产生于1970年代中后期的计算机游戏,也叫贪吃蛇。在游戏中,玩家操控一条细长的蛇爬行于一个带边界的平面之上,一路拾起碰到之事物或其他类似的物件,并要防止触到自身或者包围着游戏区的“墙”。每次贪吃蛇吃到一件食物,它的身体便增长一些,这让游戏的难度逐渐变大。操控贪吃蛇时,玩家操控贪吃蛇头部的朝向〔向上、向下、向左或向右〕控制贪吃蛇的进行方向,贪吃蛇的身体将跟着其头部移动。另外,玩家不可在游戏中途停止贪吃蛇的进行。随着贪吃蛇的成功移植到系统,贪吃蛇的操作按键要求与实际按键的完美匹配,使贪吃蛇游戏风行起来。

玩家控制贪吃蛇在屏幕上移动,角色只能向左、右方向90度转弯,一旦碰到墙壁或身任何部位就失败。玩家通过吃随机出现的食物来获取分数,同时贪食蛇的长度也会随着增加。吃的越多,获得的分数越高,同时蛇身也越长。

3.2贪吃蛇设计原理

本次课程设计是基于ICETEK-C6713-A评估板的贪吃蛇设计。

设计关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用一节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。

贪吃蛇的数据结构位数组

#includelimits.h/*forCHAR_BIT*/

#defineBITMASK(b)(128((b)%CHAR_BIT))

#defineBITSLOT(b)((b)/CHAR_BIT)

#defineBITSET(a,b)((a)[BITSLOT(b)]|=BITMASK(b))

#defineBITCLEAR(a,b)((a)[BITSLOT(b)]=~BITMASK(b))

#defineBITTEST(a,b)((a)[BITSLOT(b)]BITMASK(b))

#defineBITNSLOTS(nb)((nb+CHAR_BIT-1)/CHAR_BIT)

//nb从1开始,nb-1从0开始,符合一个字节里的8位在一个CHAR_BIT里的要求。+CHAR_BIT是为了符合C的数组第一个元素都是从0开始的要求。

食物的随机产生

voidfood()

{

srand((unsigned)time(0));

SnakeFoodPosition=rand()%(64*128-1);

while(BITTEST(Ground.bitarray,SnakeFoodPosition))

{

SnakeFoodPosition+=SnakeLong;

SnakeFoodPosition=SnakeFoodPosition%(64*128-1);

}

BITSET(Ground.bitarray,SnakeFoodPosition);

draw(BITSLOT(SnakeFoodPosition));

}

3.3中断原理

外中断区别于计时器等片内设备中断,它来源于DSP片外,属于硬件中断。外中断信号通过DSP器件封装上的专用管脚输入DSP,属于可屏蔽中断。TMS3206713DSP有三个外中断:EXT_INT4~EXT_INT7,如果CPU允许,这四个信号线上的低脉冲信号会中断CPU。

ICETEK-C6713-A板的外中断

在外中断EXT_INT4~EXT_INT7中ICETEK-C6713-A板占用了EXT_INT4,其他中断引脚被引到扩展插座P4上供用户扩展、使用。

3.3.2

文档评论(0)

199****4744 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档