为一个cocos2dx 2.x游戏配了下mac工程,运行后发现clippingNode没起作用,运行TestCpp中的clippingNode示例是起作用的,对比AppController.mm,发现是applicationDidFinishLaunching中少了一段代码,补充后如下(黄色部分为补充代码):-(void) applicationDidFinishLaunching:(NSNotification *)aNotification { // create the window // note that using NSResizableWindowMask causes the window to be a little // smaller ...
大家都知道一个游戏里面会有大量的图片,每一个图片渲染是须要时间的,以下分析两个类来加快渲染速度,加快游戏执行速度 一、SpriteBatchNode 1、先说下渲染批次:这是游戏引擎中一个比較重要的优化指标,指的是一次渲染凋用。也就是说,渲染的次数越少,游戏的执行效率越高。 2、SpriteBatchNode就是cocos2d-x为了减少渲染批次而建立的一个专门管理精灵的类。 有人会问。怎么高速知道究竟渲染了...
class CC_DLL AutoreleasePool { public://创建一个存放ref的对象池,并且放入PoolManager对象池管理器中AutoreleasePool();//创建一个存放ref的对象池,并且放入PoolManager对象池管理器中,并取个名字AutoreleasePool(const std::string &name);~AutoreleasePool();//添加一个ref对象到对象池中void addObject(Ref *object);//循环遍历容器并让容器中的ref对象调用release,最后清理容器,设置_isClearing 为true//(调用release...
初八开始上班,我竟然能马上进入工作状态,真是蛮佩服自己的。正月放假这阶段发生了好多事。对我的影响很大。迫于家庭压力,谈了四年的女友和我提出了分手,是的,她做出了这个决定。我很难受,她也很痛苦。消沉了好几天,现在,我满血满状态的复活了。我是 这么容易放弃的人么?既然舍不得,就不该轻言放弃!即使希望渺茫,还是应该努力争取下!程序员之路,就是应该克服各种艰难险阻,将不可能变成可能。---------机智的少年,你...
当您的游戏准备发布前,需要编译成为release版本,命令中需要增加 -m release,编译命令如下:cocos compile -p android -m release 在编译结束后,生成xxx_release_unsigned.apk,此时会提示进行签名,需要输入.keystore的路径。 .keystore的生成方法:使用keytool,命令如下: ?1keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048-validity 10000 Keytool 选项描述-genkey生...
由于项目原因,需要把一个使用cocos2dx的项目放到linux下运行(在windows下使用VS编写,可以正常运行),晚上调试了大概3 ~4小时,终于把项目运行了起来。在这里记录一下注意的事项,方便自己也能提醒大家不要犯一样的错误。我使用的是ubuntu kylin 14.04 , cocos2dx版本是2.2.3。项目工程文件如下: 已经包含了cocos2dx的文件包,自己的项目是在projects中。 projects文件夹内容如下: Classes文件夹中是项目的源文件,包括一些...
【本节内容】 开关类CCControlSwitch继承于控件类CCControl。 控件类CCControl主要向子类提供了一系列的控件触发事件。当子控件触发相关的事件后,就会执行相关的控件事件回调函数。这与之前讲的CCMenu中的菜单按钮回调是类似的。 控件类CCControl主要有三个子类: (1)开关控件CCControlSwitch (2)滑块控件CCControlSlider (3)按钮控件CCControlButton 本节讲的是其子类其中之一:开关类...
openGL使用右手坐标从左到右,x递增 从下到上,y递增 从远到近,z递增 OPENGL坐标系可分为:世界坐标系和当前绘图坐标系。世界坐标系以屏幕中心为原点(0, 0, 0)。你面对屏幕,你的右边是x正轴,上面是y正轴,屏幕指向你的为z正轴。长度单位这样来定: 窗口范围按此单位恰好是(-1,-1)到(1,1)。当前绘图坐标系是 绘制物体时的坐标系。程序刚初始化时,世界坐标系和当前绘图坐标系是重合的。当用glTranslatef(),glScalef(), glRotate...
本文转载于:http://shahdza.blog.51cto.com/2410787/1543284【唠叨】 本来是想学学控件类CCControl的另一个子类按钮控件CCControlButton的。但是发现里面有一个参数牵扯到CCScale9Sprite这个类。看到CCScale9Sprite,很容易联想到精灵类CCSprite。两者又有什么区别呢?因此我就去网上收了一些有关CCScale9Sprite的资料来学习。 【致谢】 http://blog.csdn.net/zaojiahua/article/details/21295535 http://blog.csdn.net/...
现在光标终于可移动了,然后其实主要是逻辑问题,也没什么技术含量,所以总是一大堆位置判断!再者自己能力比较水,所以代码比较挫,这里代码只有更新那部分,具体的回车什么的自己去弄就好了,其实跟这个思想差不多吧!个人觉得。代码:CursorTextField.h#ifndef _CursorTextField_H_ #define _CursorTextField_H_#include "cocos2d.h"USING_NS_CC;class CursorTextField : public TextFieldTTF, public TextFieldDelegate { priv...
首先要明确的一点是:cocos2dx是支持中文的。因为其编码格式为UTF-8(无签名)——这只是我在网上找到的结论,并非从官方获取,因此不能十分确定,不过应该无误。 那么,为什么在VS2012环境下,cocos2dx不能正确显示中文呢? 这是因为二者编码格式不一致。VS2012中文版的默认编码格式为GB2312-80(我不确定英文版的格式如何,总之应该不是UTF-8)。在GB2312-80编码格式中,一个中文占2个字节,而在UTF-8格式中,一个中文占3个...
用的是cocos2dx 3.x,如果是真机测试,glview = cocos2d::GLViewImpl::createWithRect(...)和glview->setDesignResolutionSize(...)都得传设备的分辨率,才能使拾取的结果正确。 bool AppDelegate::applicationDidFinishLaunching(){ // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView();#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32||CC_TARGET_PLATFORM == C...
首先肯定得对图片进行分类,如一款卡牌游戏,图片有角色,角色icon,武器,武器icon等;这里用枚举对其分类标识:enum UIIMAGE {ARMOR_IMG,ARMOR_ICON,EQUIP_IMG,EQUIP_ICON,ITEM_ICON,MAX_UIIMAGE } 有了图片分类,其加载路径也是一一对应的,故路径分类也如下:static const char * UIIMAGEPATH[MAX_UIIMAGE] = {"armorImg\\","armorIcon\\","equipImg\\","equipIcon\\","itemIcon\\", } 接着就是实现图片加载的方法...
版本是 cocos2dx 3.3 场景切换的时刻是:(代码有删减)void Director::drawScene() {// calculate "global" dt calculateDeltaTime();if (_nextScene){setNextScene();}}每一帧都会检查,看是不是有 _nextScene, 也就是 是不是需要进行场景切换了。 一般场景切换的过程:当添加一个场景时,正在运行的场景会调用 _runningScene->onExitTransitionDidStart(); _runningScene->onExit();然后新添加的场景会调用onEn...
本文转载于:http://blog.csdn.net/wade333777/article/details/51537357一、基本使用addTouchEventListener是属于Widget下的触摸事件相关的操作,基本使用规则如下:var button = new ccui.Button() button.addTouchEventListener(this.touchEvent, this)touchEvent: function (sender, type) {switch (type) {case ccui.Widget.TOUCH_BEGAN:this._topDisplayLabel.setString("Touch Down");break;case ccui.Widget.TOUCH_MOVED:t...