JS开发HTML5游戏《悠悠考拉》(一)

悠悠考拉是一款好玩而且又考验判断与反应能力的游戏,让我们一起来看看通过开源免费的青瓷引擎是如何来实现这款游戏。

(点击图片可进去试玩)

源代码与资源下载

本文共有三部分内容,本篇文章为第一部分,主要内容如下:

1、游戏功能分析

2、游戏主体模块的设计

一、游戏功能分析

根据游戏设定,解析出游戏的主要功能,分解成每个功能模块,然后制订每个功能模块代码结构,如下图所示:

二、游戏主体模块的设计

2.1 考拉

从游戏最终的界面效果我们可知该游戏的主体模块为考拉、藤条、柱子。下面分别介绍每个主体模块:

考拉:在悠悠考拉游戏中,我们可以看到考拉有走路、拿秋千、放手、掉落、死亡等动作,这些动作都可以使用引擎的帧动画完成,这里不一一讲述每个动作的制作方法,只以考拉的"走路"动作作为讲解,其余动作都类似。首先,我们需要将美术提供的美术资源添加到引擎中,在引擎界面的atlas文件夹新建一个文件夹取名[email protected],后缀名为@atlas的含义是将打包的图集放入到atlas文件夹中,将考拉图片资源拖入到[email protected]文件夹中,如下所示:

右键单击[email protected]选择"Repack Texture Atlases"打包图集,如下:

打包图集成功后,我们可以在atlas文件夹下看到koala.bin文件,如下所示:

其余游戏中的图集资源的添加与打包方法类似,更多的关于图集打包信息可查看图集。此时,我们可以制作考拉帧动画,我以考拉走路动作为例:前面我们已经把[email protected]打包成图集了,制作帧动画需要用到里面的图片资源。方法是首先点击"Assets/atlas文件夹",点击"向右三角形",如下图所示:

点击图集中的walk_1.png图片,此时右边Inspector面板出现如下信息,如下图所示:

点击"Edit Frame Animation",此时进入帧动画编辑界面,如下图:

输入动作名称,帧率,是否循环播放,并添加每帧的图片。将图集中的walk_1-walk_4图片依次拖入到帧动画表中,点击"Save"保存即完成帧动画制作,如下图所示:

我们还可以在预览框中看实际效果图,下面是我们刚做好的走路帧动画,如下:

更多制作帧动画的信息可查看《帧动画》。

2.2 藤条

藤条:在悠悠考拉游戏中,我们可以看到当考拉抓住藤条时,考拉就跟着藤条做钟摆运动。藤条做钟摆运动的实现可以使用引擎提供TweenRotation动画,具体做法是首先我们先在引擎编辑界面的Hierarchy创建一个Empty Node节点取名swing,然后再swing节点下创建一个Image节点,该节点用于显示藤条,此时我们就需要在swing节点上挂载一个TweenRotation动画以实现藤条的钟摆运动:首先在引擎编辑器的最右边Inspector面板点击"add Component"(注意:引擎编辑界面有中英文编辑界面,该篇文章使用的是英文编辑界面),如下图:

点击上图中的Tween按钮,出现如下界面:

选择上图中的TweenRotation即完成TweenRotation组件的挂载,挂载完成后的界面如下:

我们想要藤条的效果是摆动的,而且是有加速度的。这些可以通过设置TweenRotation组件而实现,首先我们设置from值,该值表示从什么角度开始,而to值表示到达某个角度,举个例子:我设置from为40,to为-40,Play Style(播放类型有三种:once(播放一次)、loop(循环播放)、PingPong(来回播放))设置为PingPong,curve为动画运行的曲线,设置该值可达到想要的效果,duration为播放动画所需的时间。curve的值设置如下:

选择该曲线的目的是希望藤条有切向加速度。

设置好上述属性值后,效果如下:

其实,我们也可以设置Play Style的值为Loop,并相应的改变curve的值,curve的值设置如下:

同样也可以达到上述的效果,更多的Tween动画可参看Tween

还有一个细节是在游戏中,考拉在藤条的底部,考拉也会跟着藤条做钟摆运动。我们可以将考拉设置为藤条的孩子节点,并把考拉的锚点设置为藤条的底部中心(关于锚点的具体信息可查看锚点),考拉节点的属性值设置如下:

这样考拉就可以跟着藤条一起做做钟摆运动了,效果图如下:

2.3 柱子

柱子:在该游戏中,使用三根柱子用于循环移动,柱子存放在数组中,指定数组标号为1的柱子作为跳台,当考拉成功跳到跳台上时,将数组标号为0的柱子删除,并在数组后面根据关卡配置的柱子信息添加一根柱子到数组中,依次循环。在布局时,将其中前后相继的柱子固定在宽度为640的范围内,如下图:

这样我们就可以固定柱子的x轴的位置,例如:后一根柱子的x坐标就为前一根柱子的x轴坐标加上640再减去后一根柱子的宽度。下一篇文章将具体讲述游戏的实现。

时间: 2024-10-16 22:36:56

JS开发HTML5游戏《悠悠考拉》(一)的相关文章

JS开发HTML5游戏《神奇的六边形》(四)

近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容太多,为方便大家阅读,所以分成四部分来讲解. 本文为第四部分,主要包括: 16.分数往上飘动画 17.形状飞入动画 18.其他动画表现添加 19.游戏结束界面 20. 添加LOGO 21. 渲染优化 若要一次性查看所有文档,也可点击这里. 十六. 分数往上飘的动画 在表现加分时,分数会有个缩放的效果,然后往上

JS开发HTML5游戏《悠悠考拉》(三)

(点击图片可进入试玩) 本篇文章为第三部分内容,这篇文章将接着上篇文章的内容,这篇文章的主要内容有: 7.游戏中的暂停与结束处理 8.排行榜界面 七.游戏中的暂停与结束处理 7.1 暂停 暂停处理:在游戏中,秋千的摇摆.柱子的移动等都是通过Tween动画实现的,例如秋千摇摆我们可以加TweenRation动画.柱子移动可以加TweenPosition动画.当我们按下暂停键时,此时,秋千与柱子还有考拉等应该是静止的,我还希望能弹出另一个界面,该界面有一些界面按钮,点击按钮可以实现对应的操作,关闭弹

JAVASCRIPT开发HTML5游戏--斗地主(网络对战PART4)

继之前用游戏引擎(青瓷引擎)做了斗地主单机版游戏之后,这里分享下使用socket.io来实现网络对战,代码可已放到github上,在此谈谈自己整个的开发思路吧. 客户端代码 服务端代码 (点击图片进入游戏体验) 前文链接: javascript开发HTML5游戏--斗地主(单机模式part1) javascript开发HTML5游戏--斗地主(单机模式part2) javascirpt开发HTML5游戏--斗地主(单机模式part3) 本文章为网络对战第一部分内容.主要内容如下: 简介 服务端项

HTML5游戏实战(4): 20行代码实现FlappyBird

这个系列很久没有更新了.几个月前有位读者调侃说,能不能一行代码做一个游戏呢.呵呵,接下来一段时间,我天天都在想这个问题,怎么能让GameBuilder+CanTK进一步简化游戏的开发呢.经过几个月的努力,虽然还是做不到一行代码做一个游戏,但是GameBuilder的功能已经有了质的突破了.今天我们用FlappyBird为例介绍一下用GameBuilder +CanTK开发游戏的方法,整个游戏用了不到20行代码. CanTK(Canvas ToolKit)是一个开源的游戏引擎和APP框架,是开发H

HTML5游戏实战(2):90行代码实现捕鱼达人

捕鱼达人是一款非常流行的游戏,几年里赚取了数以千万的收入,这里借用它来介绍一下用Gamebuilder+CanTK开发游戏的方法.其实赚钱的游戏未必技术就很难,今天我们就仅用90来行代码来实现这个游戏. CanTK(Canvas ToolKit)是一个开源的游戏引擎和APP框架,是开发HTML5游戏或者APP的利器,如果你喜欢它,请在github上给它加星,您的支持是我们努力的动力:https://github.com/drawapp8/cantk 0.先Show一下最终成果: 在线运行:htt

HTML5游戏实战(3): 60行代码实现水平跑酷游戏

跑酷游戏无疑是目前最受欢迎的游戏类型之一,3D跑酷游戏可能比较难做一点(这个我不懂),2D跑酷却是非常容易的,只要有美术资源,做一个<天天酷跑>这类流行游戏也并非是什么难事. 这里通过一个松鼠跑酷的游戏介绍一下用Gamebuilder+CanTK开发游戏的方法,这个游戏的主场景仅用了60来行代码. CanTK(Canvas ToolKit)是一个开源的游戏引擎和APP框架,是开发HTML5游戏和APP的利器,如果你喜欢它,请在github上给它加星,您的支持是我们努力的动力:https://g

【Html5游戏开发 with LufyLegend.js 之一】一览全局函数 &amp; LGlobal静态类

一,前言 最近开始学习lufylegend.js,它是一款基于MIT协议的开源HTML5游戏引擎,目前使用Canvas渲染,2.0后会增添WebGL渲染.与其他的引擎相比,最大的特点就是模仿了ActionScript 3.0的语法,当然这只是一个特点,不会ActionScript对于学习lufylegend.js也没有什么坏的影响,我就是一个很好的例子(*_^),只不过如果你接触过ActionScript,那使用lufylegend.js的时候可能会顺手一些.以下是关于lufylegend.js

HTML5游戏开发引擎Pixi.js新手入门讲解

在线演示 本地下载 ?这篇文章中,介绍HTML5游戏引擎pixi.js的基本使用. 相关代码如下: Javascript 导入类库:(使用极客的cdn服务:http://cdn.gbtags.com) <scripttype="text/javascript"src="http://cdn.gbtags.com/pixi.js/1.6.1/pixi.js"></script> 引擎使用: .... .... 阅读原文:HTML5游戏开发引擎P

HTML5游戏开发-扫雷及其算法研究

吕蒙曰:士隔三月[1],当刮目相看.所以,在下在这三月中发奋图强,花了约莫8节信息课的时间研究扫雷.呜呼,由于在下才能尚且不足,所以也就只能勉强打过中级难度的吧.不过,一边玩的同时,我还一边对扫雷这个游戏的制做方法构思了一下.所以说,本文中的算法完全是凭借自己对扫雷游戏规则的总结而自行研发出来的,倘若和MS的扫雷玩法有些出入,还望各位看官见谅. [1]出自<孙权劝学>,原文为"士别三日",由于在下这三个月来都不曾发表博客,所以引申到"士隔三月",各位看官