
cocos2d
_Bruce
在其职,谋其政,尽其责
展开
-
使用C++调用浏览器、邮箱等
lpOperation 进行的操作,如"open","print","explore"分别对应 "开启","列印","浏览", 也可以为空(""),此时表示进行预设的操作。SW_SHOWNORMAL 启动并显示视窗,如果是最大(小)化,视窗将会还原。SW_MINIMIZE 最小化,并把Z order顺序在此视窗之后(即视窗下一层)的视窗启动。SW_SHOWNOACTIVATE 以初始化大小显示视窗但不改变当前启动的视窗。SW_SHOWNA 以当前状态显示视窗但不改变当前启动的视窗。原创 2024-02-20 12:07:05 · 473 阅读 · 0 评论 -
cocos2d shader高亮
BlinkShader.vshattribute vec4 a_position;attribute vec2 a_texcoord;attribute vec4 a_color;#ifdef GL ESvarying mediump vec2 v_texcoord;varying mediump vec4 v_fragmentColor;#elsevarying vec2 v_texCoord;varying vec4 v_fragmentColor;#endif原创 2022-03-13 16:51:46 · 4486 阅读 · 0 评论 -
tableView reloadAndLocation
local offset = tableview.getContentOffset();local oldSize = tabletview.getContainer().getContentSize();tabletview.reloadData();let newSize = tableview.getContainer()/getContentSize();let size = cc.size(newSize.width - oldSize.width,newSize.height -原创 2022-03-13 16:33:50 · 347 阅读 · 0 评论 -
cocos2dx FBX转换成C3B/C3T
虽然说cocos2dx做3d游戏有点鸡肋,但是在2d游戏中有时候我们会简单的用到些3d模型,市场上大多数3d软件导出的格式一般是*.fbx格式的文件,但是cocos2d中支持的文件只有*.c3b、*.c3t两种格式,c3t文件为普通文本格式;c3b为二进制格式,也是提倡使用的。这个时候就需要我们将fbx文件转换成c3t、c3b文件了。首先拉取工程文件:百度网盘 请输入提取码密码:25bj下载下来是一个c++的工程文件,这个时候我们开始编译,不出意外的话会出现:error C1083: 无原创 2022-02-17 16:42:29 · 10808 阅读 · 0 评论 -
xcode12 编译 cocos2d报错
使用xcode12 构建 cocos2d 3.17项目出现以下类似问题:the linked framework is missing one or more architectures required by this target arm64究其原因:因为v8不支持32位cpu,即不支持armv7,如果你不需要再支持32位设备的话,那么你可以直接去掉armv7的编译修改如下:基本以上四出修改就能解决debug模式下跑起来项目,真机上暂时没试,应该也是直接修改release中的..原创 2021-09-03 01:16:38 · 665 阅读 · 0 评论 -
cocos相关资料
https://blog.csdn.net/u013007305/article/details/50995684原创 2020-10-21 14:38:28 · 122 阅读 · 0 评论 -
cocos2dx-lua在xcode8.3的模拟器上崩溃解决办法
用xcode跑cocos2d3.17的版本项目lua-tests crash when LuaStack::init() function invoked lua_open()崩溃问题据说是原创 2020-09-21 19:56:35 · 377 阅读 · 0 评论 -
cocosStudio中使用动画
csdn的插入代码的功能更新出bug了么,编辑出来的代码,格式错乱..........只能贴图片了原创 2020-09-18 14:56:16 · 228 阅读 · 1 评论 -
setLastFrameCallFunc接口不能使用
坑 坑 坑~~~~~~~~~在使用cocosStudio导出的帧动画时,动画最后一帧回调不起作用、崩溃问题,原因是引擎中并没有成功导出lua接口解决方案:1、打开lua_cocos2dx_coco_studio_manual.cpp文件,找到extendActionTimeline2、仿照setFrameEventCallFunc的实现重新导出下setLastFrameCallFunc接口static int lua_cocos2dx_ActionTimeline_setLastFra原创 2020-09-18 14:44:25 · 217 阅读 · 0 评论 -
初识Opengl
OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。最后,我们使用当前OpenGL上下文来渲染。...原创 2020-08-19 23:10:16 · 212 阅读 · 0 评论 -
创建OpenGl窗口
#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow *window);// settingsconst unsigned int SCR_WIDTH = 800;const.原创 2020-08-16 22:06:23 · 275 阅读 · 0 评论 -
将lua print输出到cocos2d控制台输出窗口中
local babe_tostring = function(...) local num = select("#",...); local args = {...}; local outs = {}; for i = 1, num do if i > 1 then outs[#outs+1] = "\t"; end outs[#outs+1] = tostring(...原创 2020-08-15 23:58:46 · 839 阅读 · 0 评论 -
cocos2d 之lua加密
加密方式lua 代码加密方式很很多种,这里只讲最简单的一种,就是把代码编译成二进制字节码。lua 是一门脚本语言,不需要经过编译就可以使用 lua 解释器来执行;但我们也可以把 lua 代码事先编译成二进制文件,这样就达到了加密的方式。使用 lua 编译器最简单也最直接的方式就是使用 lua 编译器来编译 lua 代码,编译的方式很简单,打开命令行,输入下面的命令lucac -o out.lua source.luatest.lua 文件内容如下:print("test lua"原创 2020-08-05 20:34:06 · 1299 阅读 · 0 评论 -
使用vs生成lua解析器、编译器、链接库
链接库、解释器和编译器lua 是开源的,我们可以从官网下载源代码,其源代码是用纯 c 写的,因此如果想要在 c 项目中嵌入 lua 代码很简单,只需要把 lua 的源代码包含到 c 项目里面即可。但这肯定不是最好的方式,更好的方式是把 lua 源代码编译成链接库,要使用的时候直接包含链接库和必要的头文件即可。另外,除了在 c 或其它项目中使用 lua 之外,我们可能还要单独地执行 lua 文件,甚至直接在命令行交互式地执行 lua 语句,因此还要生成相应的 lua 解释器和 lua 编译器。lua原创 2020-08-05 18:06:46 · 849 阅读 · 0 评论 -
python将json转换成lua
废话不多说,直接上代码:# -*- coding:utf-8 -*-import jsonimport typesimport sysimport osimport os.pathdef space_str(layer): lua_str = "" for i in range(0,layer): lua_str += '\t' return lua_str def...原创 2019-12-21 16:41:05 · 1009 阅读 · 0 评论 -
LuaJavaBridge - Lua 与 Java 交互
在游戏开发中对接android平台时,我们不得不用到java,但是,游戏中的逻辑全是通过lua编写的,最初的方法就是通过中间层 C++,c++通过Jni实现跟java的交互,然后再听过toolua++,把接口暴露给lua,但是这样的就很繁琐,现在有了LuaJ,我们就能够使用lua通过luaj直接调用java了。luaj 主要特征可以从 Lua 调用 Java Class Static Me...原创 2019-12-21 15:14:31 · 681 阅读 · 0 评论 -
【cocos2d-x 源码解析】shader 实现
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...原创 2019-11-16 15:28:16 · 418 阅读 · 0 评论 -
绑定自定义c++类至Lua
绑定自定义类至lua【1】* 确定你安装了Android NDK R9B 版本 ,如果没有前往下载。*下载Python2.7.3 (32bit),并保证它被正确安装。* 为Python设置用户变量,"系统"->(右健)属性->"高级系统设置"->环境变量->在用户变量栏加入附一中的系统变量。*下载pyyaml ,并安装。*下载pyCheetah ,...原创 2019-11-09 16:04:03 · 422 阅读 · 0 评论 -
cocos2d中的坐标转换
先说下世界坐标跟本地:// 把世界坐标转换到当前节点的本地坐标系中Point convertToNodeSpace(constPoint& worldPoint) const; // 把基于当前节点的本地坐标系下的坐标转换到世界坐标系中Point convertToWorldSpace(constPoint& nodePoint) const; // 基于Anch...原创 2019-11-03 22:20:07 · 445 阅读 · 0 评论 -
ShoeBox制作字体
shoebox中文版是一款基于AdobeAIR实现的免费跨平台的照片管理工具。这个工具使用拖放、剪切板的工作流程方式,能够很方便的处理游戏图片、创建位图字体等右键打开设置面板,在Txt Chars输入你要制作的字体2.左键按住BitmapFont图标2s左右,会复制我们的字符集到剪切板上,这时候打开Photoshop,新建一个文件,用文本输入工具或者热键T点击画布,然后粘帖剪切板上...原创 2019-10-09 18:44:19 · 2391 阅读 · 0 评论 -
cocos2d 热更新 创建文件失败
在做热更新功能时用到了AssetsManager,发现在windows平台总是报CREATE_FILE错误,errorStr"Can't renamefile from:xxx.tmp to: C:/Users/Administrator/AppData/Local/xxx",最后发现创建下载任务时第二个参数传错了,传的是_storagePath,应该是outFileName_downl...原创 2019-09-18 23:42:40 · 487 阅读 · 0 评论 -
cocos2d 热更新的实现
热更新的中心思想就是一个资源路径优先级的问题,将热更新的资源下载下来,在游戏中优先加载热更新下载的资源已达到热更新的目的,lua虚拟机的重启,文件的重新requireC++版:UpDataLayey.h#ifndef __HOTUPDATER_H__#define __HOTUPDATER_H__#include "cocos2d.h"USING_NS_CC;#includ...原创 2019-09-18 23:17:56 · 489 阅读 · 0 评论 -
C++ STL中Map的按Key排序和按Value排序
如何实现Map的按Value排序呢? 第一反应是利用STL中提供的sort算法实现,这个想法是好的,不幸的是,sort算法有个限制,利用sort算法只能对序列容器进行排序,就是线性的(如vector,list,deque)。map是一个集合容器,它里面存储的元素是pair,但是它不是线性存储的(像红黑树),所以利用sort不能直接和map结合进行排序。因而可以采用一些其它的思原创 2017-08-28 15:56:21 · 380 阅读 · 0 评论 -
cocos2d创建不规则按钮
在游戏中,有时候会遇到不规则的按钮,比如:三国类的地图上的按钮,根据国家的的大小,划分成不同大小的不规则按钮,我们知道,素材都是规则的矩形,只不过有些圆形,不规则等图形中,在Image中处理时的数据为0而已。具体的像素问题不是很了解,好了,直接上代码。IrregularButton.h#ifndef __IRREGULAR_BUTTON_H__#define __IRREGULA原创 2017-07-16 21:26:23 · 1091 阅读 · 1 评论 -
cocos2d读取plist文件
plist文件如下:arrHello10namecjsvoid myTestreadPlist(){ FileUtils *fu = FileUtils::getInstance(); ValueMap vm = fu->getValueMapFromFile("data.plist"); ValueVector vv = vm["a原创 2017-07-11 01:03:24 · 690 阅读 · 0 评论 -
cocos2d读取xml文件
xml文件如下: #include //#include #include void myTest(){ auto doc = new tinyxml2::XMLDocument(); doc->Parse(FileUtils::getInstance()->getStringFromFile("data.xml").c_str(原创 2017-07-11 00:23:42 · 1125 阅读 · 0 评论 -
背景移动视差效果
我们在游戏中有时会遇到 两层背景的情况,要离我们远的背景移动比较慢,近的比较快,如果不想自己写写两层背景,我们可以利用引擎自带的视差节点来做 auto sprite3 = Sprite::create("HelloWorld.png"); sprite3->setAnchorPoint(Point(0, 0)); auto sprite4 = Sprite::create("HelloW原创 2017-05-01 15:57:50 · 1026 阅读 · 0 评论 -
clippingNode 新手引导
试用于 游戏中的新手引导跟 弹幕滚动//clippingNode auto label = LabelTTF::create("hello World nice to meet you", "", 30); //设置要滚动的弹幕 label->setTag(100); label->setPosition(Vec2(origin.x +250,origin.y+100)); a原创 2017-05-01 14:44:40 · 291 阅读 · 0 评论 -
通过断点调试lua
1、首先安装vs2012及以上的版本;2、下载BabeLua安装包,下载地址:http://pan.baidu.com/s/1qXUtrC43、安装BabeLua,双击安装就可以,这个插件类似于番茄插件;4、启动vs,验证安装,在主菜单是看见LUA就是安装成功了;5、配置项目:配置后保存,在上边选择刚刚配置的项目打开,并将其设置成启动项,完整界面见下图:注意下W...原创 2017-04-12 22:20:14 · 5770 阅读 · 0 评论 -
cocos2d实现橡皮擦、刮刮卡功能
在工作中,有时候会遇到刮奖一类的需求,这类其实还好,用到渲染的就很好做了。我们需要两张图片:一个被刮出的图片,一个油漆图片。油漆通过渲染到画布上,然后我们滑动鼠标时,再渲染一个一系列的圆点,每渲染一个圆点时,这时候有个源颜色与目标颜色的混合,从而实现擦除的效果,其中还涉及到“源因子”跟“目标因子”。具体可以参考一下文章:http://blog.csdn.net/dionysos_lai/artic原创 2017-03-29 23:42:40 · 2274 阅读 · 0 评论 -
JNI中jstring 与 const char* 的转换
在不同编码环境的时候,经常会遇到出现乱码的情况,我们需要自己转换下://将const char类型转换成jstring类型jstring CStr2Jstring( JNIEnv* env, const char* pat ){//定义Java String类 strClassjclass strClass = (env)->FindClass("Ljava/lang/String;"转载 2017-03-28 00:03:19 · 1261 阅读 · 0 评论 -
cocos2d c++与java的交互
接触这么长时间的cocos2d了,虽说是跨平台的,但是一直没有机会去了解c++跟平台语言交互(java,oc),看到许多网上的不是很详细,就抽空整理下,如有不足欢迎指出。今天就简单写下c++跟java的交互,他们之间是通过一个叫jni的东西是实现的,不知道是什么鬼的,请自行百度下。我们实现的就是在c++层上点击事件,将信息传递到android的java层,然后java层再将信息返回给c++层。原创 2017-03-27 23:52:30 · 477 阅读 · 0 评论 -
cocos2d读取json的方法(c++&lua)
json文件如下:{ "entities": [ { "entity": { "TapOpposite": 0, "Interval": 0.95, "BallNum": 1 }原创 2017-03-12 21:20:11 · 1100 阅读 · 0 评论 -
Texture的渲染及截屏功能
我们今天就简单说下 cocos2d的Texture的简单用法,并将一张大图裁剪成小图并保存起来我们先准备一张大图,如下:只看图,表太在意内容啊。我们的目的就是将这张大图裁剪成一张张的小图并保存下来。首先,我们要将它裁剪成一张张的小图,小图的大小自己计算哈,我就不告诉你w=Width/5,h=(Height-108)/8的;然后,将裁剪出来的小图一张张的绘制出来;最后,将原创 2016-10-22 14:35:15 · 300 阅读 · 0 评论 -
c++与lua的交互
在lua API中,调用一个函数的步骤很简单:1.压入你要调用的函数,使用lua_getglobal。2.压入调用参数。3.使用lua_pcall4.从栈中弹出结果。 举例说明,假设你有这么一个lua函数:function f (x, y) return (x^2 * math.sin(y))/(1 - x)end 那么,我们就可以定义个c函数来封装这个原创 2016-10-22 14:34:57 · 245 阅读 · 0 评论 -
打包apk java 虚拟机内存不足
解决方案:在android->sdk->build-tools-android-version 中有个 dx.batdx.bat --dex命令的dx.bat脚本有这样一句代码REM By default, give dx a max heap size of 1 gig and a stack size of 1meg.rem This can be overridden b原创 2016-10-22 14:34:46 · 421 阅读 · 0 评论 -
简单的物理世界
HelloWorld.h#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"USING_NS_CC;class HelloWorld : public cocos2d::Layer{public: static cocos2d::Scene* createScene();原创 2016-10-22 14:34:34 · 308 阅读 · 0 评论 -
cocos2dx 举例说明 convertToNodeSpace 与 convertToWorldSpace 的使用
convertToNodeSpace:把世界坐标转换到当前节点的本地坐标系中。//可以应用于判断子节点是否被点击,这时就需要把坐标从世界坐标系转换为父节点的坐标系。 //当然大多数情况会用CCMenu,但有时CCMenu就不适用了,比如长按触发响应的时候。 void HelloWorld::myInit14() { CCSize size = CCDirec原创 2016-10-22 14:34:24 · 191 阅读 · 0 评论 -
cocos2d安装配置及打包成Android
vs+python+cocos2dpython下载:点这里这里需要下载Python 2.X版本。曾经以为要下载3.x版本 后来装上发现cocos2d-x提供的python运行报错,所以卸载以后重新装的python2.X版本python安装的时候使用默认安装方式即可,但是安装完毕后我们需要配置环境变量在我的电脑(右键)->属性->高级系统设置->高级选项卡->环境变量->系统变量 中原创 2016-10-22 14:34:18 · 366 阅读 · 0 评论 -
cocos2d-x中的init,onEnter,onExit......
CCNode的init()方法和onEnter()方法:一、调用顺序显示FirstScene时:FirstLayer::initFirstLayer::onEnterFirstLayer::onEnterTransitionDidFinishFirstLayer::onExitFirstLayer::onexitTransitionDidStartFirstLayer::clear原创 2016-10-22 14:34:12 · 301 阅读 · 0 评论