我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(一)
同样从CSDN搬过来
博客开这么久了,就发过一篇很水的文章,一直想写点正式的东西。这次准备开工一个仿其他游戏的简单小游戏,于是开博客把开发过程记录下来。这一系列文章主要讲,我是如何从零开始使用Cocos2d-x制作一款仿《Love Live!学院偶像祭》的音乐游戏的。只模拟Live场景部分,其余功能(如剧情对话,招募等)均不涉及。
因为我是一边开发一边更新的,所以就不做成太正式的教程了,就是记录一下开发过程,顺便整理自己的思维。
但是由于勃主毕竟图样,写出来的代码也是图森破,有错误的设计理念、不合理的代码结构等肯定是不可避免的,望各位轻喷,如果可以的话能提点建议,让我向各位长者学习一点人生的经验,那就是最好的。更如果,各位能从这篇文章中学到那么一点点有用的东西的话,那我就非常非常欣慰了。
虽然我的文章很挫,但是如果有人想转载的话,希望能保留原作者和地址,万分感谢
————————————————————————我是分割线————————————————————————
这一篇主要分析这个游戏中的元素及其作用,暂时没有涉及到代码部分。
正文开始前本应该要向大家介绍一下《Love Live!学院偶像祭》这个游戏。不过我寻思,会因为标题点进来的人八成知道什么是“niconiconi”的,所以我不多废话介绍了。针对没有听过,没玩过这个手游的读者,我只放图片的话可能不知所云,所以请看如下视频:
看完视频之后大概会对Live场景有一些粗略的感受。这就是一个跟着歌曲节奏来点击飞过来的物件的游戏。根据触摸的时间判定单个物件的得分,加到总分中。作为手游开发者,你可能没有听说过《劲乐团》,但应该多多少少听说过《节奏大师》。对了,这个游戏的Live部分就和它们很相似。
然后来仔细分析一下Live场景的界面的元素。看看这张截图:
可以看到界面上有这些元素:
● 背景图片
● 上方的当前分数文字栏
● 上方的分数进度条
● 左上方的当前血量进度条
● 中上方的音符图标
● 右上方的暂停按钮
● 正中间的Combo数文字栏
● 正中间的打击判定文字栏
● 九个呈扇形分布的圆形按钮
● 从中上方的音符图标处飞出的各种物件
玩一段时间后我们能知道这些元素的作用。这里不需要大家去花时间了,我直接把作用写在下面:
● 背景图片:
就是个背景图,表示当前Live进行的地点。游戏开始后背景图会变暗,不干扰玩家视线
● 上方的当前分数文字栏:
表示玩家当前的分数。分数增加时会播放一个小特效
● 上方的分数进度条:
表示玩家当前分数能得到什么档次的评分。根据得分高低,从低到高有“C”,“B”,“A”,“S”五个档次(感谢 这并没有什么琴梨用 指出错误,得分低于C时没有评分而不是失败)
● 左上方的当前血量进度条:
表示玩家当前的体力值。当用户打出Bad或Miss判定,以及带有星星的物件打出Good判定时会扣除体力值。体力值变为0时游戏结束,玩家得到“Live失败”的评分
● 中上方的音符图标:
就是一动画。动画播放速度和歌曲节奏速度无关
● 右上方的暂停按钮:
点击后游戏暂停,弹出面板,用户可以选择“继续Live”,“回到主界面”或“重新开始”(图中没有)
● 正中间的Combo数文字栏:
表示玩家已经保持Perfect或Great判定连续打击了多少个物件
● 正中间的打击判定文字栏:
表示玩家上一次打击的判定结果。判定标准是玩家按下去的时间和物件飞到圆形按钮上的时间的差值大小。从低到高分别是:“Miss(如果在规定时间内没有按才出)”,“Bad”,“Good”,“Great”和“Perfect”。判定结果出现短暂时间后会渐隐消失,直到下次打击
● 九个呈扇形分布的圆形按钮:
接受玩家触摸的按钮。玩家只有点击这些按钮才会触发判定流程
● 从中上方的音符图标处飞出的各种物件:
跟着节奏飞出的物件。物件出现时间保存在脚本中,每次选择同一首歌的同一个难度,物件飞出顺序不变。如果同一时刻飞出了两个物件,则物件上多一条横条表示需要一起按。飞出的物件又分为两种类型:
◇ 圆圈:
圆圈飞到按钮上时,玩家需要点一下按钮
◇ 长条:
长条的头端飞到按钮上时,玩家需要按住按钮,直到长条的尾端飞到按钮上时,松开手指。长条的头和尾都会触发判定。如果中途松开手指,第二个直接判定为Miss
还有一些不可见的元素:
● 歌曲:
不用多说吧?
● 打击音效:
判定触发后,根据判定的结果会播放不同的音效
于是,大致能够规划出游戏的框架图:
这一章差不多就这样,对游戏本身有个大致的了解就行。下一章讲物件的代码实现。不出意外的话明晚可以发布。

我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(一)的更多相关文章
- 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(二)
上一章分析了Live场景中各个元素的作用,这一章开始来分析最关键的部分——打击物件的实现. 上一章放出的视频很模糊,先来看一个清晰版的复习一下:http://www.bilibili.com/vide ...
- 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(四)
[前言和思路整理] 千呼万唤Shǐ出来!最近莫名被基友忽悠着进舰坑了,加上要肝LL活动,又碰上公司项目紧张经常加班,这一章发得比以往时候来得更晚一些,抱歉啊. 上一章我们实现了BeatObjectMa ...
- 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(五)
[前言和思路整理] 千呼万唤Shǐ出来!终于到最后一章啦~ 很抱歉这一章卡了那么久才发布.主要原因是家里电脑主板的内存插槽炸了,返厂后这周才收到,平时在公司也基本没什么时间写……再次表示歉意. 上一章 ...
- 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(三)
[前言和思路整理] 千呼万唤Shi出来啊(好像也没人呼唤),最近公司项目紧,闲暇时间少更得慢,请见谅. 上一章我们分析并实现了打击物件类BeatObject,和它的父节点BeatObjectColum ...
- 基于rabbitMQ 消息延时队列方案 模拟电商超时未支付订单处理场景
前言 传统处理超时订单 采取定时任务轮训数据库订单,并且批量处理.其弊端也是显而易见的:对服务器.数据库性会有很大的要求,并且当处理大量订单起来会很力不从心,而且实时性也不是特别好 当然传统的手法还可 ...
- NOIP 模拟 $28\; \rm 遗忘之祭仪$
题解 \(by\;zj\varphi\) 直接贪心模拟即可,对于每个点,如果它未被覆盖,直接在这覆盖一次. 每个黑点只会被扫一次,所以总复杂度为 \(\mathcal O\rm (nm)\) Code ...
- 微软Hololens学院教程-Hologram 230-空间场景建模(Spatial mapping )【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- 强行在MFC窗体中渲染Cocos2d-x 3.6
[前言] 把Cocos2dx渲染到另一个应用程序框架中的方法,在2.x时代有很多大神已经实现了,而3.x的做法网上几乎找不着.这两天抽空强行折腾了一下,不敢独享,贴出来供大家参考. [已知存在的问题] ...
- [ller必读] LoveLive! 必备技能之 Python Pillow 自动处理截图
起因 喜欢的歌,静静地听:喜欢的人,远远的看.30天前,就是3月14号,我情不自禁地走近了<LoveLive!学院偶像祭>,这是我的第一张卡片(见下图).第二天也就是3月15日,海未生日了 ...
随机推荐
- (转)mahout中k-means例子的运行
首先简单说明下,mahout下处理的文件必须是SequenceFile格式的,所以需要把txtfile转换成sequenceFile.SequenceFile是hadoop中的一个类,允 ...
- HRBUST 1909 理工门外的树(双数组实现线段树功能)
线段树固然可以做,但是在考虑线段树之前应该先考虑一下,这种用两个数组来解决问题的方法能不能行,如果行的话,就会为我们省很多时间,毕竟线段树代码量比较大 #include<iostream> ...
- C#对象序列化笔记
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
- JSONObject转换JSON之将Date转换为指定格式(转)
项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的 ...
- Allegro PCB -如何做自定义焊盘
1.如何创建自定义焊盘,比如这种形状的焊盘. (1).打开PCB Editor –>Allegro PCB Design ->New,在类型中选择Shape symbol,并输入名字,比如 ...
- sql语句之字符串匹配like
sql没有正则表达式,只能使用like 语法 match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ] 参数 match_ex ...
- Android学习笔记之Intent
Intent是Activity之间的管道 可以用来做Acitivity的跳转或传递数据 protected void onCreate(Bundle savedInstanceState) { sup ...
- js中焦点的含义是什么
焦点即是光标 焦点是在页面上屏幕中闪动的的小竖线,鼠标点击可获得光标,Tab键可按照设置的Tabindex切换焦点
- 利用css3特性写出三角形(兼容IE浏览器)
利用CSS写出三角形的效果 效果如图: 代码如下: .triangle-up { width:0px; height:0px; border-left:10px solid transparent; ...
- 如何使用XE2及更高版本中提供的自定义皮肤(样式)功能
源:如何使用XE2及更高版本中提供的自定义皮肤(样式)功能 1. 制作样式文件: 点击 XE2+ 的 IDE 菜单上的 Tools-->Bitmap Style Designer, 打开设计器. ...