【玩转cocos2d-x之三十七】在Cocos2d-x中集成安卓版微信SDK

概述

微信的火热程度已不必说了,如果能在Cocos2d-x中集成微信SDK,让游戏能分享给好友或者朋友圈,那对游戏推广将会是非常有利的。好了,本文就是手把手地教大伙如何在Cocos2d-x中集成微信SDK。

环境

  • OS: Mac OSX
  • IDE: Xcode v5.11 and Eclipse ADT v22.3
  • Android SDK:4.0
  • Adnroid NDK:r9d
  • Cocos2d-x 3.2release

创建Cocos2d-x工程

这里不再详述,网上的资料多如牛毛了。这里我按自己习惯的方式来。

【玩转cocos2d-x之三十五】《我叫MT offline》Demo

写在前面

这是怎样一个游戏?

这是一个最好的时代。软件跑在硬件之前,而创意跑在软件之前。除去那些跨时代的作品(现在还没出,比如体感,识别等等和硬件强相关的游戏),现在的手游对技术的要求门槛已经大大降低了。这是个创意决定市场的时代。

(1)比如早些时候的愤怒小鸟,植物僵尸,水果忍者,这些是智能机刚刚诞生的时候出来的,可以说是借iphone引领的触屏之风顺势而行火了一把,这种机会可遇不可求。

(2)再如飞机大战,FlappyBird,这些是利用怀旧风,无差别竞技以及用户口碑营销堆起来的游戏,这靠的要么后台硬有干爹,要么祖坟正运气好,如果都没有,想火也很难。

(3)又如卡牌,COC,横版格斗,这些靠的是真正的创意。由此引来的一堆跟风之作就能看出来,几千万的月流水也证明了这一点,第一个想到创意,第一个抢到市场就是赢家。但是再来山寨就没意思了。

MT就是这样一款一出现就让人眼前一亮的游戏,我期待手游市场天天都能出现不一样的作品,能抓住用户的游戏,而不是反复的换皮圈钱关服走人。

【玩转cocos2d-x之三十四】绘图:CCDrawingPrimitives和CCDrawNode

最近忙出翔了,这年过的也揪心。好久没来更新博客了,今天就来写一写cocos2d-x中图形的绘制。

概述

其实cocos2d-x封装了大量的opengl的绘图函数,我们可以很轻松的在游戏中调用。但是实际上我们很少会这么做,因为编码绘图的方式效率实在太低了,尤其是诸如一些高阶贝塞尔曲线之类的,官方也不建议这么做,使用图像能更有效的提高绘图效率,同时也会更为的美观,也减少了一些精灵遮挡问题和边缘锯齿问题。cocos2d-x中绘图主要有两种方式:CCDrawingPrimitives和CCDrawNode。它们都在cocos2dx\draw_nodes目录下。

【玩转cocos2d-x之三十三】游戏嵌入Webview网页

手游《我叫MT》一开始会弹出一个游戏公告,有玩过的肯定都蛮熟悉的,这就是webview,就是一个网页。由于webview和平台相关,这里就介绍下cocos2d-x如何嵌入andorid的webview控件,在cocos2d-x中显示网页。

Jni

Jni这里我就不再多说了。可用参考wikipedia,或者微信飞机大战的移植篇。通过Jni,可以实现在cocos2d-x中调用Android的API,当然也可以进行传值。

Android使用webview

直接上代码。主要是处理布局和webview使用的问题。这里采用代码布局。以下操作在android的主类(cocos2dxActivity)中处理。

【玩转cocos2d-x之三十二】xml的解析

cocos2d-x中对xml的解析是采用的TinyXML库,而对plist的解析同时结合了CCDictionary来处理,这里简单介绍下cocos2d-x中解析xml的两种方式,也是常用的xml两个C++解析库:TinyXML和RapidXML。xml被设计用于数据存储和传输,重点是数据内容本身,而不像html,用于表现数据。

TinyXML

概况

TinyXML的主页,本来不打算介绍这个库的,因为它的解析效率并不高,但是鉴于cocos2d-x采用的就是它,所以也稍微写一下它的用法,cocos2d-x使用的是TinyXML2,Github地址在这里。就是对TinyXML重新进行了封装,具体的区别在其github上也写的很清楚了。

【玩转cocos2d-x之三十一】服务器的网络通信编程

这里采用Apache+php搭建了一个简易服务器,服务端用php语言,客户端采用cocos2d-x的CCHttpClient类通过http方式访问服务端资源。模拟了cocos2d-x提交账户和密码到服务端,服务端校验帐号密码,如果正确返回客户端成功登录,如果错误则返回错误信息,同时在服务端后台保存登录log。第一次接触php,语法上和C/C++还是蛮像的,主要是给出一个cocos2d-x网络实例,代码中并没有做一些防呆纠错措施。

搭建Apache+php网页服务器

Apche2.2 x86版:下载地址

php5.2.17版:下载地址

搭建过程参见这里,这里就不安装MySQL了。

【玩转cocos2d-x之三十】点九图和输入框的使用

登录界面一个帐号/密码输入框或者主角命名框是少不了的。这节就来了解一下点九图的输入框的使用。这里只是介绍基础知识,并不进行平台的移植,也不处理跨平台可能出现的问题。

点九图CCScale9Sprite

概述

点九图做过移动开发的肯定不会陌生。采用的是PNG点9图,PNG点9图可以自适应各种环境,同时保持伸缩不变形。移动端的UI基本上都是按这个来做的。点9图的制作很简单,用Android SDK的tool下的draw9patch.bat就可以制作。左为原理图,右为效果图。

【玩转cocos2d-x之二十九】利用CCClipingNode做游戏遮罩

新手引导是游戏中必备的(除了奇葩的MT用一段动画开始),也是玩家对游戏的第一印象,重要性不言而喻。一般采用的遮罩的形式来突出引导重点,同时屏蔽其他功能。这里简单的介绍一下游戏遮罩的实现,并给出一个示例。

CCClipingNode

CCClipingNode是一个可裁剪节点,简单理解:

(1)首先它是一个节点,继承于CCNode,所以它可以像普通节点一样放入CCLayer,CCScene,CCNode中。

(2)作为节点,它就可以用作容器,承载其他节点和精灵。我把它叫底板。

(3)如果想要对一个节点进行裁剪,那需要给出裁剪的部分,这个裁剪区域,我把它叫模版。

【玩转cocos2d-x之二十八】cocos2d-x的消息和数据传递

如何在层间或者场景间进行消息传递,大概是每个初学者都要面对的问题吧。这里介绍cocos2d-x的一种消息/数据传递方式,内置的观察者模式,也称消息通知中心,CCNotificationCenter。

CCNotificationCenter

CCNotificationCenter是cocos2d-x提供的一个消息中心,类似于观察者模式,是一个单例类,用于辅助控制消息传递。大概工作原理如下图。

,