《捕鱼达人》游戏制作要点浅析(一) 思路分析
注:本文不谈程序,只谈思路
一、思想斗争
《捕鱼达人》这款游戏做的的确不错,相信许多人都已经玩过了。但是作为一个业余“码男”的我,玩玩怎么能尽兴,梦想自己也能写出这么一个还算是不错的游戏。终于在一个月黑风高的夜晚,我摩拳擦掌,跃跃欲试,YY良久,决定对它下黑手了!!!YY也许容易,但是老虎咬刺猬,无从下口啊,以前也没有开发过类似的游戏,肿么办!!!!没有头绪就先屡出头绪来,好了,现在开始!!!!
二、结构元素的分析
先分析下这个游戏的主要组成元素:场景、鱼、炮弹、炮台、激光塔、渔网、金币、还有那个销魂的背景音乐。元素看似不少,其实也就两种:动作元素和路径元素。动作元素——是指位置不变,但是动态显示的元素,是有活力的。路径元素——为动态或者静态的元素提供路径支持。
现在看一下这两种元素是如何表达上面的元素(场景、鱼、炮弹、炮台等)的,以游动的鱼为例:
鱼:多帧图片组成动作元素,用来展示鱼的生机,比如尾巴摆动;
游动:一列点组成路径元素,比如直线、曲线(用连续的分段向量表示)等。
看完这两幅图片,大家肯定就有想法了。实现播放一张连续的png图片来表示鱼,将鱼从上面的轨迹始端移动到末端就完成的游动的鱼,其他元素类似。像炮台连移动都省掉了。轨迹是由多段直线组成,问题又简化了,只要实现一条线段的移动,其他就都OK了。具体实现比较easy,唯一注意一点的是,路线是有方向的,计算鱼的位置需要用cos计算角度,用sin判断象限进行角度纠正。Cos象限方向为:正负负正,角度范围为0~180。Sin象限方向为:正负正负,角度范围为-90~90。单用cos或者sin是不正确的。
另外,鱼是有生命周期TTL的,当鱼游出边界或者被捕捞后,生命结束。
三、元素间的相互作用(碰撞检测)
炮弹和渔网可以打渔,炮弹从可转向的炮台发射,鱼被捕后显示动画金币,,,,,,
上面的炮弹和渔网可以捕鱼是最难得一个,其余都比较easy。有人不禁会说,将鱼看成是矩形,检测炮弹碰到鱼不就可以了么?没错,捕鱼达人里面也的确是这样做的,但是有一点估计大家没有想到,先看图:
这种情况下很容易判断炮弹(黑点)在鱼(矩形区域)内。但是下面这种情况要怎么判断呢?
这种情况需要利用矩阵运算对矩形和黑点同时进行绕原点O的旋转,旋转角度如图,这样就转换为上面那种简单的情况了。
但是如果出现下面这种情况要怎么办呢?已知矩形在X1OY1坐标系中的位置,黑点在XOY坐标系中的位置,O1点在XOY坐标系中的位置,图中所示的夹角大小。怎样判断炮弹在矩形区域中呢?
这种情况先我们不转换矩形,而是将黑点旋转并平移转换到X1OY1坐标系,然后又和上面情况一样了,简单吧!!!利用矩阵计算可以大大的简化运算量,爽!!大学没白念!!!
好了,先说这么多,具体系统如何搭建,算法在程序中如何实现,下篇再说,^_^~~~~~~
《捕鱼达人》游戏制作要点浅析(一) 思路分析相关推荐
- Java 编写捕鱼达人游戏 窗体程序 完整源码
今天为大家分享捕鱼达人游戏的开发与制作,目前是单机版游戏,后续时间空了,会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为J ...
- html5游戏开发 网页版-捕鱼达人游戏源码下载
html5游戏开发 网页版-捕鱼达人游戏源码下载 来玩一把! 转载于:https://www.cnblogs.com/jsfoot/p/3215371.html
- html5 canvas简易版捕鱼达人游戏源码
插件描述:html5利用canvas写的一个js版本的捕鱼,有积分统计,鱼可以全方位移动,炮会跟着鼠标移动,第一次打开需要鼠标移出背景图,再移入的时候就可以控制炮的转动,因为是用的mouseover触 ...
- Android开源项目:捕鱼达人游戏源代码
Android开源项目:捕鱼达人游戏源代码 这是一个Android上的开源项目:捕鱼达人游戏源代码,github上的地址链接是:https://github.com/zhangphil/Andr ...
- 基于Java+Swing实现捕鱼达人游戏(含课程报告)
基于Java+Swing实现捕鱼达人游戏(含课程报告) 一.系统介绍 1.开发背景 2.基本内容.实现方法及主要技术实现目标 3实现目标 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 1.开 ...
- 精仿高仿捕鱼达人游戏Android源码
给大家分享一款精仿高仿捕鱼达人游戏源码,Android版,喜欢开发游戏的朋友可以下载学习,研究一下. 下载地址: http://code.662p.com/view/buyudaren.html
- 用cocos2dx做一个简单的单机捕鱼达人游戏(1)
用cocos2dx做一个简单的单机捕鱼达人游戏(1) 我使用了cocos2dx 3.9版本和vs2017来开发 今天先做游戏开始界面 开始界面很简单,一个背景图,一个logo,3个button(三种登 ...
- 通过捕鱼达人游戏学习Java
项目视频: Java项目捕鱼达人游戏 项目结构: 功能分析: 一.背景功能 1.Pool类:新建Pool类,池塘对象 2.特征,池塘环境,BufferedImageIO bg; ...
- java捕鱼达人_java实现捕鱼达人游戏
本文实例为大家分享了java实现捕鱼达人游戏的具体代码,供大家参考,具体内容如下 效果图如下: 源代码分享: 测试类: package game; import java.awt.image.Buff ...
最新文章
- php 将换行符替换,PHP替换回车换行符的三种方法
- Device Tree(一):背景介绍
- Linux 系统下载和安装 rarlinux
- 东京组委会“友情提示”:奖牌是用回收金属做的不能吃!别咬了
- PHP目前比较常见的五大运行模式
- eclipse断点Source not found解决方案1,2,3
- 【Kettle】Kitchen和Pan的命令行参数
- 使用CrossFTP跨越不同站点复制/移动数据
- 信号量函数(semget、semop、semctl)
- delphi 发送网络消息_分布式系统与消息的投递
- HTTP协议解说以及TCP/IP认识
- R与RStudio的详细安装教程(有每一步的详细教程!!!!)
- 悉尼大学计算机专业本科学费,悉尼大学
- Codeforces Round #433 (Div. 1, based on Olympiad of Metropolises) C. Boredom(主席树)
- php 协成wifi_WIFI_YIXI2 协成WIFI营销系统2 - 下载 - 搜珍网
- android xcl charts,我写的Android图表库XCL-Charts,整理好现在开源了!!!
- oracle自动建立分区interval,使用Oracle 11g创建Interval分区表(转)
- 如何写一个Vue自定义指令
- 西山小菜鸟之Scrapy学习笔记---爬取企查查网公司的裁判文书信息
- 主板后置音频接口图解_不用再看说明书 机箱主板接线全攻略