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

一、思想斗争

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

二、结构元素的分析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Java 编写捕鱼达人游戏 窗体程序 完整源码

    今天为大家分享捕鱼达人游戏的开发与制作,目前是单机版游戏,后续时间空了,会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为J ...

  2. html5游戏开发 网页版-捕鱼达人游戏源码下载

    html5游戏开发 网页版-捕鱼达人游戏源码下载 来玩一把! 转载于:https://www.cnblogs.com/jsfoot/p/3215371.html

  3. html5 canvas简易版捕鱼达人游戏源码

    插件描述:html5利用canvas写的一个js版本的捕鱼,有积分统计,鱼可以全方位移动,炮会跟着鼠标移动,第一次打开需要鼠标移出背景图,再移入的时候就可以控制炮的转动,因为是用的mouseover触 ...

  4. Android开源项目:捕鱼达人游戏源代码

     Android开源项目:捕鱼达人游戏源代码 这是一个Android上的开源项目:捕鱼达人游戏源代码,github上的地址链接是:https://github.com/zhangphil/Andr ...

  5. 基于Java+Swing实现捕鱼达人游戏(含课程报告)

    基于Java+Swing实现捕鱼达人游戏(含课程报告) 一.系统介绍 1.开发背景 2.基本内容.实现方法及主要技术实现目标 3实现目标 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 1.开 ...

  6. 精仿高仿捕鱼达人游戏Android源码

    给大家分享一款精仿高仿捕鱼达人游戏源码,Android版,喜欢开发游戏的朋友可以下载学习,研究一下. 下载地址: http://code.662p.com/view/buyudaren.html

  7. 用cocos2dx做一个简单的单机捕鱼达人游戏(1)

    用cocos2dx做一个简单的单机捕鱼达人游戏(1) 我使用了cocos2dx 3.9版本和vs2017来开发 今天先做游戏开始界面 开始界面很简单,一个背景图,一个logo,3个button(三种登 ...

  8. 通过捕鱼达人游戏学习Java

    项目视频: Java项目捕鱼达人游戏 项目结构: 功能分析: 一.背景功能     1.Pool类:新建Pool类,池塘对象     2.特征,池塘环境,BufferedImageIO bg;    ...

  9. java捕鱼达人_java实现捕鱼达人游戏

    本文实例为大家分享了java实现捕鱼达人游戏的具体代码,供大家参考,具体内容如下 效果图如下: 源代码分享: 测试类: package game; import java.awt.image.Buff ...

最新文章

  1. php 将换行符替换,PHP替换回车换行符的三种方法
  2. Device Tree(一):背景介绍
  3. Linux 系统下载和安装 rarlinux
  4. 东京组委会“友情提示”:奖牌是用回收金属做的不能吃!别咬了
  5. PHP目前比较常见的五大运行模式
  6. eclipse断点Source not found解决方案1,2,3
  7. 【Kettle】Kitchen和Pan的命令行参数
  8. 使用CrossFTP跨越不同站点复制/移动数据
  9. 信号量函数(semget、semop、semctl)
  10. delphi 发送网络消息_分布式系统与消息的投递
  11. HTTP协议解说以及TCP/IP认识
  12. R与RStudio的详细安装教程(有每一步的详细教程!!!!)
  13. 悉尼大学计算机专业本科学费,悉尼大学
  14. Codeforces Round #433 (Div. 1, based on Olympiad of Metropolises) C. Boredom(主席树)
  15. php 协成wifi_WIFI_YIXI2 协成WIFI营销系统2 - 下载 - 搜珍网
  16. android xcl charts,我写的Android图表库XCL-Charts,整理好现在开源了!!!
  17. oracle自动建立分区interval,使用Oracle 11g创建Interval分区表(转)
  18. 如何写一个Vue自定义指令
  19. 西山小菜鸟之Scrapy学习笔记---爬取企查查网公司的裁判文书信息
  20. 主板后置音频接口图解_不用再看说明书 机箱主板接线全攻略

热门文章

  1. 冯唐:职场人35岁以后,方法论比经验重要
  2. 美团一面-20200328-1h
  3. 来自朋友圈的“精神食粮”
  4. Sidetree协议
  5. MIT6.828学习之homework2:shell
  6. WEB渗透测试(一)被动信息收集3(RECON-NG)
  7. 对比两张表的数据并筛选出数据不同的
  8. 搞计算机的真的不配拥有爱情吗。这是她给我留下的最后一段话
  9. LabVIEW开发FPGA参考框架
  10. 新年亲朋好友最经典的“互相伤害”,你中过几条?