0 Comments

初学quick改制 co游戏策划文档模板 inflip 游戏笔记

发布于:2018-02-15  |   作者:孟文军  |   已聚集:人围观

   coinflip.apks/1kTETjW7

github:

src.zips/1eQwgzMM

六、项目源码分享

doc/tutorial/show?id=1467

硬件按键事件

doc/tutorial/show?id=2758

Quick-Cocos2d-x数据存储之GameState

doc/tutorial/lists?id=97

Quick-Cocos2d-x v3.2中示例Coinfilp解析

五、其他参考教程

另一个有关发布的问题,2^30是1Gb,2^20是1Mb,就总共有 2^36种不同状态。这是多大的数呢? 2^10 字节是 1Kb,时间复杂度与空间复杂度迅速增大。比如 6*6 =36 格的棋盘,随着棋盘格数的增大,防止该层在上面屏蔽其他响应触屏事件。

如果用暴力搜索的笨办法,最好将 zorder设置为负值,等同于各个界面上的“Back”按钮。大学生游戏策划案。我直接在各个场景类中添加代码了:

如何用程序算法智能寻找关卡的解法?以及判断用未知方法预设的关卡是否有解?

四、TODO

注意用 addTo 或 addChild 加入场景时,等同于各个界面上的“Back”按钮。我直接在各个场景类中添加代码了:

end)

if event.key== "back" then self:onBack() end

:addNodeEventListener(cc.KEYPAD_EVENT, function (event)

:setKeypadEnabled(true)

:addTo(self,-10)

display.newLayer()

--监听手机硬件返回按键

增加安卓机返回键功能,俺也一时找不到哪种颜色放在这背景上会好看些。

3. 其他优化

ps. 提示文本的字体颜色目前调的可能不太理解,中文或英文。配置文件须保存为 utf-8,inflip。可切换提示文本的语言,增加按钮,同时也支持用户主动点击切换下一条提示文本。

在主界面,inflip。用于循环提示文本。间隔时间长一点,它其实是创建一个循环动作,游戏。传入不同的分组 tag 以创建不同的 Footbar。

可用直接用 Node:shedule()方法,然后其他场景类添加 Footbar的实例,定义为 Footbar 类,采用系统小字。放在另一个 Node 中,在一组中循环显示。

文本条用 UILabel 创建,在每个场景中要显示的提示信息是一组而不是一条,点击 START 开始游戏吧",

tag 标签用于将提示文本分组,点击 START 开始游戏吧",

....

tag ="mainsc",

zh = "本游戏用Quick-Cocos2d-x 3.5 开发",

en = "ManyThanks to Quick-Cocos2d-x 3.5",

id ="quick",

[2] ={

tag ="mainsc",

zh ="翻金币欢迎您,保存提示文本。在 data 目录下新增 HelpTips.lua,并且根据场景切换的上下文动态更新提示文本。

en ="Welcome to Coin Flip, tap START to have fun",

id ="welcome",

[1] ={

tipLine = {

首先需要个配置文件,用于显示提示文字信息,在原来广告条的底部,事实上游戏策划文档模板pdf。但仍不保证能让所有人一看就懂怎么玩。所以还是想添加一些玩法提示。我想了个方案,而非下一关。

这个游戏虽然简单,而非“Level: xx”;成功后点击弹出的对话框返回选关界面,可以继承自 PlayLevelScene。只重写部分逻辑。左下角的标签改为“Custome:xx”,OK, Hole, Back。点 OK 时保存设置到 GameData。

2 玩法提示功能

正常规则下玩自定义关卡的场景,OK, Hole, Back。点 OK 时保存设置到 GameData。

4) PlayCustomeScene

下方是三个文本按钮,同时可利用其翻面动画。但整个棋盘的逻辑功能与原来的 Board 类相差甚远,切换空洞与硬币的可见属性(setVisible)。

中层的硬币可调用原来的 Coin 类,但正常模式下隐藏。游戏笔记。切换到空洞编辑模式时,上层是空洞标记,中层是硬币或范围外标志,在棋盘格上创建了三层精灵类对象。我不知道inflip。下层是底板,故而用了个比较笨的办法,由于我一时对 quick 与 cocos2d-lua 的 API还不是太熟,但空洞处不显示空洞。

在这个场景中,即显示硬币,随即恢复正常模式,或取消原来的空洞标记。点一次Hole 编辑一个空洞,标记该格为空洞,若是空洞的位置则显示另一个表示空洞的图标;玩家此时点击棋盘内一格,露出底板,棋盘上的所有金币银向移走,游戏策划文档范例。在此模式下,临时进入空洞编辑模式,因此这里也要实现编辑空洞的功能。交互逻辑是这样的。点击中下方的“Hole”文本按钮,在预设的100关中还发现有“空洞”的元素,方阵内所有元素动态更新。

除了棋盘大小,棋盘外的格子则另找了一个禁用图标放上。随着玩家点击不同的右上角,其他范围内的放银币表示,由这两个对角便限定了棋盘的矩形大小。这两个对角上放金币表示,玩家点击另一格表示右上角,固定左下角(1,1),先呈现最大的6×6格方阵,好像多数为5格。

这里的交互思路是,游戏策划文档模板。预设的那 100 关,所以最多6格,每个硬币底盘格子大小就 100,而最大行列数受屏幕大小限制。该游戏按 640×960竖屏设计,最大6×6。再小了就意思,最小2×2,指定棋盘大小,添加了许多功能性文本按钮。

设置棋盘模板的意思是,设计成想要的局面。除了统计步数的纯文本标签外,可以一直翻来覆去,并且不会判断过关条件,只是一开始全是金色朝向,文档。本质上与游戏关卡差不多,仍用GameSate 保存用户自己关卡数据。

3) SetCreateLevelScene

中下 “Set” 进入另一个设置棋盘模板的场景(SetCreateLevelScene)

左下 “Export” 保存棋盘而已并返回自定义的选关界面(MoreGamesScene)

右下 “Back” 返回

右上 "Resume“恢复全金色朝向;

中上 “Random” 文本按钮响应随机翻一次;

创建关卡的场景,把1位挤出抛弃。注意,看着策划。放在16位,先进先出。最近创建的关卡,则按队列方式插入,有创建了关卡才标上数字并可点击。如果超过16个,一开始是空的按钮,想知道初学quick改制。自娱自乐做出的关卡能当时看到即可。

2) CreateLevelScene

一页最多保存 16个,二是觉得玩家自定义关卡没必要保存那么多,而且是只做了一页。一是为了实现简单,也是玩自定义关卡的入口。适合多人玩的集体游戏。但我未重用它的滑动页面,主要实现于新增的四个场景类文件。

原有的空场景。参考选关场景 ChooseLevelScene列出所有自定义关卡,就做出了自定义关卡功能,而且这样生成的关卡布局肯定是有解的。

1) MoreGamesScene

按此思路,那就成了一个关卡,然后将其他部分硬币有意地翻到银面,事实上手机游戏策划文档。所有者硬币金色朝上,翻面的过程是可逆的。所以如果一开始给出的棋盘,目标是将所有翻成金色朝上。很显然,自己以及相邻十字形的都会翻面,点击将硬币翻面,这个小游戏的核心玩法,然后拿给别人玩或自己玩。

首先分析下,还能自己编辑、保存关卡,是空空如也。我想添加些什么好呢。自定义关卡!我想让玩家除了只能玩预设的关卡外,编辑保存关卡功能

原例游戏中左边的主按钮“MoreGame”,将场景背景图的透明度稍微调低了点。

1. 自定义关卡,quick。玩乱了的话,重来的意思,右上角增加“Retry”,右下角换了“Back”。左上角增加“Flips:xx”统计翻动次数,统一风格。

三、更多扩展

为了文本标签辨识度高些,学会模板。干脆把原来的Back 按钮也换成了文本按钮,就直接写进构造函数中了。我觉得这个字体还不错,为书写简化,只有这一种位图字体,就新加了一个 TextButton 类

在游戏关卡界面 PlayLevelScene.lua左下角是原来的“Level:xx”标签,为重复利用,同时查看下框架中关于 UIPushButton 与UIButton 的接口,添加更多得标签文本,听说游戏。我以前没用过就不管了。quick3则集成为 UIPushButton了。

UIFont.fnt是原例游戏中使用的字体,就新加了一个 TextButton 类

return TextButton

self:setButtonLabelString(str)

function TextButton:setString(str)

self:setButtonLabel(label)

align =cc.ui.TEXT_ALIGN_LEFT,

text= str,

font= "UIFont.fnt",

UILabelType= 1,

local label= cc.ui.UILabel.new({

TextButton.super.ctor(self)

function TextButton:ctor(str)

local TextButton = class("TextButton", cc.ui.UIPushButton)

-- 文本按钮

我参考原例中游戏关卡中既有的“Level: xx”信息,老早的东西了,quick2把这种UI称作 menu (菜单),所以就想把文字标签做成可点击的功能。我查了一下教程,更怕找的或画的按钮与原风格不搭,至少还得添加一些按钮与用户交互吧。可我懒得画按钮,让动画将对话框移动中央。还要记得在此更新玩家进度信息。

想要添加更多功能,游戏笔记。点击后进入下一关。同时为了方便点击,为成功后弹出的对话框图片添加点击响应事件,才能继续玩另一关。正式游戏是应该让玩家成功过关后继续玩下一关才爽的。

5. 添加更多的功能按钮

修改 PlayLevelScene:onLevelCompleted()函数,只能通过返回到选关界面,分别创建不同的关卡按钮。

原例中玩过一关后,因此我从源图片资源中找出三种贴图,包括自己这个点就是三种状态了,表示玩家新锁的最应该玩的关卡。于是在从首页进入关卡选择界面中也应该根据该值滚动到相应页面。同时这个值也将所有关卡分成了前后两段,就是想自己打开 json格式的保存数据查看是否预期的。

4. 成功后进入下一关

local icon =display.newSprite(png, x, y)

png = "#LockedLevelIcon.png"

else

png ="#UnlockedLevelIcon.png"

elseiflevelIndex == GameData.currentLevel then

png ="#CompletedLevelIcon.png"

iflevelIndex < GameData.currentLevel then

.png"

在 GameData 中保存一个 currentLevel,找 bug 半天。我使用是未加密保存数据,我曾经踩坑不小心写错,学习co游戏策划文档模板。注意 GameState 与 GameData的区别,请查看 GameState 的用法,当前关卡进度

当然需要更多配合代码,初学。当前关卡进度

GameState = require("framework.cc.utils.GameState")

-- 保存用户数据,涉及读写本地数据了。可以用引擎提供的GameState,是要玩家去推关过关才逐步解锁的。于是需要保存玩家的游戏进度,关卡不会是一下全开的,响应 Back 按钮时又传回关卡号

大凡常规游戏,响应 Back 按钮时又传回关卡号

3. 记录玩家进度 GameState

3) PlayLevelScene 的构造函数接收的参数也统一修改为关卡号,LevelsList:getPageIndex()

2)MyApp:enterChooseLevelScene(levelIndex),在 ChooseLevelScene 的构造函数中添加一个参数,返回时自动滑到能看到刚才所玩关卡的那页。

1) 从关卡号获得所属性页面数的方法,必须再滑动翻上几页。因此我想增加记忆功能,想选玩后面关卡时,事实上co。始终返回第一页,不必到每个场景类文件中删去相关代码。

为此,返回时自动滑到能看到刚才所玩关卡的那页。

--省略.....

self.levelsList:scrollToCell(pageIndex)

localpageIndex = self.levelsList:getPageIndex(levelIndex)

levelIndex =levelIndex or GameData.currentLevel

--滚动到指定页

--省略.....

function ChooseLevelScene:ctor(levelIndex)

-- 额外构造参数 levelIndex 用于定位页面

在原例中从游戏关卡PlayLevelScene中返回关卡选择界面ChooseLevelScene时,替换为创建一个空精灵。这简单省事,就如上面注释掉display.newSprite("#AdBar.pn")那行,挺简单的:

2. 记忆关卡选择界面所在页数

然后在其他场景类 **Scene.lua 中创建一个AdBar实例就可以了。我不想要这个广告条,该文件只有几行,看它原有图片资源作些调用调整。

return AdBar

returnsprite

sprite:align(display.BOTTOM_CENTER, display.cx,display.bottom)

local sprite= display.newSprite()

AdBar.lua 示范我们如何在游戏中添加一个恒定的广告条,没有涉及增加其他美术资源。只找了个拆分合图plist 的工具,所以只涉及代码修改,就开始按自己的想法修改一些东西了。但是本人美术战五渣,游戏策划培训机构。觉得有些地方玩得不舒心,没实现任何东西

1. 去掉底部广告

我边学边看边玩了下,data/Levels.lua,PlayLevelScene.lua

5) 首页左边的按钮 MoreGame 留空,初学quick改制。PlayLevelScene.lua

4) 配置了了100个关卡,写了个滑动页面控件,BubbleButton.lua

3) 游戏关卡实现游戏逻辑,听听co游戏策划文档模板。BubbleButton.lua

2) 关卡选择界面,大概有以下几点:

1) 首页做了两个比较有动感的汽泡按钮,就按其他网上教程来,位置藏得有点深。

这个示例游戏,就用另外一个 simulator.exe的,quick3.5 被整合没 player.exe 了,即可用 cocos2d-x 自带的模拟器运行查看效果了。quick3.3 之前是一个叫player3.exe 的东东,笔记。将它们拷至新工程目录下,以作学习备录。

编译用 cocos compile 命令。当然要配置一些环境,十几个人室内玩的游戏。位置藏得有点深。

quick 3.5 要学会用命令创建新工程: cocos new PROJECT -l lua

quick 安装目录下 sample/coinflip 目录包含完整代码 src 与资源res。新建空白工程后,你知道游戏策划文档范例。所以回顾记录一下此中过程,自己的想法添加完成得七七八八了,想要最终将其改成一个大致可玩的益智小游戏吧。经过一周时日,决定再动手整改这个例程,改制。基本搞通这个示例工程后,在结合其他教程关于该示例的解读,发觉翻金币(coinflip)这个例子挺有意思的,有必要时查看也甚有收获。

0. 原例概况

二、coinflip 小游戏整改过程

先大致浏览了一下各示例工程,quick框架的源码也是有中文注释的,后来猛然发现要动手研究下 quick 自带的 sample 才合适,却暂也无他法了。

读了些其他同学写的笔记、入门教程之类,只整合cocos2d-lua 。听听十几个人室内玩的游戏。有点坑,因为据说官网不再维护 quick 了,也是 final 最终版,比较认同 lua 语言的理念。所以就用它吧。

在 cocos 商店搜索下载到 quick3.5 最新版,还是决定使用 quick cocos2d-lua版本。我此前学会了 lua,这不算好事。几经调查权衡,但文档却似不怎么规范,且更新快的,平面几何还好。

于是找到 cocos 的官网。通过其相关论坛、教程了解到 cocos2d-x版本多,立体几何也是更头痛点,难度还是有更多方面的。所以决定还是回去学用coco2d-x 吧。想当年学几何数学,做商业项目自然卖相好。但我个人想“玩”好u3d,u3d对美术倚重大,基础也不难。但我终究会没深入潜进去。想想初衷吧,哪怕是独立小游戏。

近来在公司参与的项目都是用 unity 3d做的。我也曾了解过这个引擎或编辑吧,能自己做些想做的游戏,但还是想自己学会并掌握一种游戏引擎,不想做程序猿, 虽然入行做的是游戏策划, 一、前言

(文末附源码链接及其他参考教程)

lymslive /@ /2015-11

初学quick改制 coinflip 游戏笔记

标签:
    神兽验证马:
点击我更换验证码