cocos2d-x lua
EricBBB
游戏客户端开发工程师,熟悉C++,C#,cocos2d-x,lua, Unity3D
展开
-
cocos2d-x lua如何去除多点触摸模式
多点触摸模式很容易出现各种各样的问题,特别是设计到http或者socket链接的时候function MainLayer:ctor() nGameStatu = fightMgr:getGameStatu() --注册点击事件 self:registerTouchHandler() self:initView()原创 2017-07-31 13:15:15 · 1011 阅读 · 0 评论 -
cocos2d-x ios 11.3 播放Mp4 ccexp.VideoPlayer黑屏或者跳过
发现cocos2d-x 引擎在ios 11.3上播放视频会黑屏并且直接跳过两种解决办法,升级引擎到3.16版本之后或者修改Oc的代码在UIVideoPlayer-ios.mm下-(void) videoFinished:(NSNotification *)notification{ if(_videoPlayer != nullptr) { //fix : ios...原创 2018-04-27 20:15:12 · 1368 阅读 · 0 评论 -
cocos2d-x lua 封装增删改查时间复杂度为O(1)的集合
--创建增删改查复杂度都为O(1)的table--利用了一个额外的数组reverse,来保存数组s中每个数据在s中的位置,相当于以空间换时间--@ 这里删除还可以优化,table.remove实现过于复杂,希望可以只删除table中最后一个(已实现)function table.dictionarySet() local reverse = { } local set = ...原创 2018-05-22 10:48:38 · 343 阅读 · 0 评论 -
cocos2d-x lua 3D模块学习(1)----摄像机
因为工作需要,要在原来的项目基础上使用cocos2d-x 的3D引擎部分版本是3.13,开发语言是lua ,网上是一点关于cocos lua 的3D教程都没有,只能去啃老外的英文版的,所以自己写一个也记录一下吧!cocos2d-x 3D模块默认是关闭的,应该是3.X添加的,源代码写的并不是很好,粗略看了一下实现,有些地方都是implementes,待以后实现什么的,而且使用的物理引擎是Bullet...原创 2018-05-16 11:36:50 · 1453 阅读 · 0 评论 -
cocos2d-x lua 3D模块学习(2)----3D精灵
3D精灵是cocos的3D模块加入的,要使用,需要在C++部分把宏定义打开 CC_ENABLE_BULLET_INTEGRATION 3D精灵支持的格式包括obj,c3t,c3b obj和FBX是美术用3dmax或者maya之类的工具打出的,需要导成c3b或者c3t给cocos使用。工具位置在cocos目录下的tools\fbx-conv\win目录拖动需要的obj或者FBX到fbx-conv.e...原创 2018-05-16 11:51:27 · 1482 阅读 · 0 评论 -
cocos2d-x lua 3D模块学习(3)----3D物理引擎
cocos2d-x 3.X封装的是Bullet的物理引擎使用也是很简单,精灵绑定刚体,设置为组件,就可以一起运动了,很方便首先场景必须是物理世界的,这在2d还是3d中都是一样的,不然会黑屏哦 local pScene = cc.Scene:createWithPhysics() if cc.Director:getInstance():getRunningScene() then ...原创 2018-05-16 13:45:35 · 1517 阅读 · 0 评论 -
cocos2d-x lua 3D模块学习(4)----常见物理约束
在物理引擎中,所谓的约束(constraint)是指一个让刚体失去一定的自由度的一个物理部件,通过它可以限制刚体的移动,旋转。点对点约束(point to point constraint):点对点的约束即限制了一个刚体局部坐标系下指定的任意一个点(也可以称为支点),在物理引擎计算时始终在世界坐标系下固定不变。也可以限制两个刚体,它们各指定一个局部坐标系中的一个支点,这两个点的位置的在世界坐标系下...转载 2018-05-16 13:52:12 · 675 阅读 · 0 评论 -
cocos2d-x lua 面向对象 ===> 调用基类在派生类中已经被重载了的函数
基类:local Base = class("Base", function () return cc.Layer:create()end)function Base:ctor( ... )endfunction Base:test(self, ... ) endreturn Base派生类local BaseClass = require("Ba...原创 2018-10-10 17:34:47 · 1054 阅读 · 2 评论 -
cocos2d-x lua 框架中 self.super.ctor(self, app) 和 self.super:ctor(app) 的区别
今天发现了一个问题,框架中我一开始都是使用的self.super.ctor(self, app)来使用父类的构造函数,但是今天看到,lua中元表中函数的调用, . 和 : 使用是有很大区别的, : 会默认传递一个self进去,而 . 需要自己手动传递self,作为第一个参数所以我将self.super.ctor(self, app)改为了self.super:ctor(app),运行之后报错...原创 2019-02-21 16:03:57 · 1906 阅读 · 0 评论 -
Lua 弱引用表 强引用表
弱引用表会被collectgarbage直接垃圾回收掉,而强引用表不会t = {}t[1] = {"11"}t[2] = {1,2,3}t[3] = function() print("test")endsetmetatable(t, {__mode = "kv"})print(#t)collectgarbage()print(#t)执行一下输出为3和0,说明t被...转载 2019-05-10 11:13:04 · 574 阅读 · 0 评论 -
Lua编程中遇到的table类型传递引用问题
前言: lua中table类型是一种数据结构用来帮助我们创建不同的数据类型,使用table在编程中是再常见不过的了,但是相应的也会碰到引用问题。目标: 通过对以往的问题进行整理并结合别人的案例来提高自身的代码水平。问题: lua中table类型是引用传递,因此不能简单的通过“=”来复制来获得新表,否则改动其中一张表都会导致另一张表也被联动修改。解决办法是通过clone函数复制table:funct...转载 2018-04-12 10:04:06 · 1041 阅读 · 0 评论 -
cocos2d-x 判断圆形是否与矩形发生物理碰撞
台球游戏做到的,直接给出代码function help.twoDistance(X1,Y1,X2,Y2) return math.pow((math.pow((X1 - X2), 2) + math.pow((Y1 - Y2), 2)), 0.5)endfunction help.rot(x1,y1,x2,y2) local value = (y1-y2)/(x1-x2) ...原创 2018-04-10 21:19:16 · 494 阅读 · 0 评论 -
cocos2d-x lua热更新问题,重载reload
1、什么是热更新?热更新也叫不停机更新,是在游戏服务器运行期间对游戏进行更新。实现不停机修正bug、修改游戏数据等操作。也可以这样讲:一辆车以时速150km跑着,突然爆胎了,然后司机告诉你,我不停车,你去把轮胎换了,小心点。恩2、热更新原理第一种:lua中的require会阻止多次加载相同的模块。所以当需要更新系统的时候,要卸载掉响应的模块。(把package.loaded里对应模...转载 2017-09-06 16:02:26 · 2706 阅读 · 0 评论 -
cocos2d-x lua 播放视频,VideoPlayer在Android和IOS下的坑,
公司的游戏需要将一段动画做在启动的时候cocos2d-x lua 使用了ccexp.VideoPlayer,windows下是不能播放的,所以项目在windows下还是继续使用图片代码如下local visibleSize = cc.Director:getInstance():getVisibleSize()if device.platform == "android"原创 2017-09-15 12:03:50 · 4593 阅读 · 0 评论 -
cocos2d-x lua 覆盖安装热更代码不删除
新版本提交IOS后,发现下载后的包还是旧的包,读取的还是热更资源里的代码做法很简单,就是删除热更缓存里的代码在cocos2d-x的AssetsManagerEx.cpp中,有做这个的操作,但是为什么没起作用呢?原来他是这样写的if (_localManifest->isLoaded()){// Compare with cached manifest to determin原创 2017-09-30 09:55:09 · 730 阅读 · 0 评论 -
修复IOS10以上的版本Home切出去再切回来音效消失
在AppDelegate.cpp中// This function will be called when the app is inactive. When comes a phone call,it's be invoked toovoid AppDelegate::applicationDidEnterBackground(){Director::getInstance()-原创 2017-10-11 13:44:03 · 1163 阅读 · 0 评论 -
cocos2d-x 移动端网络优化
这几周一直在优化cocos移动端在弱网络环境下的问题因为历史原因,使用的是TCP连接和传统的序列化反序列化解析因为基于TCP,所以网络环境的变化,会导致Socket层无任何异常,无法得知断开了,IOS因为待机也会断网,所以更甚简单说一下处理的几个步骤吧1、增加了服务器的心跳和心跳返回,这是最基本的,通过心跳的超时来判断是否断开了2、增加java层和Oc的监听网络切换原创 2017-12-21 19:32:47 · 507 阅读 · 0 评论 -
cocos2d-x C++绑定lua tolua++使用
今天使用了一个OnlineImageSprite下载网络图片的类,需要导出给lua使用千辛万苦,用了一上午加下午3个小时,读了一遍python的源码,饭也没吃成功使用tolua++导出给了lua使用话不多说,tolua在../cocos2d-x/tools/tolua文件夹下,genbindings是python执行文件,导出的入口,同层目录下有个README.mdow原创 2018-01-10 14:45:30 · 401 阅读 · 0 评论 -
cocos2d-x lua 物理引擎,速度过快导致的刚体穿透,穿越边界问题
今天在做台球游戏时候发现,母球的刚体在距离边界很近的时候,或者速度很快的时候会发生刚体穿透,穿越边界的现象。这是cocos封装的chipmunk物理引擎的问题,如果用的是box2d,可以直接设置bullet(true)解决问题,当然3.0之后的开发者只能如下操作啦:首先看一下小球和横条的三个bitmask值是否设置正确,如果正确的话有可能是小球速度过快,导致刚体发生穿透现象,可以用以下方法解决:获...原创 2018-03-20 17:06:01 · 2524 阅读 · 0 评论 -
cocos lua 获取点到直线距离
最近做一款台球游戏,需要做这种效果,所以需要求的彩色球到直线的距离,高中数学几乎快忘光了。Google了一波,挖出了几个数学公式。我的手中有这几个数据:1。直线绕X轴正方向的角度,注意,这里cocos引擎和数学系的的直角坐标反过来的,所以在传参数的时候要先把角度转换成数学坐标系的角度。(rotate,这里使用的时候角度要转为度数)2。直线上的一点,可以根据这个计算出直线的方程(whitePos)(...原创 2018-04-10 21:05:43 · 1386 阅读 · 0 评论 -
cocos2d-x 判断直线和直线的交点
做台球游戏用到的,球的虚线和边框的触碰点的获取--判断直线和边框的碰撞点--@rotate 旋转角度,数学角度--@whitePos 白球的node相对位置--@radius 球体半径function help.checkCollisionPointBetweenLines(rotate, whitePos,radius) local _tableX, _tableY = 207....原创 2018-04-10 21:07:45 · 828 阅读 · 0 评论 -
3D桌球,cocos2d-x lua 打造
支持拉杆,加塞github地址:https://github.com/EricDDK/billiards_cocos2d原创 2019-05-21 15:59:01 · 662 阅读 · 0 评论