
Cocos2dx
Cocos2dx
jjinglover
这个作者很懒,什么都没留下…
展开
-
[LUA ERROR] bad light userdata pointer
Cocos2d项目,targetSdkVersion=30,在 android 13 设备运行报错: [LUA ERROR] bad light userdata pointer ,导致黑屏。只能自己编译arm64-v8a架构的luajit.a。还是报错,4.0下的库文件还是有兼容问题。替换新编译的库文件测试运行正常。原创 2025-02-08 17:12:00 · 452 阅读 · 0 评论 -
Cocos2dx Lua绑定生成中间文件时参数类型与源码类型不匹配
可以看到生成中间代码时,定义参数的类型确实发生了变化,由::google::protobuf::uint64。变成了unsigned long long。至此类型完美匹配,编译测试OK!原创 2025-01-01 16:56:59 · 467 阅读 · 0 评论 -
Cocos2dx 变暗和变灰
搞过图形学的应该会比较容易知道,我也是搜索了才知道,我们知道白色是1或者255,黑色是0. 当一个颜色越接近0表示越接近黑色。也就是说,只要把每个像素的颜色乘以一个比1小的数,就会有变暗的效果了!那几个系数相加会等于1,不同的调整会有不同的效果。第一张就是变灰的效果图。我这里设置的是0.75。转载 2024-11-09 13:06:59 · 89 阅读 · 0 评论 -
Cocos2dx spine slot 绑定node
因为spine runtime中一个骨骼可以带有多个slot,并且除了TSR动画(位移缩放旋转),我们还需要挂接上去的Node能支持Color动画(包含alpha),getNodeForSlot的实现很简单:如果该slot name对应的 Node不存在,则创建一个并且放入map中。方法getNodeForSlot用来根据一个slot name获取一个Node,如果node不存在则创建。并且使用获取到的Node作为父node来执行addChild(需要挂接的node)。转载 2023-10-10 14:08:09 · 241 阅读 · 0 评论 -
Cocos2d-x实现文字颜色渐变
【代码】Cocos2d-x实现文字颜色渐变。原创 2022-11-02 11:26:29 · 1778 阅读 · 0 评论 -
RVO动态避障测试示例
简单的测试效果如下:参考资料:https://forum.cocos.org/t/topic/114590使用的RVO算法实现:测试demo:原创 2022-02-14 16:30:28 · 2211 阅读 · 0 评论 -
Box2D 物理引擎入门
转自:https://www.jianshu.com/p/7681431618ec一、什么是Box2DBox2D是一个强大的开源物理游戏引擎,用来模拟2D刚体物体运动和碰撞,由Erin Catto早在2007年用C++语言开发。Box2D集成了大量的物理力学和运动学的计算,并将物理模拟过程封装到类对象中,将对物体的操作,以简单友好的接口提供给开发者。我们只需要调用引擎中相应的对象或函数,就可以模拟现实生活中的加速、减速、抛物线运动、万有引力、碰撞反弹等等各种真实的物理运动。(引用百度百科)简转载 2022-01-24 11:47:06 · 5629 阅读 · 0 评论 -
Cocos2dx win32实现输入法跟随
聊天功能在PC平台需要实现输入法跟随效果【EditBox有此效果,但是该控件不方便设置透明度,显示部分自定义图标不好实现】。实现方案:采用TextField控件,每次输入文本时,根据已经输入文本的长度更新输入法位置。核心代码如下:#if(CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)#include <Windows.h>#pragma comment(lib, "Imm32.lib")#endif // (CC_TARGET_PLATFO原创 2021-11-26 18:42:41 · 3053 阅读 · 0 评论 -
Cocos win32制作异形窗口
最近利用Cocos2dx制作了异形窗口,记录下制作流程【Cocos版本3.17.2】:1.去掉标题栏 在cocos/platform/desktop/CCGLViewImpl-desktop.cpp文件中的initWithRect函数里添加 glfwWindowHint(GLFW_DECORATED, GL_FALSE);效果图:2.窗口背景透明网上搜索【异形窗口】的实现都是剔除像素的做法,也就是使用下面这个函数 SetLayeredWindowAttr...原创 2021-09-07 14:32:43 · 733 阅读 · 3 评论 -
Cocos2dx win32窗口 全屏 拉伸
转自:cocos2dx win32窗口的 一些配置 全屏 拉伸cocos2dx的窗口配置接口大致如下 1.设置窗口是否可以拉伸glfwWindowHint(GLFW_RESIZABLE,resizable?GL_TRUE:GL_FALSE);2.设置窗口没有标题栏和边框glfwWindowHint(GLFW_DECORATED, GL_FALSE);3.想要全屏怎么办设置窗口没有标题栏和边框,然后glview->setFrameSize(显示器宽度+1, 显示器...转载 2021-08-20 18:29:00 · 513 阅读 · 0 评论 -
Cocos2dx WebSocket的使用
转自:https://www.cnblogs.com/lmx282110xxx/p/10798716.htmlWebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信。实现浏览器与服务器的即时通讯。即服务器也能主动向客户端发消息。WebSocket代理类和方法:cocos2d同样对websocket进行了封装。WebSocket和WebSocket::Delegate1:WebSocket: WebSocket类提供了跟websocket相关操..转载 2021-08-17 14:15:04 · 791 阅读 · 0 评论 -
Cocos2dx 受击闪烁
着色器片段RedTwinkle.fsh#ifdef GL_ESprecision lowp float;#endifvarying vec4 v_fragmentColor;varying vec2 v_texCoord;uniform int addRed;void main(){ vec4 texColor = texture2D(CC_Texture0, v_texCoord); if(texColor.a>0.5) { if(addRed=原创 2021-07-20 16:23:31 · 490 阅读 · 0 评论 -
Cocos2dx支持内嵌Webview
项目需要展示隐私协议,想用内嵌网页的形式实现。根据网上获取信息来看,用Cocos引擎的Webview实现起来比较复杂,且不同机型还存在BUG,遂放弃yi原创 2021-06-01 14:56:34 · 858 阅读 · 0 评论 -
伸缩按钮的实现
写了一个按钮伸缩的控件,实现如下:FlexibleBtn.h文件#ifndef __FlexibleBtn__#define __FlexibleBtn__#include "cocos2d.h"#include "ui/CocosGUI.h"USING_NS_CC;class FlexibleBtn:public Node{public: FlexibleBtn(); ~FlexibleBtn(); struct FlexibleData { int type;原创 2021-02-25 23:27:42 · 510 阅读 · 0 评论 -
Cocos2dx按钮斜向滚动
项目需要实现按钮的斜向滚动,记录下实现(滚动基于的ui::ScrollView控件):原理:纵向移动单位距离(两个相邻节点的竖坐标间距),横向坐标亦需偏移单位距离(两个相邻节点的横坐标间距)添加测试测试按钮(文本)void HelloWorld::addItems(){ Size visibleSize = Director::getInstance()->getVisibleSize(); auto scroll = ui::ScrollView::create(); scro原创 2020-11-01 22:31:43 · 347 阅读 · 0 评论 -
Cocos2dx项目报错OpenGL error 0x0506
项目接入Appsflyer后,在部分iphone上启动黑屏,输出OpenGL error 0x0506,分析测试情况,是在ios 13.x版本上有问题然后仔细翻看对接文档,应该是下面的代码导致的- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options原创 2020-10-20 21:47:59 · 621 阅读 · 0 评论 -
骨骼动画详解-Spine
转自:https://blog.youkuaiyun.com/u012278016/article/details/79758967游戏中人物的走动,跑动,攻击等动作是必不可少,实现它们的方法一般采用帧动画或者骨骼动画。帧动画与骨骼动画的区别在于:帧动画的每一帧都是角色特定姿势的一个快照,动画的流畅性和平滑效果都取决于帧数的多少。而骨骼动画则是把角色的各部分身体部件图片绑定到一根根互相作用连接的“骨头”上,通过控制这些骨骼的位置、旋转方向和放大缩小而生成的动画。它们需要的图片资源各不相同,如下分别是帧动画和转载 2020-09-22 14:33:13 · 2283 阅读 · 0 评论 -
Cocos2dx-3.17.2 支持win10平台
支持win10平台的Cocos2dx-3.17.2版本 (Cocos在3.16版本移除了对Win10平台的支持)地址:GitHub - jjinglover/Cocos2d-x-3.17.2_uwp: 支持Win10平台的Cocos2dx-3.17.2版本3.17.2支持uwp平台处理要点:1.使用支持uwp版本的cocos创建新项目,复制cocos2d库UWP版本相关的工程配置cocos2d\cocos\2d\win10_props下的文件,如图3.CC_DLL符号无效cocos2d\cocos\plat原创 2020-08-17 22:57:58 · 637 阅读 · 0 评论 -
Cocos2dx3.17.2Android播放视频,后台 黑屏,无法记忆播放bug修改
转自:https://www.cnblogs.com/zhangfeitao/p/6245409.html问题描述:Android播放视频的时候,后台,再切回来,导致 视频无法播放。黑屏。解决之后:后台回来正常记忆播放。下目前是解决问题的代码。/* * Copyright (C) 2006 The Android Open Source Project * Copyright (c) 2014 Chukong Technologies Inc. * * Licensed u转载 2020-06-18 17:49:06 · 742 阅读 · 0 评论 -
Cocos2dx 缩放的图片抗锯齿之后锯齿更严重
播放特效时出现一条缝隙,第一反应是抗锯齿(不是制作特效出现的缝隙),由于特效是美术同学提供的,我便对整个特效里面的所有精灵进行了抗锯齿操作,然后发现有缩放的精灵锯齿更严重了!于是自己测试了下,下面是测试代码: auto sp = Sprite::create("ts2_red.png"); this->addChild(sp); sp->setSca...原创 2020-04-26 11:26:04 · 1648 阅读 · 0 评论 -
Cocos通过动态纹理降低DrawCall
在实现降低DrawCall之前先了解几个概念:1.什么是DrawCall?DrawCall就是cpu对图形绘制接口的调用,CPU通过调用图形库(directx/opengl)接口,命令GPU进行渲染操作。2.DrawCall是如何影响性能的?每一次绘制CPU都要调用DrawCall,而在调动DrawCall前,CPU还要进行很多准备工作:检测渲染状态、提交渲染所需要的数据、提交渲染...原创 2020-04-13 22:39:36 · 1220 阅读 · 0 评论 -
Cocos2dx 如何在VideoPlayer上面放置UI控件
参考链接:https://worthatry.cn/cocos-creator-ru-he-shi-bei-jing-tou-ming/android:1.背景设置透明2.取消视频置顶3.向下分发点击事件转载 2020-02-13 18:21:07 · 1471 阅读 · 8 评论 -
Cocos2d-x 溶解效果实现
项目需要实现溶解效果,记录下基本实现:实现原理:随着时间变化计算一个阙值(如sin(time)),当取样噪声图纹理的RGB中的某个值低于此阙值时,目标纹理的当前片段着色器调用discard函数,丢弃当前的片段并且终止着色器执行。精灵显示的基本逻辑及片段着色器噪声图纹理的设置: auto noiseSp = Sprite::create("noise.jpg"); noi...原创 2020-01-06 23:31:38 · 1150 阅读 · 0 评论 -
Cocos2d-x拼接精灵滑动时出现缝隙
项目由3.9升级到3.17.2版本发现原来拼接的地图在滑动时出现了缝隙,精灵设置抗锯齿无效(部分设备)经过查找解决方案如下:将base/ccConfig.h文件中的CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL开启即可/** @def CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL * If enabled, the text...转载 2019-12-16 22:40:49 · 483 阅读 · 1 评论 -
generateJsonModelDebug failed
为了适配android9和10,项目需要升级Cocos引擎,使用Cocos2dx 3.17版本创建的Demo安卓版本编译报错查看错误信息发现是少了Ninja这个库解决方案:安装Ninja库brew install ninja安装完成之后,编译成功。...原创 2019-11-04 15:35:23 · 2537 阅读 · 0 评论 -
Cocos2dx 全面屏适配
android适配:参考资料:http://developers.googleblog.cn/2017/04/android.html在AndroidManifest.xml中可做如下配置:<meta-data android:name="android.max_aspect" android:value="2.1" />然后在代码中设置适配方式(我采用的设置...原创 2018-06-08 15:21:07 · 6203 阅读 · 0 评论 -
Cocos2dx实现透视效果
开发中需要实现透视效果,自己将实现过程记录下:创建demo并添加一个精灵到坐标原点: auto sprite = Sprite::create("HelloWorld.png"); this->addChild(sprite, 0);效果图:添加Camera,设置初始参数: auto camera=Camera::createPerspective(60, visible...原创 2018-06-13 13:33:01 · 4042 阅读 · 0 评论 -
Cocos之 从C++过渡到Lua
转自:http://shahdza.blog.51cto.com/2410787/1569003【唠叨】 现在开始学习Lua了,开始用 Cocos Code IDE 开发cocos2dx的游戏了。 可是呢,因为 cocos2dx v3.x 刚刚才出来不久,所以网上的教程大部分都是基于C++版本的, 而针对Lua版本的大部分都是老版本 v2.转载 2017-10-25 11:00:58 · 1638 阅读 · 0 评论 -
cocos2dx原生lua绑定工具的总结
转自:http://www.cocoachina.com/bbs/read.php?tid=226362一、个人对“绑定”这词有两种理解1、lua绑定到C++,就是C++能调用到lua的东西,那必须让C++知道有哪些lua函数或变量可以用2、C++绑定到lua,就是lua能调用到C++的东西,当然也必须让lua知道有哪些C++东东可以给lua调用,所谓的“暴露”这里说的转载 2017-10-12 17:07:52 · 419 阅读 · 0 评论 -
Window下导入#include "cocos-ext.h" 编译报错
使用cocos2d-x 3.9版本创建的项目导入 cocos-ext.h 文件时编译报错:解决方案: 项目名称 右键【Properties】->【Configuration Properties】->【c/c++】->【General】在【Additional Include Directories】项中新增设置项【$(EngineRoot)】...原创 2017-02-28 17:51:02 · 356 阅读 · 0 评论 -
Cocos2dx多线程使用
最近在使用多线程加载资源时遇到了一处崩溃 auto func = [=]{ if (loadXmlSec()){ CCLOG("load***xml***suc"); } }; auto pt = std::thread(func); pt.detach();经查崩溃的原因是在loadXmlSec函数中有继承自cocos2d::Ref的类调用create...原创 2018-07-24 15:23:30 · 738 阅读 · 0 评论 -
Cocos2d在Lua层实现观察者模式
记录下我使用cocos2dx(C++/Lua混合)开发项目,实现的一个Lua端的消息分发器功能:接收C++发送过来的消息,并在lua端分发Lua端代码:local msgManger = class("msgManger")-- msgInfoT={-- cpp_lua_key=nil,-- lua_ptr=nil,-- lua_fx=nil£,-- cpp_pt...原创 2018-11-15 16:34:07 · 635 阅读 · 0 评论 -
Cocos2dx实现跳动的数字效果
封装的类如下:.h文件class DigitalBeatText:public cocos2d::Node{public: DigitalBeatText(); ~DigitalBeatText(); static DigitalBeatText *create(int value); void setValue(int newValue);pro...原创 2019-01-01 21:13:48 · 2262 阅读 · 2 评论 -
Cocos2dx 3.x项目配置lua步骤
1.拷贝安装目录\cocos\scripting文件夹到项目工程下\cocos2d\cocos\2.拷贝安装目录\external\lua文件夹到项目工程下\external\3.打开vs,选中项目解决方案,右键->添加->项目, 选择\cocos\scripting\lua-bindings\proj.win32\libluacocos2d.vcxproj;4.选中项目,...原创 2019-03-04 17:54:25 · 965 阅读 · 0 评论 -
重复调用luaL_openlibs导致的BUG
最近在给cocos2dx项目添加Lua模块时,遇到一个问题:PC上运行Lua开发的功能是正常的,在IOS系统上一直提示代码里路径设置也没有问题,最后发现是重复调用luaL_openlibs导致的问题注释掉重复调用,问题解决(但是重复调用导致该问题的原因还不清楚)。...原创 2019-03-22 13:49:06 · 881 阅读 · 0 评论 -
Cocos2dx C++ Java相互调用
最近在接入android渠道sdk时遇到一些问题,整理一下以备后查(开发引擎是cocos2d-x):1.c++调用java函数:通过jni来访问;例A: void TKSDKFunc::login() { #if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) JniMethodInfo t; if (JniHelper::getStati...原创 2016-04-09 15:50:16 · 681 阅读 · 0 评论 -
Cocos2dx ClippingNode图片遮罩
记录下使用ClippingNode实现图片遮罩的方法: auto clipNode = ClippingNode::create(); clipNode->setPosition(visibleSize*0.5); this->addChild(clipNode); auto stencilNode = Node::create(); cl...原创 2019-09-01 17:55:12 · 655 阅读 · 0 评论 -
Cocos2dx Http请求返回数据异常
在使用Cocos2dx的HttpRequest类时,遇到一个现象:返回的数据总是第一次访问的数据(好像有缓存数据一样)(只有win10遇到了这个问题)解决方案设置请求头 If-Modified-Since HttpRequest* request = new (std::nothrow) HttpRequest(); std::vector<std::string&...原创 2019-09-07 16:05:40 · 681 阅读 · 0 评论 -
错误提示 relocation overflow in R_ARM_THM_CALL
cocos项目生成apk时,编译报错: relocation overflow in R_ARM_THM_CALL解决方案:在所有的Android.mk加入LOCAL_ARM_MODE := arm,包括external下的第三方库。参考:https://forum.cocos.com/t/cocos-3-12-release/38343/4...原创 2019-10-09 19:09:19 · 1383 阅读 · 0 评论