cocos-lua
七楼、
哟,在写bug呢
展开
-
Cocos2d-x3.x Node源码学习
介绍节点是场景图的基础元素。Node类继承自Ref类。场景图的元素必须是Node对象或它的子类。最常见的Node对象是:Scene,Layer,Sprite,Menu,Label。节点的主要特征是:它们可以包含其他节点的对象(addChild,getChildByTag,removeChild等)他们可以安排定期的回调(schedule,unschedule,等)他们可以执行动作(runAction,stopAction,等)函数解读:public functions //原创 2020-08-08 20:38:42 · 232 阅读 · 0 评论 -
lua元表元方法之__index&__newindex
元表(metatable)Lua中每个值都有一个元表。table和userdata可以有各自独立的元表,而其他类型的值,则共享其类型所属的单一元表;元表本身就是一个常规的表,任何人、任何函数都可以使用它们;一个tabel可以作为自己的元表在Lua中只能设置table的元表,其他类型的值的元表,必须通过C代码来完成;新创建的表table没有元表;两个很重要的函数: -- 对指定表t设置元表mt,如果mt中存在 __metatable 键值,setmetatable 会失败。 s原创 2020-08-07 09:58:50 · 562 阅读 · 0 评论 -
cocos2dx各个类的继承与派生关系
CCObject类这个类是其他大部分类的基类。主要三个功能:引用计数器,进行内存计数,设定友元类CCAutoreleasePool来对CCObject实例的对象内存进行管理;通过脚本ID访问相应的脚本;定义了一些宏来取得回调函数的指针,包括了定时器响应、普通回调函数、菜单响应函数、事件响应函数。所以,在许多类中,如创建一个sprite,可以使用static类型的creat()函数创建( 这种方法叫静态工厂,比较方便,避免内存泄露):CCNode类cocos2d-x是树状继承,则此类是所有节原创 2020-08-06 18:23:25 · 542 阅读 · 0 评论 -
cocos2dx-lua 序列帧动画Animation
简介Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果。动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。我们使用Animation类描述一个动画,而精灵显示动画的动作则是一个Animate对象。动画动作Animate是精灵显示动画的动作,它由一个动画对象创建,并由精灵执行。需要了解的几个类:SpriteFrame:精灵帧类。精灵帧包含了对应纹理在大的纹理区域中的位置和大小,原创 2020-08-06 17:06:04 · 1165 阅读 · 0 评论 -
lua-求两数组的交集并集
本文使用的方法是元表local res = {}-- 元表local mt = {}-- 数组转化成键值对tableres.new = function(list) local tab = {} setmetatable(tab, mt) -- 设置元表 for _, v in pairs(list) do tab[v] = true end return tabend -- 交集 a,b为键值对形式的tableres.union原创 2020-08-05 15:30:01 · 1692 阅读 · 0 评论 -
cocos eventDispatcher 事件分发机制
简介cocos的事件分发机制,先创建事件,然后注册到事件管理中心_eventDispatcher,通过发布事件得到响应进行回调,完成事件流。_eventDispatcher是Node的属性,通过它管理当前节点(场景、层、精灵等)的所有事件的分发。但它本身是一个单例模式值的引用,在Node的构造函数中,通过Director::getInstance()->getEventDispatch...原创 2020-04-11 10:19:19 · 1157 阅读 · 0 评论 -
lua 颜色:十六进制转十进制
获取 rgb格式的颜色 #996c33 ----> cc.c3b(153, 108, 51),cc.c4b(153, 108, 51, 255)function getColorOfRGB(str) -- 去掉#字符 local newstr = string.gsub(str, '#', '') -- print("newstr is --"..newstr) -- 每次截取两...原创 2020-02-25 17:23:45 · 1776 阅读 · 0 评论 -
lua 数组随机排序
打乱有序数组,产生随机数组function randomTable(_table, _num) -- _table:需要随机的表(有序的),_num:随机个数,默认全部随机 local _result = {} local _index = 1 local _num = _num or #_table while #_table ~= 0 do l...原创 2020-02-12 10:47:09 · 1280 阅读 · 0 评论 -
lua 获取字符串长度
注意区分几种不同的字符。lua代码如下:function string.widthSingle(inputstr) -- 计算字符串宽度 -- 可以计算出字符宽度,用于显示使用 local lenInByte = #inputstr local width = 0 local i = 1 while (i<=lenInByte) do ...原创 2019-11-17 16:51:40 · 962 阅读 · 0 评论 -
两条线段是否相交及交点坐标
已知两条线段的起始点和终点坐标,求两条线段的交点坐标这只是一个基本的方法,可以扩展用在其他功能里,比如求线段与多边形的交点等等function UIUtil:getPosOfTowLine(pointA, pointB, pointM, pointN) -- AB线段,MN线段 local Xa, Ya = pointA.x,pointA.y -- AB线段 首坐标 local...原创 2019-11-15 17:09:25 · 1184 阅读 · 0 评论 -
求任意一点到多边形上距离最小的点坐标(多边形问题:二)(简单寻路问题)cocos lua
求凸多边形外一点到该多边形上距离最小的点坐标思路:1,求点到每条边的交点;2,判断这些交点是否在多边形的边上;3,若有在,则找出距离多边形外的点最近最近的那条线段,多边形外一点向该线段作垂线,交点即为所求点;4,若都不在,则由多边形外一点向所有定点作线段,求出距离最短的那个定点,则该顶点坐标即为所求。下面是现实代码:...原创 2019-11-15 16:09:21 · 2034 阅读 · 0 评论 -
多边形内外两点连成的线段与多边形的交点cocos lua
-- 求多边形内点m与多边形外点n连成的线段与多边形的交点且该交点坐标距离n点最近(适用与任意多边形)function UIUtil:getMinPosOnPolygon(posList, inPos, outPos) -- posList:多边形顶点坐标(按照顺时针或逆时针排序),inPos:多边形内点的坐标,outPos:边形外点的坐标 local polygenSides = #p...原创 2019-11-14 16:16:15 · 882 阅读 · 0 评论 -
判断点是否在多边形内(多边形问题:一)cocos2d-x lua
最近在做控制人物在地图上行走时遇到了这样的问题,延伸出:1判断点在多边形内 ,2多边形内随机产生一点 ,3多边形外一点到该多边形最近点的坐标。参考网上,慢慢整理一下。都是实测过,用在自己项目里的代码。不定时更新。下面是:判断点是否在多边形内-- 1使用射线法 以测试点向右或左向无穷点左射线,若射线与多边形交点个数是奇数个,则点在内部;若交点个数是偶数个,则点在外部;(这里使用左无穷点)-- ...原创 2019-11-08 13:47:51 · 999 阅读 · 1 评论 -
cocos-lua 贝塞尔曲线 抛物线
简介贝塞尔曲线(Bézier curve)又被称为贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线,它的数学基础是伯恩斯坦多项式(Bernstein polynomial,since 1912),1959年法国数学家Paul de Casteljau提出了数值稳定的de Casteljau算法,开始贝塞尔曲线的图形化应用研究,而贝塞尔曲线的名称来源于一位就职于雷诺的法国工程师Pierre...原创 2020-04-09 14:57:02 · 3024 阅读 · 0 评论