下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

射击类游戏的编程设计原理

作者:课课家教育     来源: http://www.kokojia.com点击数:2046发布时间: 2016-05-06 08:27:34

标签: 游戏设计的100个原理射击类游戏DirectDraw

  喜爱游戏的朋友,在感叹所接触的游戏的精妙时,一定有过自己设计一款游戏的冲动吧?学完这边教程,不要光是想,学了之后马上实践起来吧!

     众所周知,飞机射击类游戏几乎是我们接触到的第一类计算机游戏,不论是在街机中还是在计算机中,这一类游戏都是非常容易上手和招人喜爱的。就算是在这个即时战略游戏、3D第一视角游戏等盛行的年代,闲暇是玩玩打飞机的游戏也是很惬意的。

射击类游戏的编程设计原理_游戏设计的100个原理_射击类游戏_DirectDraw_课课家

  在这几天里学完了有关DirectX方面的知识后,就上手编了一下飞机射击的游戏。看起来好象很复杂,其实只不过是些数据结构的集合而已,还是比较容易实现的。

  关于DirectDraw方面的编程,我就不想介绍了,因为任何一个人照本书看几天就可以编出象样的示范程序了,无非是在申请的2~3个表面上轮换贴图而已,WIN32的API函数似乎已经让我们不需要花什么精力就可以实现非常平滑的动画了。

  下面简单介绍一下设计方法,关键是PLAYER的飞机和敌人的飞机的控制,以及它们的子弹的控制。

  很显然,用2个对象就可以实现它们的控制了。分别是PLAYER的飞机(可以是2架)、敌人的飞机。

  PLAYER的飞机类:

  敌机的类和PLAYER的飞机类差不多,去掉油料等的属性,多加入一个MotionStyle属性,控制飞机的飞行方式和攻击方式,如直线、斜线、曲线、SIN方式、跟踪方式等。再加入一个Run()方法,利用MotionStyle在每个TickTime时,决定飞机坐标的变换方法,这样就可以很直观的控制飞机的飞行和攻击。在判断双方是否被攻击时,只要先用PLAYER对象的IsAttack,将所有敌机对象的坐标放入其中,就可以获取所有被PLAYER击中的飞机,反过来用所有敌机的对象调用IsAttack,将PLAYER飞机的坐标放入其中,就可以知道PLAYER是否被击中。

  至于是否被击中,可以单纯的用矩形来判断,完美的方法当然是用Rgn(区域)来判断,将飞机的轮廓变成区域就可以了。至于背景的设计就更简单了,只要用一个二维数组,每个数组单位中存放着位图的代号,通过一个代号与位图RECT的映射,就可以产生一幅背景图了。如果想产生立体感,或者背景中的单位有遮盖现象,可以通过设定优先级的方法,将优先级底的先画,然后画优先级高的,自然就可以产生立体效果了。更简单的方法就是

  直接按从上往下(假设背景立体感是向上的)的顺序贴图,就可以了。

     结语:

     教程到此为止,如果你需要了解更多的学习资讯,欢迎关注课课家“游戏开发”板块。

赞(14)
踩(5)
分享到:
华为认证网络工程师 HCIE直播课视频教程