- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
吴鉴鹰单片机项目实战精讲之俄罗斯方块旋转算法的坐标实现
1 引言
大家都知道!俄罗斯方块游戏是一个古老而著名的益智游戏。它的知名度迎来了
无数程序员青睐。旋转算法是该游戏实现的一个关键技术,现有的大多数算法都
是以数组为基本数据结构来实现方块的旋转。吴鉴鹰本文探讨了俄罗斯方块的另
一种实现方式,即尽量不用或着是少用数组的概念,而是用坐标来取代。并且重
点探讨一种算法叫做旋转算法。
2 程序基础
基块是本程序的最基本单位。程序的实现都是通过对基块的操作实现的。基块为
bs(basesize) bs
一个小正方形,其边长可设为 。而 就是本程序的粒度大小。设
正方形的中心代表整个方块。设游戏区为一个坐标区,则可通过一个坐标(X,
Y)就可以来定位基块,这里的坐标就是基块的中心坐标。由于基块是正方形的,
又一般画图函数都是以左上和右下定位图形,所以换算出左上角坐标
X-1/2*bs,Y+1/2*bs X+1/2*bs,Y-1/2*bs
( )和右下角坐标( )就可以画出基块。
X Y 7
因而定义一个接受 , 值的函数就可实现基块的定位及绘图。俄罗斯方块的
类方块都可以由基块组合而成,当然开发更多更具创意的方块也就比较容易了。
下面讨论程序的两个重要概念。定义2.1 绝对坐标系为上文提到的游戏区,坐
XY
标原点和 轴方向都是固定的。它在整个游戏过程中为基块提供确切的坐标。
定义2.2 相对坐标系。它的引入是为了简化旋转算法的实现。从下文旋转算法
XY
可 ,只要将该坐标系的原点和 轴方向改变,就可实现方块的旋转。故相对
坐
XY
标系的坐标原点, 轴方向都是可以改变的。该类坐标系原点逻辑原点坐标为
O (其在程序中透明),故实现时主要使用它的实际原点坐标 (该原点在绝对坐
标系中的坐标)。现假设其实际原点坐标为 (X,Y),设在该相对坐标系内的
x,y X+x,Y+y
一点坐标为( ),则该点的绝对坐标为( )。
1 7
图 俄罗斯游戏中的 类方块
7 1
首先为了说明的方便将 类方块编号如图 所示。
图1
5
由于 号方块的旋转只有一种状态,为了提高程序效率,
将其单独分为一类。其余方块另为一类。
现在通过实现俄罗斯方块的移动来看看上述设置
是如何运作的。现假设要移动的方块为田字类型。为其建立一个相对坐标系,设
其原点实际坐标为 ,将 , 值及方块的类型传递到一个处理函数。该函数根据
坐标原点,方块类型,计算出组成该方块的四个基块的中心坐标,再将该四个坐
标分别传递给四个基块处理函数,这样便可画出该类型的方块。现将方块向右移
动。就是整个相对坐标系向右移动一个 bs 的距离,即原点实际坐标变为
X+1,Y
( ),再按刚才的方法处理就可画出移动后的方块。至于前一个方块,可
以通过设置的
NOTXOR 绘图模式,再重绘前一个方块来实现。这样
7 类方块的左移,右移,下移便可简单的实现了。下面
7
讨论 类方块的旋转算法。
3 旋转算法的实现
旋转算法是游戏实现的一个关键技术,下面就讨论
俄罗斯方块旋转算法的实现。
5
五号方块只有一种状态,所以,旋转函数收到 号
7
方块时,不需做任何处理就可退出函数。是这 类中最简单的一种类型。
其他方块的旋转要分三步,第一步,将它们所在的
90°
坐标系逆时针旋转 ,第二步,将坐标原点向右偏移
一定
您可能关注的文档
- 税收规范性文件对税收上位法的扩充和限制解释现象探讨_曾昭君.pdf
- 税收事先裁定制度的理论基础与本土构建_朱大旗.pdf
- 我国税法行政解释制度之反思_伍劲松.pdf
- 刑法解释方法位阶性的质疑_周光权.pdf
- 刑法解释基本立场之检视_董邦俊.pdf
- A股私募基金绩效评价方法选择比较研究_刘建和.pdf
- 公募基金与阳光私募基金总体业绩评价_赵骄.pdf
- 管理期货私募基金表现优异_王梦丽.pdf
- 基金经理人特征与基金业绩_基于阳光私募基金的实证分析_陈明明.pdf
- 基于随机森林的基金评级模型选择_王志红.pdf
- 吴鉴鹰单片机项目实战精讲之基于12864 的贪吃蛇游戏的设计思路.pdf
- 吴鉴鹰单片机项目实战精讲之基于12864贪食蛇设计思路.pdf
- 吴鉴鹰单片机项目实战精讲之基于单片机驱动12864的正弦波的显示.pdf
- 吴鉴鹰单片机项目实战精讲之基于单片机数字时钟.pdf
- 吴鉴鹰单片机项目实战精讲之基于单片机微机键盘的运用.pdf
- 吴鉴鹰单片机项目实战精讲之基于单片机摇摇棒设计.pdf
- 吴鉴鹰单片机项目实战精讲之美女图片的显示.pdf
- 吴鉴鹰单片机项目实战精讲之如何看懂时序图.pdf
- 吴鉴鹰单片机项目实战精讲之如何提高单片机的抗干扰能力.pdf
- 吴鉴鹰单片机项目详细解析系列连载之基于单片机的便携燃气报警器设计.pdf
原创力文档


文档评论(0)