2016013255 冯昊
2016013235 张汝婷
-
游戏名称: 圆圆历险记
-
游戏原型: 坏蛋冰淇淋
-
游戏二维码:
-
游戏策划和功能:
圆圆由于经常发表情包惹怒了公主,公主下令将他变成了一个球并将其驱逐。圆圆经过一番反省,下定决心重拾公主芳心,踏上了再见公主的旅程。旅程中,圆圆需要躲避表情包的触碰,否则会再次使用表情包伤害公主;同时需要在路上收集公主遗失的所有星星,然后到达公主所在地,才能获得公主的芳心。
虽然圆圆的身体变化了,但是它的操控冰的能力还在,面对表情包的接近,圆圆可以通过放冰和破冰来保护自己。但是在一次放冰或破冰未结束前,无法进行另一次对冰操作。
玩家可以选择不同关卡进行游戏,游戏过程中可能天降馅饼或陷阱,请视情况进行选择,最终目标都是获得公主芳心。
每次选关游戏结束后,会出现排行榜界面,显示好友中玩过此游戏所有玩家的积分情况。
-
开始界面:
设置四个按钮:教程、开始游戏(进入选关界面)、游戏介绍(游戏背景故事介绍)、游戏帮助(进入游戏帮助界面,对游戏相关操作进行讲解)。
-
教程界面:
通过一步步的详细解读,向玩家介绍游戏基本操作与技术,帮助玩家快速上手。
-
选关界面:
设置不同关卡供玩家选择。不同关卡的基本地图、表情包位置、数量与速度、道具等各个因素会有所不同。
-
游戏介绍界面:
使用淡入淡出效果讲述游戏背景故事,让人快速熟悉游戏设定。
-
游戏主界面:
左下角摇杆或者方向按键控制圆圆四方向移动,右下角前三个分别控制界面缩小、恢复与放大,最右边的按钮控制圆圆对冰操作。
界面可以任意拖动,并且有自动跟随主人公的效果。
-
游戏失败界面:
三种提示用语:
- 圆圆被表情包触碰致死:
哈哈哈哈哈哈哈哈哈你输了吧
- 圆圆未收集足够星星就去找公主:
bingo~公主生气了不要你了~
- 分数小于0:
hhh居然都负分了,tcl
界面上会显示简要排行,并且提供排行榜入口。
- 圆圆被表情包触碰致死:
-
游戏胜利界面:
圆圆收集到足够星星并且找到公主,就可以获得公主的芳心,从此,圆圆和公主过上了幸福快乐的生活。界面上会显示简要排行,并且提供排行榜入口。
-
排行榜界面:
分关卡显示好友排名。
-
积分设置:
总积分 = 基础积分 + 600 * 星星个数 - (试图)移动次数 * 13 - 对冰操作次数 * 47 - 每帧 * 1/60(正常)或者每帧 * 1/10(放冰状态)
游戏过程中,一旦积分小于0,就会导致游戏失败。游戏失败则积分为0。
-
游戏整体架构的选择:
使用cocos creator进行游戏的开发,从而实现游戏的跨平台发布,并且可以利用cocos creator中的控件以简化设计流程。
-
地图设定与对冰操作:
为了实现前方物体对后方物体的遮挡效果,同时由于本身地图设定自由度高,可以指定任意大小,因此自己进行地图的管理与绘制而非使用tiled map。
地图中动态设定每个元素的z-index以实现遮挡效果,同时使用二维数组记录整个地图的分布。放冰和破冰判断当前方向上的数组单元的data属性,通过递归调用实现不断地放冰、消冰操作。
-
淡入淡出效果的实现:
由于cocos并没有自带的淡入淡出效果,因此采用setInterval函数与递归函数两种方式来实现了淡入淡出效果,以优化游戏体验。
-
表情包的自动移动:
由于考虑到游戏本身设定较难,如果采用A*等算法会显著增大游戏的过关难度,影响游戏体验,因此表情包的移动算法采用高效的决策树结构,以通过最小的资源消耗来获取较好的游戏体验。
表情包设置为以圆圆为目标进行移动。以表情包和圆圆的相对位置为基础,用决策树进行建模。移动方式有两种:优先x轴移动和优先y轴移动,这两种方式随机决定,在update函数中逐帧调用判断以营造连续移动的效果。
-
排行榜
由于微信的限制,使用游戏工程与子域工程两个工程进行排行榜功能的实现,通过wx. postMessage进行消息的传递,同时使用不同key存储不同关卡的数据。
-
界面跟随:
由于本游戏中地图大小不定,同时需要对是否正在拖动、人物是否已经在屏幕外等情况进行考虑(当正在拖动界面时、人物之前已经到达屏幕之外时不会进行跟随操作),所以没有使用内置的camera而是采用scrollview监控的方式进行,一旦发现满足条件即将视野移动,带来良好的游戏体验。
-
数据加载:
采用读取数据与动态随机相结合的方法,设立全局变量以获取其他页面传来的数据,并且对读取到的数据进行有效性检测,如果数据不合法(比如星星落在了墙上无法捡到)则会抛弃这些数据,同时对未设定的数据部分进行随机处理(如需要6个星星但只指定了2个的位置,则剩余部分会随机处理)。同时,数据与整体逻辑架构分离,可以方便地修改数据以设立不同关卡,同时也为后续实现动态从网页加载数据提供了基础。
- 测试视频见:https://www.bilibili.com/video/av28029006
- Web版及更多内容详见圆圆历险记官网:https://www.fhao.top/yuanyuan
-
关卡内道具:
设置四种道具和一种随机道具(随机为四个道具之一):
1)一段时间内界面内所有表情包静止不动;
2)圆圆一段时间内无敌,触碰表情包不会直接导致死亡,但是会减少100积分(当积分降至0时,圆圆被嫌弃,游戏结束);
3)圆圆减速一段时间;
4)圆圆加速(永久功能)。
-
有趣的表情包设定:
多个小怪直奔你来,惊险刺激,但有时也会钻牛角尖,蠢萌蠢萌的。
-
多种游戏结局:
给你不同的结局嘲讽体验。
-
多个游戏关卡:
总有一条通向成功的路。
-
游戏教程与背景介绍:
深入浅出,通俗易懂,这下你不能说不会玩了吧。
-
数据动态加载与高鲁棒性:
通过动态加载数据的方法实现关卡的更新,同时用细致的判断避免由于错误输入而导致程序崩溃。
-
冯昊:
游戏教程、游戏介绍、排行榜、游戏架构、界面大小改变及滑动实现、按钮操作、游戏初始化实现、道具实现;
-
张汝婷:
美工、表情包及移动效果实现、放冰与消冰操作实现、摇杆实现、关卡设计、音效。