气泡捕鱼策划文档_第1页
气泡捕鱼策划文档_第2页
气泡捕鱼策划文档_第3页
气泡捕鱼策划文档_第4页
气泡捕鱼策划文档_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、气泡捕鱼策划文档宋云一、概述1.1 简介这是一款休闲类型的游戏,通过触摸屏幕吹大气泡,气泡上升会罩住在水里游动的鱼。运气好的话捕鱼成功。捕鱼成功的几率和一个气泡可以容纳鱼的数量取决于气泡发射器的等级。可以使用金币升级气泡发射机,发射气泡消耗泡沫瓶中的空气。泡沫瓶可以使用金币购买。可以使用蓝宝石购买高级泡沫瓶和高级特技,钻石可以在捕鱼中小概率获得,也可以通过完成广告任务获得。1.2 玩法触摸屏幕后,气泡发射机开始将气泡不断吹大;释放触摸后气泡将逐渐上升。遇到一定等级范围内的鱼时如果气泡内还能容得下其他鱼则将鱼捕捉到气泡内。气泡最终上升至水面气泡里的鱼将都被捕捉到,然后获得相应金币。金币可以用来设

2、计气泡发射机,这样气泡发射机就能够捕捉更多的鱼,或者捕捉等级更高的鱼。气泡发射机发射气泡需要消耗泡沫瓶中的空气,金币还可以用来购买泡沫瓶。成功捕捉鱼后还会获得相应的能量值,能量值聚满后可以使用特技随机释放大量大小不等等级不同的气泡。有一些鱼可能会产下红宝石,获得红宝石可以升级特技和购买大容量高级泡沫瓶。升级特技可以增加特技产生的气泡量或提高最高气泡等级。二、游戏机制2.1 气泡发射机和泡沫瓶气泡发射机用于发射气泡,泡沫瓶为气泡发射机提供原料。2.1.1 气泡发射机科技树气泡发射机的升级分为两类:更大、更强。其中升级更大可以增加气泡直径,这样可以更容易接触到鱼。同时没升几级便可以提高单个气泡捕鱼

3、上限。升级更强则气泡更坚固更强大,捕捉到等级更高的鱼的几率越高。等级更大(直径,捕鱼上限)消耗(金币)更强(气泡强度)消耗(金币)050200016021001500270320022000380340038000490380043500051004200051300006120440006600000714048000724000008160520000810000000920061000009500000002.1.3 泡沫瓶泡沫瓶消耗计算公式:消耗=(气泡直径100)2×气泡强度等级容量价格(金币)15L150210L300320L600440L11005100L2500高级泡

4、沫瓶容量价格(蓝宝石)6400L171000L282000L494000L71010000L152.1.4 捕捉 设相交率=(相交面积/鱼面积)则:相交率=1.1.圆矩形在鱼矩形内=圆面积鱼面积2.矩形在圆矩阵内=12.左下角在圆矩阵内=0.5×flx-brx×(fby-bty)鱼面积3.右下角在圆矩阵内=0.5×frx-blx×(fty-bby)鱼面积当相交率达到30%时,开始进行进行判定捕捉几率=(e气泡强度/e鱼等级)3每条鱼只有两次判定机会,超过两次没有捕捉到,那么这条鱼不会再被捕捉到。气泡上升速率 = 3×(气泡直径100)2+0.3

5、2.2 特技当能量值聚满后,可以使用特技。使用红宝石可以升级特技。等级更多消耗(蓝宝石)更好(气泡等级,强度)消耗(蓝宝石)11001,10215102,25320253,310425604,4155301505,5256,6407,7658,81059,917010,102752.3 成就2.3.1 第一次成就ID第一次成就条件奖励0第一条鱼捕捉第一条鱼50金币0红宝石1小粉的第一次第一次捕捉小粉0金币1红宝石2绿小丑鱼的第一次第一次捕捉绿小丑鱼0金币2红宝石3蓝小丑鱼的第一次第一次捕捉蓝小丑鱼0金币2红宝石4红小丑鱼的第一次第一次捕捉红小丑鱼0金币2红宝石5大胖鱼的第一次第一次捕捉大胖鱼0

6、金币3红宝石6四眼的第一次第一次捕捉四眼0金币3红宝石7宋大胖的第一次第一次捕捉宋大胖0金币4红宝石8二傻的第一次第一次捕捉二傻0金币5红宝石9大眼鱼的第一次第一次捕捉大眼鱼0金币5红宝石10骨一条的第一次第一次捕捉骨一条0金币6红宝石11粉美丽的第一次第一次捕捉粉美丽0金币7红宝石12乐美丽的第一次第一次捕捉乐美丽0金币7红宝石13高美丽的第一次第一次捕捉高美丽0金币7红宝石14东大脑袋的第一次第一次捕捉东大脑袋0金币8红宝石15平大脑袋的第一次第一次捕捉平大脑袋0金币8红宝石16黄尾燕的第一次第一次捕捉黄尾燕0金币9红宝石17金砖龟的第一次第一次捕捉金砖龟0金币10红宝石18小喵的第一次第

7、一次捕捉小喵0金币10红宝石19第一次更大第一次升级气泡发射机更大0金币1红宝石20第一次更强第一次升级气泡发射机更强0金币1红宝石21泡沫瓶的第一次第一次购买泡沫瓶0金币1红宝石22红宝石的第一次第一次消耗红宝石0金币5红宝石23特技的第一次第一次使用特技0金币2红宝石24第一次更多第一次升级特技的更多0金币5红宝石25第一次更好第一次升级特技的更好0金币5红宝石26木有第一次了完成所有第一次成就0金币20红宝石2.3.2 累计成就ID累计成就条件奖励1十夫长累计捕捉10条鱼100金币1红宝石2百夫长累计捕捉100条鱼1千金币2红宝石3千夫长累计捕捉1000条鱼1万金币3红宝石4万夫长累计捕

8、捉10000条鱼10万金币4红宝石5鱼儿恨透你累计捕捉10万条鱼100万金币5红宝石610L累计消耗10L泡沫瓶200金币1红宝石7100L累计消耗100L泡沫瓶2000金币2红宝石81000L累计消耗1000L泡沫瓶20000金币3红宝石9泡沫中毒累计消耗10000L泡沫瓶200000金币4红宝石10泡沫中毒晚期累计消耗100000L泡沫瓶2000000金币5红宝石11新人泡手累计游戏时间10分钟100金币1红宝石12初级泡人累计游戏时间100分钟1000金币10红宝石13中级泡兵累计游戏时间1000分钟10000金币100红宝石14高级泡将累计游戏时间10000分钟100000金币1000

9、红宝石15骨灰泡帝累计游戏时间100000分钟1000000金币10000红宝石16人才啊完成所有累计成就5000000金币10000红宝石2.4 鱼类1 0 500/50=102 50 2000/50=403 50 8000/100=804 100 35000/150=2305 150 130000/250=5206 250 600000/400=12507 400 2400000/650=36008 650 10000000/1050=95009 1050 50000000/1700=2000010 1700ID等级名称尺寸收入(金币,红宝石)11小粉32,1610,0.00122绿小丑鱼

10、48,2430,032蓝小丑鱼48,2435,042红小丑鱼48,2440,053大胖鱼54,4580,063四眼50,3990,074宋大胖65,58230,0.585二傻140,60500,095大眼鱼86,64500,0.1106骨一条150,601200,0.2117粉美丽65,323400,0127乐美丽65,323500,0137高美丽32,653600,0148东大脑袋98,489000,0158平大脑袋98,489500,0169黄尾燕98,7820000,0.21710金砖龟297,144100000,01810小喵130,800,1三、人工智能四、游戏进程整个游戏的操作过程

11、如下:4.1游戏界面基本的游戏背景如下,气泡发射机放在中间的圆环区域,左侧是当前金币以及蓝宝石的数量,右侧是聚集能量发射特技的界面,右上角虽然空白但是是需要防止商店入口。五、系统功能六、程序设计6.1 实现无限气泡发射机气泡发射机类:BubbleLaunch。负责气泡的发射气泡类:Bubble。 负责单个气泡气泡管理类:BubbleManager。负责接收用户输入,创建气泡,连接气泡发射机吹气泡。事件触发流程:6.2 鱼儿游啊游鱼儿发起类:FishLaunch,负责生成鱼类队形和运动。鱼儿类:Fish,管理单个鱼类。鱼儿:FishManager,负责管理成群鱼类合适出现。管理出现鱼类的最高等级

12、,管理出现多少条鱼,什么时候出现。适当的实际FishManager调用FishLaunch定义到的生成某种特定规则的鱼群。6.2.1 你应该出现,你不应该出现话说我一个1级的小气泡,你个10级的大金砖龟老出现个什么劲啊。看着眼馋我还抓不到。因此我们应该考虑到用户的感受,等级低的时候不要经常出高级的鱼。引入抓鱼经验,没抓一条鱼增长一点经验。等级经验001100215032004500580061300721008340095000当处于level等级时,出现等级为0-level+1的鱼,有万分之一的几率出现高级鱼。6.2.2 保持队形鱼儿总是在随机位置出现朝一个方向游的话太无聊了,让他们排好队形

13、多好!为了实现着呢,超出边界检测的代码要改改了!当鱼儿向右游动时只检测右边界,向左移动时只检测左边界。6.2.2.1随便来几条在场景两侧随便生成几条鱼,randomFish(int num,int cs,int maxlevel)6.2.2.2一条直线oneRowfish(int num,int cs,int maxlevel),生成一条直线的鱼儿规律为中间鱼儿等级最小两边鱼儿等价高,这样就需要先实现一组摇摆数列,我们需要先确认数组的中间位置,数组有num个数,首下标为0,那么最中间的数下标应该为p=(num-1)/2取整。假设当前num=9,p=(9-1)/2=4,摇摆数组如下:Idpdp0

14、4115-223336-442557-661778-8800dp可以由循环标识i确定,当i为偶数时dp=(i+1),当i为奇数是dp=-(i+1)。计算每种鱼生成几条,由于level的最小标号仍然为0,则eachnum=num/(maxlevel+1)。这样通过一个变量each=eachnum,然后每生成一条鱼就自减,等于0是要生成的鱼id加一,再次将each赋值为eachnum,即可。6.2.2.3 “>”“”“/”型前进基于一条直线先生成一条实现上的N条鱼,而后修改鱼的位置成>或<型。int mid = (num-1)/2;int dx = 0;if(direct=Fis

15、h.LEFT)dx = 200/num;else if(direct=Fish.RIGHT)dx = -200/num;for(int i=0;i<fishes.length;i+)if(i<=mid)fishesi.offXY(dx*(mid-i), 0);elsefishesi.offXY(dx*(mid-num+i), 0);同理对于型:int dx = -200/num;if(direct=Fish.LEFT)for(int i=0;i<num;i+)fishesi.offXY(dx*(i-num), 0);else if(direct=Fish.RIGHT)for(

16、int i=0;i<num;i+)fishesi.offXY(dx*i, 0);/型:int dx = 200/num;if(direct=Fish.LEFT)for(int i=0;i<num;i+)fishesi.offXY(dx*i, 0);else if(direct=Fish.RIGHT)for(int i=0;i<num;i+)fishesi.offXY(dx*(i-num), 0);6.3 抓住小鱼儿冲突检测部分理论上可以再再BubbleManager和FishManager任意一个类里,为了区别类的任务,新建一个类BubbleCatchFish类。为Bubbl

17、eManager和FishManager添加getBubbles和getFishes函数。为Bubble类添加catchedFish数组,记录该气泡捕捉到的鱼类。为Bubble类添加catchFish函数,计算对某一条鱼的捕捉。6.4 鱼儿快跑遇到气泡抓你怎么办?扭头就跑啊!为Fish添加runFromCatch函数,当每次Bubble判定抓鱼失败时调用!public void runFromCatch()this.dx = -2*this.dx;this.dy = -2*this.dy;if(state=LEFT)state = RIGHT;else if(state=RIGHT)state

18、 = LEFT;6.5 天上掉钱啦突然发现Launch、Manager这个模式不错,继续沿用。金币类:Gold,处理掉落金币的运动轨迹特效等。金币生成类:GoldLaunch,按照要获得的金钱数,生成相应的金币。金币管理类:GoldManager,负责管理金币的显示更新和消失。Gold金币数量<1001<5002<10003<40004<200005>=2000010显示排列如图所示:代码:public static final float p1 = 0,0;public static final float p2 = 0,0,24,0;public sta

19、tic final float p3 = 0,0,16,16,32,0;public static final float p4 = 0,0,24,0,0,24,24,24;public static final float p5 = 0,0,12,12,24,24,24,0,36,12,36,0;public static final float p10 = 0,0,12,12,24,24,36,36,24,0,36,12,48,24,36,0,48,12,48,0;在Gold中还需要处理两种特效:直线运动、缩放。我们在生成Gold时设定它的起始位置,默认缩放从1.0f到0.5f,以及要多少

20、步达到目标。我们在判断是否到达目标位置时使用下面的公式:if(Math.abs(fp0-tp0)<=dp0&&Math.abs(fp1-tp1)<=dp1)return true;但也有意外的情况发生,没有达到目标点(原因很多,暂时没有详细探究),那么就通过到达目标的步数来确保金币能够注销:step-;if(step<=0)return true;同样我们可以写一个Ruby类处理蓝宝石,为了方便,可以仍然用GoldLaunch做Ruby的生成,用GoldManager做Ruby的管理。6.6 背景不止一幅下面要为游戏添加背景了,如果一直只有单一的背景,会是很无

21、聊的。而且突然就更换成其他背景,那明显是唐突的。因此还要处理背景的变化过度过程。似乎Launch和Manager的模式,不太适合这种需求:Background:背景类,显示背景和处理更换背景时的动画。BackManager:背景管理类,控制合适更换背景,更换哪个背景。在更换背景时,中间显示过度浪花,显得更加美观。/原背景S.batch.draw(nowBackground,0,0,middle,S.SCREEN_HEIGHT,0,0,middle,nowBackground.getHeight();/画过度浪花S.batch.draw(texSpray, middle-texSpray.get

22、Width()/2, 0,texSpray.getWidth(),S.SCREEN_HEIGHT);/新背景S.batch.draw(changeBg, middle, 0, S.SCREEN_WIDTH-middle, S.SCREEN_HEIGHT, middle, 0, changeBg.getWidth()-middle, changeBg.getHeight();middle -= 10;if(middle<=0)nowBackground = changeBg;state = STATIC;6.7 界面UIUi类自然要处理输入,而且是最优先处理。6.7.1 购买UIItem:

23、每一项商品ItemLauncher:生成每一类商品,例如泡沫瓶,发射器升级科技,特技等ItemManager:管理商品队列的显示和输入控制。通过购买泡沫瓶增加泡沫,每一个商品标记一个单一的ID,在购买时单独书写一个购买商品类,根据购买商品的id,操作相应过程。6.7.1.1 ItemIcon既是商品的Texture,为每一样商品制作一个IconTexture;Cost的种类有Gold、Ruby;Type分为UP升级、BUY购买、SET设置、ADD充气。构造函数形式如下:Item(Icon,GOLD/RUBY,cost,UP/BUY/SET/ADD,rect)。偏移函数:offY(float dy) rect.y+=dy;。输入检测:down(x,y),up(x,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论