cocos2d js 开发游戏怎样

JavaScript012

cocos2d js 开发游戏怎样,第1张

跟你简要说一下我的自学路,以免你走弯路

背景:

有工作,而且很忙;在不影响工作基础上用业余时间鼓捣(经常会因为工作耽搁学习进度);基本没技术背景(初中qbasic、高中pascal半吊子),大学文科,工作也不是搞代码。因此我感觉我的自学路跟你还是挺契合的。

1

两年前的一天,决定要做独立游戏制作人。选定引擎cocos2d,开始学习objective-c语言;(如果你打算只在iOS平台开发可以学obj-c配合cocos2d或者sprite kit;如果打算跨平台就要用cocos2d-x和c++了;当然unity什么的也不错但是我还没尝试过,一直很向往)

2

我跳过了iOS程序开发(似懂非懂看完了斯坦福那一系列的教学视频),结合当时情况直接选择了cocos2d引擎,这时开始接触 @吴一刀 推荐的博客;我主要看的是子龙山人<子龙山人 - 博客园>、Ray Wenderlich<Ray Wenderlich>、Himi<黑米GameDev街区>这些博客里最基本的例子,知易那个以我当时的水平还看不懂。

3

尝试开始设计自己的简单游戏,我做打地鼠!当然比教学例子里的打地鼠复杂多了

4

这个过程中发现自己懂的实在是不够,所以又开啃这本书:Learn cocos2d 2 by Steffen Itterheim &Andreas Low

5

慢慢的发现需要一些趁手的工具和编辑器,并发展出一套自己构建于cocos2d之上的游戏设计架构。我目前的情况是这样:

关卡编辑我使用plist文件配合自己写的类;

sprite sheet使用TexturePacker<TexturePacker>;

动画/UI编辑最初自己手写太累,后来选择了cocosbuilder,请注意现在这个软件已经停止维护,转而引导用户使用SpriteBuilder<SpriteBuilder>(域名都做了自动跳转;SpriteBuilder我木有研究过,建议你研究一下)。

粒子编辑我自己还没实际用到,如果真正需要我感觉cocosbuilder的够我用的。//更新:后来用到了ParticleDesigner和cocosbuilder两个软件的粒子编辑混搭

我当时遇到的一个大麻烦是如何让cocosbuilder、cocos2d版本互相兼容且cocosbuilder无问题。大概情况是这样:cocosbuilder2.1和cocos2d-iphone2.0及2.1版本都不协调怎么办?;What version of Cocosbuilder and Cocos2d-iphone should I choose?

目前我使用的cocosbuilder 2.1版本(渐变层有bug、并且很可惜动画播放完没有触发消息的机制,我只好把每个动画时长都手动记录一下自己处理)

======3月12日更新======

在 @GarfieldKwong 指点下发现这个版本动画播放完是可以触发消息机制的,更高级版本3.x支持的效果应该是在动画中就加入callback的关键帧

新技能get√

具体代码可见下面学习案例的第一个例子里Explosion部分

=====================

cocosbuider的学习可以看两个例子Creating a Game with CocosBuilder;Introduction to CocosBuilder;然后就是多用多尝试。

6

整个学习过程要学会查资料、学会寻求帮助,我主要用的stackoverflow(话说刚刚发现stackoverflow的reputation喜过15,终于可以投票了:)

在学习过程中得到了子龙山人(我认为本尊是这位 @屈光辉 )、LearnCocos2d作者Steffen、 @kubisoft 以及众多网上朋友的帮助,再次表示感谢。

7

硬件及开发者资格:看完c++开始看obj-c,这个过程一直是使用的vmware虚拟机安装的mac系统写程序;然后入手一个最便宜的mac pro、以及iPhone,尝试玩各种游戏;从看c++开始大约过了1年半(已经有非常简陋的游戏demo)才真正购入iOS开发者资格并开始真机测试。

8

尝试过的一些其他工具、各种弯路和坑、以及发散内容:

可以拖拽方式写代码的stencyl <Stencyl: Make iPhone, iPad, Android &Flash Games without code>;

最初学的不是ojc-c而是谭浩强老师的c++程序设计(虽然有人不喜谭老师,但那书是中文的让我对面对对象程序设计有一些初步的概念,再看英文的obj-c不至于太摸不着头脑,反正手头正好有这么一本买了6年没看的c++。。。);

尝试过<Tiled Map Editor>但自己目前的坑没有用到;

尝试过一点物理引擎和粒子,但自己目前的坑没有用到;现在粒子用到了,做了火焰等效果,也挺美的;但是一定要注意CPU占用优化,内存方面我最低支持4S没遇到大问题

学习音乐制作,这个我小时候学琴一直也喜欢音乐所以有一点点底子,如果没有基础可能上手有门槛;开始用的软件LMMS,但是音源插件在64位系统的问题我一直没解决掉时间精力也不多,所以是暂时停滞了;最近发现Garage Band可能也可以写歌;另外还试过一个很有历史的微软的音乐自动编辑器,很好玩,用来做背景音乐也不错。

入手手绘板学画画(这中间纠结了好久才决定用位图不用矢量图),如果你能找到热爱游戏的美术同学一起搞那最好不过。但是我一直对画画心痒难搔。。。所以入了这个深坑,晒一晒:

您好,使用Cocos2d-js来使用WebGL是一个很有用的技术,它可以帮助您创建出令人惊叹的2D和3D图形。Cocos2d-js是一个开源的游戏引擎,它可以让您创建出令人惊叹的2D和3D图形,并且可以在多种平台上运行,包括移动设备和桌面计算机。使用Cocos2d-js可以让您利用WebGL来创建出更加逼真的3D图形,这些图形可以用来创建出真实的环境,游戏,动画,以及其他视觉效果。Cocos2d-js还可以用来创建出更加复杂的游戏,因为它可以支持多种类型的游戏,包括动作游戏,角色扮演游戏,策略游戏,以及虚拟现实游戏。使用Cocos2d-js可以让您利用WebGL来创建出更加逼真的3D图形,这些图形可以用来创建出真实的环境,游戏,动画,以及其他视觉效果。Cocos2d-js还可以用来创建出更加复杂的游戏,因为它可以支持多种类型的游戏,包括动作游戏,角色扮演游戏,策略游戏,以及虚拟现实游戏。此外,Cocos2d-js还可以支持多种类型的输入设备,包括键盘,鼠标,游戏手柄,触摸屏,以及其他输入设备。使用Cocos2d-js可以让您创建出令人惊叹的2D和3D图形,并且可以在多种平台上运行,包括移动设备和桌面计算机。总之,使用Cocos2d-js来使用WebGL是一个很有用的技术,它可以帮助您创建出令人惊叹的2D和3D图形,并且可以在多种平台上运行,包括移动设备和桌面计算机。

近日,微信公众平台面向开发者推出了微信内网页开发工具包(微信JS-SDK),内含11类接口集。

从此之后,开发者不仅能够在网页上使用微信本身的拍照、选图、语音、位置等基本能力,还可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为用户提供更优质的网页体验。

那么问题来了:如何在Cocos2d-JS游戏中快速接入微信SDK?

接下来我们将用基于Cocos2d-JS的微信游戏《来自喵星的你》来做个说明,教大家如何快速接入刚刚发布的微信SDK。

(微信支付API正在路上,欢迎关注下期连载哦!)

1.申请公众号

因为微信只能使用公众号接入SDK,所以我们必须先注册一个公众号。

2.设置公众号

登录公众平台后,点击左下角的 设置-公众号设置。右侧有一个js接口安全域名的设置,这里可以绑定3个用到的域名,必须填入顶级域名。

然后点击左下角的 开发者中心,右侧会有一个AppID和一个AppSecret。这两个先记录下来,过后会用到。

3.生成token

打开页面 微信公众平台接口调试工具 并且填入刚才的appid和secret,点击检查问题。记录下返回结果里面的“access_token”的值。

4.获取ticket

复制这个链接:api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=填写刚刚获取的access_token&type=jsapi

并在里面的access_token=后面填入刚刚获取的access_token(对的,就是那一串乱码一样的东西),回车!!

然后把“ticket”的值复制出来,并保存起来,这个就是当前appid的ticket了。

5.生成签名

打开 微信 JS 接口签名校验工具 填入相应的数据:

1)jsapi_ticket: 填入上一步获取的ticket

2)noncestr: 这里随机生成一个字符串填进去(VQhYOUJRz6RolHqN)

3)timestamp: 这里填入一个时间戳,去掉毫秒的3位(如:1420870884) - 这里尽量写ticket生成后的一段时间,new Date() - 0可以获取当前的时间戳

4)url: 准备放页面的地址(域名必须在第二部中设置到安全域名内,如:.cocos2d-x.org/wechat.html)

点击生成签名。记录下下面出现的signature这个值。

6.页面引入微信SDK并初始化

在页面中加入:

<script src="res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

并且执行初始化:

jsApiList填入的是当前需要使用的接口,需要注意的是,如果公众号不具备某些接口的权限,填进去也无法执行。

这时候将页面上传到第五步填入的url地址,并在微信中打开,应该能够看见config:ok的提示。

如果出现了Invalid Url或者Invalid Domain等提示,说明公众号配置里面出现了问题。而出现Invalid signature的话,则是signature生成出现了问题,检查下timestamp以及随机字符串等是否正确。

到这里我们就可以酣畅淋漓的使用微信的SDK啦。

比方说我们判断wifi加载音频,而非wifi情况则不加载任何音频文件: