Cocos2d-X专栏
文章平均质量分 64
hello_wangbin
致力于移动平台优质游戏的创作
展开
-
关于cocos2dx在android设备黑屏或者纹理黑块的几种情况
最近项目中遇到图片出现黑块的情况,主要表现为:支付回到游戏后,部分纹理在部分机型上出现黑块。google了一下,大多数给的答案是:在老版的cocos2dx引擎中,当前游戏的Activity跳转到支付,执行了onpause后,会卸载当前纹理,当回到游戏的Activity,执行onResume后,会恢复纹理。然后仔细跟了一下TextureCache以及TextureRender的源码,发现其实原创 2016-01-05 21:46:50 · 6191 阅读 · 0 评论 -
Cocos2d-x内存管理 -- 绕不过去的坎
原文出处:Cocos2d-x内存管理 -- 绕不过去的坎。感谢原文作者的分享,分析的非常透彻。转载 2014-08-16 01:08:30 · 1142 阅读 · 0 评论 -
三分钟理解cocos2dx的内存管理
cocos2dx的内存管理移植自Objective-C, 对于没有接触过OC的C++开发人员来说是挺迷惑的。不深入理解内存管理是无法写出好的C++程序的,我用OC和cocos2dx也有一段时间了,在此总结一下,希望对想用cocos2dx开发游戏的朋友有所帮助。C++的动态内存管理一般建议遵循谁申请谁释放的原则,即谁通过new操作符创建了对象,谁就负责通过delete来释放对象。如果原创 2014-08-14 09:32:12 · 833 阅读 · 0 评论 -
菜鸟入门之lua与c++相互调用(包含多个demo)
前两篇文章中,已经介绍了使用vs2010编译lua5.1源码生成lua.lib 和 vs项目中使用c++调用lua,可以保证demo在vs上运行起来了。这里再详细介绍下c++和lua之间的相互调用以及原理。c++与lua直接的调用,实际上通过一个栈结构来传递数据,该栈结构栈顶的索引值为-1,向栈底方向索引值依次为-1 ,-2......栈顶索引为1.栈结构里可以放函数,表,字符串,整形等各种l原创 2014-08-24 11:11:42 · 4108 阅读 · 0 评论 -
两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)
之前在进行cocos2dx开发时,已经详细介绍了如何将win32的c++代码移植到Android平台,当再次回顾时,发现一些基础的东西理解并不是很彻底,今天使用Android NDK提供的一个例子做一个简单的移植。1.创建Android项目创建一个Android项目 , 包名是com.example.hellojni,创建一个Activity作为程序进入的Acitivity,命名为Hell原创 2014-07-06 23:34:38 · 2372 阅读 · 0 评论 -
Cocos2dx android 部分代码的理解
原文出处:http://eric-weitm.iteye.com/blog/1995343Cocos2dx android 部分代码的理解 一、概述 基本上是搭建了基本的android app的架子,并对一些系统相关的功能进行了封装二、java部分的细节1、入口是 Cocos2dxActivity = Cocos2dxHelper + Coco转载 2014-03-10 17:33:45 · 1029 阅读 · 0 评论 -
细说cocos2dx中的回调函数
原文地址:http://blog.csdn.net/fylz1125/article/details/8546607cocos2d-x中有大量的回调函数的应用,主要有以下几类,看下CCObject.h中的定义[cpp] view plaincopyprint?typedef void (CCObject::*SEL_SCH转载 2013-11-21 23:56:35 · 2420 阅读 · 0 评论 -
cocos2dx场景切换动画
原文出处:http://blog.csdn.net/song_hui_xiang/article/details/8721132 //扇形 逆时针// CCTransitionScene* transition = CCTransitionProgressRadialCCW::create(1.5f, MyScene::createMyScene());// CCDi转载 2013-11-16 12:37:10 · 1027 阅读 · 0 评论 -
cocos2dx之触摸事件
要使精灵能够接收到触摸事件,无非要做三件事。注册触摸事件;接收触摸事件;处理触摸事件。下面就从这三点出发,来了解一下精灵如何响应触摸事件。1.注册触摸事件精灵类Poker继承Sprite和CCTargetedTouchDelegate,并重写CCTargetedTouchDelegate的三个函数ccTouchBegan,ccTouchMoved,ccTouchEnded原创 2013-07-25 21:16:38 · 4860 阅读 · 19 评论 -
OpenGL: 渲染管线理论
学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解。首先要知道几个OpenGL的术语渲染(rendering):计算机根据模型(model)创建图像的过程。模型(model):根据几何图元创建的物体(object)。几何图元:包括点、直线和多边形等,它是通过顶点(vertex)指定的。最终完成了渲染的图像是由在屏幕上绘制的像素组成的。在内存中,转载 2014-10-15 20:43:08 · 2291 阅读 · 0 评论 -
x86 Android游戏开发专题篇之使用google breakpad捕捉c++崩溃(以cocos2dx为例)
最近一直都在x86设备上进行游戏开发,就c++层和Android java层倒没有什么要特别注意的(除了需要注意一下修改Application.mk指定平台外),在c++崩溃的时候,很多时候看不到堆栈,只能看到一个信号,所以由于工作需要,使用google breakpad来进行异常捕捉。1.下载google breakpad下载地址是 http://code.google.com/p/g原创 2014-11-18 21:30:11 · 4032 阅读 · 0 评论 -
如何优化cocos2d/x程序的内存使用和程序大小
原文转载地址:如何优化cocos2d/x程序的内存使用和程序大小在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”。而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个非常有意义的话题:“请简单地讲述你认为新手cocos2d程序员在他开始编码之前,最应该先知道,或者应该关注和注意的事项。”这个问题的答案转载 2015-01-12 17:44:50 · 939 阅读 · 0 评论 -
cocos2d粒子系统工具Particle Designer
工具下载地址http://particledesigner.71squared.com./ 原文地址 http://www.wjxfpf.com/2015/10/492076.html如果你点开http://www.71squared.com/,将会看到这本书的介绍(图见下),以前看过英文版的,感觉对于新手来说很好用,能够全面了解整个游戏的开发过程,并且有一转载 2015-11-25 15:27:11 · 1873 阅读 · 0 评论 -
Android下快速提取ndk crash日志的命令
Android下快速提取ndk crash日志的命令在android下进行ndk开发,发生 crash后,可使用dk_stack快速提取ndk崩溃日志: adb logcat | ndk-stack -sym /data/data/com.xxx.xxx/lib/libcocos2dcpp.so com.xxx.xxx是包名原创 2015-10-31 15:27:51 · 1548 阅读 · 0 评论 -
Protobuf2.6集成到cocos2dx(Android和ios平台)
在做当前的宠物游戏的时候,需要用到长链,数据打算使用protobuf,这两天将protobuf在ios项目和android项目进行了集成。一.准备工作下载protobuf源码: 下载链接不太建议去github上下载,因为还需要使用automake autoconf来配置,直接从谷歌protobuf官网下载,接下来执行四步即可到位。二.安装这里默认源码是从谷歌protobu原创 2015-10-23 21:26:13 · 2982 阅读 · 2 评论 -
cocos2dx 3.x物理引擎对于setCollisionBitmask、setCategoryBitmask、setContactTestBitmask的理解
setCategoryBitmask(int bitmask),定义当前刚体的掩码值为bitmasksetCollisionBitmask(int bitmask),允许和掩码值为bitmask发生碰撞setContactTestBitmask(int bitmask),在和掩码值为bitmask的刚体碰撞时通知我原创 2015-10-04 01:28:40 · 2328 阅读 · 0 评论 -
(转)记一次内存优化的分享
原文:记一次内存优化的分享公司游戏已经进行到最后一个阶段了,经过最后一次引擎升级之后使用的是3.3的版本。以前产品定位的目标是只需要兼容1G或者以上内存就可以,我们也一直没关注低内存的运行情况。现在发行渠道要去兼容512内存,这就不得对游戏进行优化了。一般来说,游戏里比较容易出内存问题的地方是纹理资源和内存泄露。对于内存泄露来说,由于我们使用的是lua脚本进行逻辑开发,而且在测转载 2015-05-18 09:43:54 · 932 阅读 · 0 评论 -
使用meminfo分析Android单个进程内存信息
原文出处:使用meminfo分析Android单个进程内存信息点击打开链接可以使用adb shell dumpsys meminfo -a /来查看一个进程的memory。截图如下:Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间Native Heap Alloc: 从mallinfo uorblks获得,转载 2015-05-15 22:47:35 · 1833 阅读 · 0 评论 -
记一次内存优化的分享
出处:记一次内存优化的分享公司游戏已经进行到最后一个阶段了,经过最后一次引擎升级之后使用的是3.3的版本。以前产品定位的目标是只需要兼容1G或者以上内存就可以,我们也一直没关注低内存的运行情况。现在发行渠道要去兼容512内存,这就不得对游戏进行优化了。一般来说,游戏里比较容易出内存问题的地方是纹理资源和内存泄露。对于内存泄露来说,由于我们使用的是lua脚本进行逻辑开发,而且在测转载 2015-05-15 18:39:16 · 817 阅读 · 0 评论 -
64位linux系统无法运行Android sdk的adb和aapt,提示No such file or directory的解决办法
参考资料:http://askubuntu.com/questions/147400/problems-with-eclipse-and-android-sdkhttp://serverfault.com/questions/442792/ubuntu-12-04-apt-get-install-ia32-libs-unmet-dependencieshttp://my.oschina原创 2014-12-11 14:32:05 · 7283 阅读 · 1 评论 -
两分钟让你明白cocos2dx的屏幕适配策略
闲来无事,整理了一下cocos2dx的屏幕适配策略,本文适用于想快速理解cocos2dx适配的开发者。我们先假设:以854 * 480 的屏幕为标准进行开发,当然,这也就是cocos2dx所说的设计分辨率(Design Resolution)。先介绍几个cocos2dx的常用函数:CCEGLView::sharedOpenGLView()->setDesignResolutionSiz原创 2013-09-25 00:08:39 · 6639 阅读 · 0 评论 -
设计模式学习之消息驱动机制
消息驱动机制,也叫观察者模式、事件驱动模式。不论是在应用还是游戏中,都是一种常见的设计模式,该设计模式非常利于模块的解耦。我们这里以老师和学生为例,有一个老师和多个学生,老师发的每一个消息,学生都要能够收到。如:老师说,明天我们放假,然后确保所有学生都能收到该消息。首先,建立一个消息分发中心,负责收集和移除消息接收个体(这里就是学生),同时负责通知到收集的每一个个体。该类命名为Human_原创 2013-10-09 19:54:06 · 4188 阅读 · 1 评论 -
sublime text2 用ctags插件实现方法定位
原文出处:sublime text2 用ctags插件实现方法定位package control 安装我们用sublime几乎都会首先安装这个插件,这个插件是管理插件的功能,先安装它,再安装其他插件就方便了。 点击sublime的菜单栏 view->show console ;现在打开了控制台, 这个控制台有上下两栏, 上面一栏会实时显示sublime执行了什么转载 2013-09-12 14:26:21 · 2555 阅读 · 0 评论 -
Cocos2dx的定时器
this->schedule(schedule_selector(PokerScene::beginToDealCard) ,2);表示每隔两秒就执行一次beginToDealCard;如果想只执行beginToDealCard函数一次,则可以在beginToDealCard的末尾加一行代码来取消定时器:this->unschedule(schedule_selector( P原创 2013-07-19 13:18:10 · 914 阅读 · 0 评论 -
关于cocos2dx创建CCLayer应该注意的几点
1.继承CCLayer的h头文件中一定要加入CREATE_FUNC(HelloWorld),没有这个宏,CCLayer的create函数是无法被找到的。2.init函数在执行create函数的时候会被调用,如果init函数返回false,那么,也会导致CCLayaer的创建失败。3.CCLayer *pLayer = new CCLayer(),只会调用onEnter函数,不会触发init原创 2013-07-19 13:15:14 · 1289 阅读 · 0 评论 -
cocos2d-x 之 适配分辨率全屏的方法
原文出处:http://dualface.github.io/blog/2012/08/17/cocos2d-x-2-dot-0-multi-resolution/cocos2d-x 2.0 提供一个极有价值的新特征: setDesignResolutionSize() 。这个函数用于指定一个 OpenGL 视图,然后将这个视图映射到设备屏幕上。根据不同的设定,视图会自动缩放显转载 2013-07-16 19:24:00 · 3254 阅读 · 0 评论 -
Android NDK环境搭建和配置
转载出处:http://curran.blog.51cto.com/2788306/506837今天我给大家演示如何搭建Android NDK我们到Cygwin的官方网站下载Cygwin的安装程序,地址是: http://www.cygwin.com/setup.exe下载完成后,运行运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框,如下转载 2013-07-15 10:14:23 · 769 阅读 · 0 评论 -
win7下搭建cocos2d-x androi开发环境不用cygwin的方法
这篇文章转自http://blog.csdn.net/emcodelin/article/details/8800942。虽然我自己是在用cygwin,不过这也的确是个很方便的方法。推荐给大家看下。配置自动编译接下来以引擎自带的HelloCpp为例配置C++的的自动编译。在eclipse中导入hellocpp工程。操作路径:eclipse--file--import转载 2013-07-15 09:36:51 · 842 阅读 · 0 评论 -
cocos2dx入门之获取当前语言环境
很多时候需要将游戏国际化,这个时候需要知道系统语言了,以下代码可以获取当前语言环境。ccLanguageType currentLanguageType = CCApplication::sharedApplication()->getCurrentLanguage(); switch (currentLanguageType) { case kLanguageEnglish:原创 2013-06-05 23:50:43 · 1790 阅读 · 0 评论 -
cocos2d-x坐标系、锚点、矩阵变换详解
1. OpenGL 坐标系 Cocos2D-x 以OpenGL 和OpenGL ES 为基础,所以自然支持OpenGL 坐标系。该坐标系原点在屏幕左下角,x 轴向右,y 轴向上。屏幕坐标系使用的是不同的坐标系统,原点在屏幕左上角,x 轴向右,y 轴向下。iOS 的屏幕触摸事件CCTouch 传入的位置信息使用的是该坐标系。因此在Cocos2D-x 中对触摸事件做出响应前,需要转载 2013-05-07 13:13:52 · 3097 阅读 · 0 评论 -
cocos2dx之砖块地图研究——TiledMap,CCTMXTiledMap,CCTMXLayer,CCTMXObjectGroup
先对TiledMap,CCTMXTiledMap,CCTMXLayer,CCTMXObjectGroup做一下简单介绍。TiledMap地图,是游戏开发中常用的地图,称之为砖块地图(瓷砖地图,瓦片地图),格式为tmx。官网:http://www.mapeditor.org/CCTMXTiledMap,cocos2dx的地图类,通过加载tmx文件直接得到。CCTMXLayer,c原创 2013-07-30 12:58:38 · 5873 阅读 · 0 评论 -
cocos2dx输出Log的几种方法
一直使用vs2010开发cocos2dx,查看cocos2dx的log也一直使用CCLog来打印到vs2010的输出控制台,同时也可以将log输出到命令行窗口。log输出方法一:使用CCLog输出到vs控制台,当然了,这也可以跨平台输出log。log输出方法二:在打印前,加入以下代码: AllocConsole(); freopen("CONIN$", "r",原创 2013-07-31 19:42:27 · 11586 阅读 · 0 评论 -
Cocos2dx之使用cygwin移植win32项目到Android平台
win32下可运行的项目移植到Android平台相对比较简单,下面还是一步步来进行移植。1.设置cocos2dx根目录下的create-android-project.bat打开该bat文件,设置以下变量set _CYGBIN=D:\cygwin\bin..set _ANDROIDTOOLS=D:\adt-bundle-windows\sdk\tools..set _NDKRO原创 2013-07-24 18:23:37 · 1597 阅读 · 0 评论 -
Cocos2d-x 结合Box2D开发Android游戏配置方法
转载自:Cocos2d-x 结合Box2D开发Android游戏配置方法先通过 create-android-project.sh 脚本创建一个新的 cocos2d-x for android 工程。注意,在执行该脚本前需要先对该脚本进行编辑,来设定 NDK_ROOT 和 ANDROID_SDK_ROOT 两个变量的值(在该脚本文件的最前面几行)。NDK_ROOT 变量用来指定你计算机上转载 2013-08-09 19:56:17 · 1427 阅读 · 0 评论 -
cocos2dx移植到Android平台避免手动添加CPP路径到Android.mk
参考文章1:[原创]编写Android.mk中的LOCAL_SRC_FILES的终极技巧参考文章2:Eclipse Cocos2d-x 开发自动管理在对cocos2dx项目移植到Android平台时,经常需要手动配置Android.mk文件,这里根据以上两篇文章(尤其是第一篇文章,讲的很详细),自己实现避免手动配置Android.mk的配置。先看看修改后的Android.mk文件配置:转载 2013-08-09 19:37:59 · 1479 阅读 · 0 评论 -
cocos2dx之使用Eclipse和NDK直接移植win32项目,无需cygwin
win32的项目移植到Android平台,除了可以使用cygwin来帮助完成编译打包so文件,也可以使用NDK来完成这项工作,当然,NDK的版本要高于R7B才能支持。1.设置cocos2dx根目录下的create-android-project.bat使用notepad++打开该create-android-project.bat文件,设置以下变量,修改成自己的pc对应的路径。原创 2013-07-26 19:51:15 · 1859 阅读 · 0 评论 -
cocos2dx移植到Android报错:collect2: ld returned 1 exit status
今天将一个cocos2dx小游戏移植到Android平台,并进行编译和打包时,遇到以下错误:d:/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/原创 2013-08-09 13:12:54 · 3873 阅读 · 0 评论 -
lua代码编写小知识点
1.克隆表u = {unpack(table)} 一般克隆长度较小的表2.判断表是否为空if next(t) == nil then.. 判断该表是否为空,包括t={}的情况3.插入表使用t[#t + 1] = value,会比table.insert看起来更加简洁且效果更高4.使用更加简洁的表达形式x = x or "Boyaa" 代替 if x == fals原创 2013-08-20 15:43:02 · 1176 阅读 · 0 评论 -
cocos2dx在Eclipse下编译报错:Cannot find module with tag 'CocosDenshion/android' in import path
在Eclipse下编译cocos2dx项目,报错如下:Android NDK: jni/Android.mk: Cannot find module with tag 'CocosDenshion/android' in import path Android NDK: Are you sure your NDK_MODULE_PATH variable is properly de原创 2013-07-26 18:25:18 · 12550 阅读 · 7 评论 -
cocos2dx之http网络编程(二)——json数据解析
上一篇文章讲解了如何使用发起请求并接受数据,本篇文章开始使用libjson来解析网络json数据。cocos2dx本身没有json解析类库,我们这里引入libjson进行解析。下载地址:http://sourceforge.net/projects/libjson/files/我目前使用的版本是7.6.1。1.下载libjson并解压下载后,解压出来,这里对我们有用的文件是:l原创 2013-08-01 21:57:52 · 5440 阅读 · 0 评论