《捕鱼达人》游戏制作要点浅析(一) 思路分析

5 篇文章 0 订阅
1 篇文章 0 订阅



注:本文不谈程序,只谈思路

一、思想斗争

《捕鱼达人》这款游戏做的的确不错,相信许多人都已经玩过了。但是作为一个业余“码男”的我,玩玩怎么能尽兴,梦想自己也能写出这么一个还算是不错的游戏。终于在一个月黑风高的夜晚,我摩拳擦掌,跃跃欲试,YY良久,决定对它下黑手了!!!YY也许容易,但是老虎咬刺猬,无从下口啊,以前也没有开发过类似的游戏,肿么办!!!!没有头绪就先屡出头绪来,好了,现在开始!!!!

二、结构元素的分析

先分析下这个游戏的主要组成元素:场景、鱼、炮弹、炮台、激光塔、渔网、金币、还有那个销魂的背景音乐。元素看似不少,其实也就两种:动作元素和路径元素。动作元素——是指位置不变,但是动态显示的元素,是有活力的。路径元素——为动态或者静态的元素提供路径支持。

现在看一下这两种元素是如何表达上面的元素(场景、鱼、炮弹、炮台等)的,以游动的鱼为例:

鱼:多帧图片组成动作元素,用来展示鱼的生机,比如尾巴摆动;


游动:一列点组成路径元素,比如直线、曲线(用连续的分段向量表示)等。


看完这两幅图片,大家肯定就有想法了。实现播放一张连续的png图片来表示鱼,将鱼从上面的轨迹始端移动到末端就完成的游动的鱼,其他元素类似。像炮台连移动都省掉了。轨迹是由多段直线组成,问题又简化了,只要实现一条线段的移动,其他就都OK了。具体实现比较easy,唯一注意一点的是,路线是有方向的,计算鱼的位置需要用cos计算角度,用sin判断象限进行角度纠正。Cos象限方向为:正负负正,角度范围为0~180Sin象限方向为:正负正负,角度范围为-90~90。单用cos或者sin是不正确的。

另外,鱼是有生命周期TTL的,当鱼游出边界或者被捕捞后,生命结束。

三、元素间的相互作用(碰撞检测)

炮弹和渔网可以打渔,炮弹从可转向的炮台发射,鱼被捕后显示动画金币,,,,,,

上面的炮弹和渔网可以捕鱼是最难得一个,其余都比较easy。有人不禁会说,将鱼看成是矩形,检测炮弹碰到鱼不就可以了么?没错,捕鱼达人里面也的确是这样做的,但是有一点估计大家没有想到,先看图:


这种情况下很容易判断炮弹(黑点)在鱼(矩形区域)内。但是下面这种情况要怎么判断呢?


这种情况需要利用矩阵运算对矩形和黑点同时进行绕原点O的旋转,旋转角度如图,这样就转换为上面那种简单的情况了。

但是如果出现下面这种情况要怎么办呢?已知矩形在X1OY1坐标系中的位置,黑点在XOY坐标系中的位置,O1点在XOY坐标系中的位置,图中所示的夹角大小。怎样判断炮弹在矩形区域中呢?


这种情况先我们不转换矩形,而是将黑点旋转并平移转换到X1OY1坐标系,然后又和上面情况一样了,简单吧!!!利用矩阵计算可以大大的简化运算量,爽!!大学没白念!!!

好了,先说这么多,具体系统如何搭建,算法在程序中如何实现,下篇再说,^_^~~~~~~

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值