问日本单机飞机射击游戏戏

23.62G 类型:角色扮演语言:英文时间:日
156.1M 类型:动作射击语言:英文时间:2007年
49.5M297.5M63.0M728.1M385.1M
35.16G1.56G2.05G2.63G1.19G
周热门资讯
周热门大作关于飞机射击类游戏的设计原理&-&电脑爱好者&-&houang的博客&-&...
&众所周知,飞机射击类游戏几乎是我们接触到的第一类计算机游戏,不论是在街机中还是在计算机中,这一类游戏都是非常容易上手和招人喜爱的。就算是在这个即时战略游戏、3D第一视角游戏等盛行的年代,闲暇是玩玩打飞机的游戏也是很惬意的。
&&在这几天里学完了有关 DirectX
方面的知识后,就上手编了一下飞机射击的游戏。看起来好象很复杂,其实只不过是些数据结构的集合而已,还是比较容易实现的。
&&关于 DirectDraw
方面的编程,我就不想介绍了,因为任何一个人照本书看几天就可以编出象样的示范程序了,无非是在申请的2~3个表面上轮换贴图而已,WIN32
的 API 函数似乎已经让我们不需要花什么精力就可以实现非常平滑的动画了。
&&下面简单介绍一下设计方法,关键是PLAYER的飞机和敌人的飞机的控制,以及它们的子弹的控制。
&&很显然,用2个对象就可以实现它们的控制了。分别是PLAYER的飞机(可以是2架)、敌人的飞机。
&&PLAYER的飞机类:
class CPlayer
ptP&&&&//飞机坐标
struct bullet *stB //飞机所发出的所有子弹的链表
struct display PlaneD //即有关飞机的位图信息指针、飞机有效区域等信息
FreshBullet();&&&//定时刷新子弹链表,除去已经爆炸或消失的子弹
nO&&&&&//飞机油料
nS&&&&//飞机速度
int nDisplayS //显示方式,如果被击中,就转向爆炸状态,以便
&&&&&&&&&&&//飞机显示函数显示爆炸效果,比如,正常是1,
&&&&&&&&&&&//消失是0,而爆炸就是-15。这样,显示函数可以
&&&&&&&&&&&//单纯的按照这个植,在SUFFACE中计算图象位置
&&&&&&&&&&&//直接显示就可以了,每次+1,这样-15加了15次就
&&&&&&&&&&&//变成0了,动画也显示了,飞机也消失了,不需要
&&&&&&&&&&&//其他处理。这样的方法也可以用在子弹的处理上,
GetPos();&&&&&&&&//获取飞机的坐标
SetPos(CPoint);&&&&&&//社顶设定飞机坐标
void AddBullet(struct bullet*); //给飞机加入子弹,只要每隔设定的 TickTime
&&&&&&&&&&&&&&&&&//就加入一次,就可以形成连续的发弹效果
RunBullet();&&&&&&&&//每隔设定的
TickTime,按Bullet的属性更新
&&&&&&&&&&&&&&&&&//Bullet的坐标,就可以形成复杂的子弹效果
struct bullet* IsAttack(CPoint); //获取当前坐标是否有子弹,并返回子弹指针
&&&&&&&&&&&&&&&&&//这是为了判断敌机是否被击中所设计的函数
&&&&&&&&&&&&&&&&&//敌机只要将自己的坐标放入CPoint中,就可以
&&&&&&&&&&&&&&&&&//知道是否被击中,并且用指针设定子弹的状态
子弹的STRUCT
struct bullet
struct bullet* //指向下一个子弹
nS&&&&&//子弹的种类
nS&&&&&//子弹的速度
nD&&&//子弹的方向
nDisplayS&&//显示方式,如果击中目标,就转向爆炸状态,以便
&&&&&&&&&&&&//Runbullet函数显示爆炸效果,同上边的飞机处理方法一样
敌机的类和PLAYER的飞机类差不多,去掉油料等的属性,多加入一个MotionStyle属性,控制飞机的
飞行方式和攻击方式,如直线、斜线、曲线、SIN方式、跟踪方式等。再加入一个Run()方法,利用
MotionStyle在每个TickTime时,决定飞机坐标的变换方法,这样就可以很直观的控制飞机的飞行和攻击。
在判断双方是否被攻击时,只要先用PLAYER对象的IsAttack,将所有敌机对象的坐标放入其中,就可以
获取所有被PLAYER击中的飞机,反过来用所有敌机的对象调用IsAttack,将PLAYER飞机的坐标放入其中,
就可以知道PLAYER是否被击中。
至于是否被击中,可以单纯的用矩形来判断,完美的方法当然是用Rgn(区域)来判断,将飞机的轮廓变
成区域就可以了。
至于背景的设计就更简单了,只要用一个二维数组,每个数组单位中存放着位图的代号,通过一个代号与
位图RECT的映射,就可以产生一幅背景图了。如果想产生立体感,或者背景中的单位有遮盖现象,可以通过
设定优先级的方法,将优先级底的先画,然后画优先级高的,自然就可以产生立体效果了。更简单的方法就是
直接按从上往下(假设背景立体感是向上的)的顺序贴图,就可以了。&
本文转载:更多精彩资讯请参考我们的官网:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看: 5596|回复: 26
似乎PSV上即将有一款华丽的飞机射击游戏发售?
在线时间2718 小时
阅读权限70
帖子猥币巴士票
猥然不动 Lv.7, 积分 5869, 距离下一级还需 4131 积分
其实我还是很喜欢PSV主机的,只是期待的游戏一个比一个恶心。。。先是寂静岭,在是黑色行动,不过后面好象还有款游戏值得期待,名字只知道是全英文的,游戏类型是一款飞机射击,游戏厂商似乎是日本和匈牙利联合打造的,该游戏画面相当不错,作为2D画面,已经很出色了,因为我昨天看了游戏视频,绝对比那个什么黑色行动看着舒服。
在线时间205 小时
阅读权限40
帖子猥币巴士票
猥服出巡 Lv.4, 积分 816, 距离下一级还需 184 积分
到时看看,能先出试玩最好!!!!
在线时间3105 小时
阅读权限70
帖子猥币巴士票
猥然不动 Lv.7, 积分 5644, 距离下一级还需 4356 积分
明明2.5d好不
这辈子玩得最投入的游戏,猛汉和初音,实在是找不到第3个了。。。
在线时间2718 小时
阅读权限70
帖子猥币巴士票
猥然不动 Lv.7, 积分 5869, 距离下一级还需 4131 积分
大家看看,就是这个视频,这款游戏画面做的真不错,难度好象也很大
在线时间173 小时
阅读权限40
帖子猥币巴士票
猥服出巡 Lv.4, 积分 693, 距离下一级还需 307 积分
价格不高就买&&呵呵
猥币111920
在线时间5887 小时
阅读权限100
帖子猥币巴士票
看了一下视频,确实不错
猥币284120
在线时间3824 小时
阅读权限120
帖子猥币巴士票
这类型兴趣不大......
在线时间841 小时
阅读权限60
帖子猥币巴士票
猥人师表 Lv.6, 积分 3040, 距离下一级还需 1960 积分
好像没说什么时候出来~我最喜欢打飞机了~{:25:}
版??LOVEVAIS所有
在线时间2009 小时
阅读权限70
帖子猥币巴士票
猥然不动 Lv.7, 积分 9349, 距离下一级还需 651 积分
除非是东方系列th06-13移植,要不然我没什么兴趣……
在线时间1486 小时
头像被屏蔽
帖子猥币巴士票
提示: 作者被禁止或删除 内容自动屏蔽
小千金的癖好【普通成就】
作为大型玩具公司董事长女儿的我,只有在给小樱做漂亮衣服的时候,才能让我体会到作为一个有钱人的好处 (在猥皮大本营的加油站充过5汽油)
水元素【普通成就】
水、H2O、みず、water,额...总之怎么叫都行了
(累计发帖1000即可解锁)
常客【普通成就】
《我的业余生活》从前有一个论坛叫TGBUS…(在线时间超过1000小时)
正版党【光辉事迹】
不是咱要晒正版,实在是游戏太好玩(自曝拥有任意平台10款以上的正版游戏)
PS4首发纪念【稀有成就】
首发购入PS4!真索饭!特爽!特NB!(参加PS4专区首发自爆活动,即可获得此成就)
浮云爱好者【普通成就】
一朵,两朵,三朵,呵呵呵… (累计获得1000朵浮云)
管理团队【光辉事迹】
猥皮大本营管理团队特有的红色令牌。象征权力与责任的契约之证。(担任过论坛各级版主)
展会先锋【普通成就】
每当有游戏展会,我都有很多事情要做,根本停不下来!(参与任何游戏展会报道直播及其他相关内容制作)
成就猎人Rank.D【普通成就】
你已经踏上了成就收集的不归路,5个成就怎么可能满足你的需求,继续努力吧! (获得累计超过5个成就--不包括负面成就)
水精灵【稀有成就】
我很喜欢水,因为这就是我存在的意义...(累计发帖10000即可解锁)
Powered by

参考资料

 

随机推荐