自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

原创 【无标题】Android中IDE、ADT、SDK、JDK、NDK

Android中IDE、ADT、SDK、JDK、NDK的解释1. IDE:Intelligent Development Environm的简称。即智能开发环境。是一种开发工具。常用的IDE有adt-bundles和Android studio。两个都需要配置jdk。2. ADT:Android Development tools的简称。即Android开发工具。ADT为Eclipse的插件。在Eclipse和SDK之间起了一个桥梁的作用。3. SDK:Soft Development K

2022-05-24 17:13:38 485

原创 深入理解Lua的闭包:概念和应用

深入理解Lua的闭包一:概念和应用_cbbbc的博客-CSDN博客本文首先通过具体的例子讲解了Lua中闭包的概念,然后总结了闭包的应用场合,最后探讨了Lua中闭包的实现原理。闭包的概念在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量(或者是upvalue)组成的,其中非局部变量(non-local variable)是指不是在局部作用范围内定义的一个变量,但同时又不是一个全局变量,主要应用在嵌套函数和匿名函数里,因此若一个闭包没有会访问的非局部变量,那么它就是通常说

2022-04-26 16:48:00 541

原创 Flutter学习

参考资料 :Flutter 官网 : https://flutter.dev/Flutter 插件下载地址 : https://pub.dev/packagesFlutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 )官方 GitHub 地址 : https://github.com/flutterFlutter 中文社区 : https://flutter.cn/Flutter 实用教程 : https://flutter.cn/docs/cookbook

2022-03-29 11:40:01 169

原创 math.cos,math.sin

角度和弧度转换弧度 = 角度2π /360 =角度π / 180 = 角度 *Math.PI / 180角度 = 弧度360 / 2π = 弧度180 / π = 弧度 * 180 / Math.PI如何得到圆上每个点的坐标?两条重要公式邻边(x)= sin(角度对应弧度) * r对边(y) = cos(角度对应弧度) * rX坐标 = a + Math.sin(角度(Math.PI / 180))rY坐标 = b + Math.cos(角度(Math...

2022-01-25 10:53:31 691

原创 两个坐标点转方向

最近在做一个连线游戏时,用到了计算两点之间的角度,如何计算任意两点间直线的倾斜角呢?只需要将两点x,y坐标分别相减得到一个新的x,y轴距离(x2-x1,y2-y1).然后利用它求出角度就可以了。1、js中Math.atan() Math.atan()接受一个参数:用法如下: angel=Math.atan(slope) angel为一个角度的弧度值,slope为直线的斜率,是一个数字,这个数字可以是负的无穷大到正无穷大之间的任何一个值即y/x. 不过,利用他进行计算比较复杂.因为它的周期性,一个数字

2022-01-24 15:07:05 490

原创 cocos2dx渲染机制

导演类的mainLoop中会调用drawScene,在drawScene中会调用场景类的render,render中会递归执行节点类的visit,visit中会调用精灵类的draw,draw中会执行渲染类的addCommand。对所有节点执行完addCommand后,会执行渲染类的processRenderCommand,接下来执行渲染类的drawBatchedTriangles,最终在drawBatchedTriangles内会调用多个openGL API完成渲染...

2022-01-10 09:30:22 2820

原创 gamemath

-- 函数名 描述 示例 结果-- pi 圆周率 math.pi 3.1415926535898-- abs 取绝对值 math.abs(-2012) 2012-- ceil 向上取整 math.ceil(9.1) ...

2022-01-09 09:52:10 92

原创 Cocos2d-lua,Button setCapInsets

1,Cocos2d中的Button可以通过两种方式创建:代码:localbtn=ccui.Button:create()CocosStudio:直接使用Button空间,拖拽到指定的位置调整好需要的属性即可。localbtn=panel:getChildByName("button")button:addClickEventListener(function(sender,type)--TODOend)添加按钮监听事件。ok,上面就是...

2021-02-23 19:31:26 868

原创 cocos2dx中世界坐标,节点坐标,opengl坐标,屏幕坐标理解

cocos2dx中的坐标系统一、 (1)OpenGL坐标系Cocos2D-x以OpenGL和OpenGL ES为基础,所以自然支持OpenGL坐标系。该坐标系原点在屏幕左下角,x轴向右,y轴向上。(2)屏幕坐标系屏幕坐标系使用的是不同的坐标系统,原点在屏幕左上角,x轴向右,y轴向下。iOS的屏幕触摸事件CCTouch传入的位置信息使用的是该坐标系。因此在Cocos2D-x中对触摸事件做出响应前,需要首先把触摸点转化到OpenGL坐标系。这一点在后面的触屏信息中会详细介绍,可...

2021-02-21 11:20:42 1470 2

原创 cocos+lua中创建富文本

local rich_text = ccui.RichText:create() -- 创建富文本rich_text:ignoreContentAdaptWithSize(false) --是否文字自动转行rich_text:setContentSize(500 , 40) --设置大小rich_text:setPosition(cc.p(0,layout:getContentSize().height/2)) --设置位置rich_text:setAnchorPoint(...

2021-02-11 10:05:35 678

转载 cocos2dx-lua 递归开启多层子节点的透明度设置

原文地址:https://segmentfault.com/a/1190000038642307前言在cocos2dx-lua中若是要设置父节点和子节点的透明度,能够使用父节点的setCascadeOpacityEnabled方法开启节点透明度设置,否则没法设置节点透明度。可是这个方法有个缺陷,当一个节点中有多层子节点时,没法开启子节点的子节点的透明度设置。网上常见的解决方案是去改引擎源码,将节点的透明度设置默认为开启。这里提供另外一种解决方案。node递归开启子节点的透明度为了能开启所有

2021-01-31 10:35:40 591

原创 lua中loadstring的运用

项目中用到loadstring,感觉这个东西挺有用的。例如我们游戏开启的时候 获取服务器中版本号和其他信息,这个信息是一个table,如果你去解析这个字符串的话,比较麻烦。直接用loadstring,该函数的返回值是返回一个function,如果load失败,则返回nil,test:local info = 'local map = {a = 1,b = 2};for _,v in pairs(map) do print(v) end'local fun = loadstring(info )p

2020-11-08 11:39:38 458

原创 cocos2dx 的convertToWorldSpace

关于这个函数作用大家都知道,是把本地坐标转换为世界坐标,但是这种说法太宽泛。到底什么是本地坐标,什么是世界坐标,这个函数的用法 :node->convertToWorldSpace(child->getPosition) 用的时候这个node和child到底是什么东西?工作中有一个需求是判断子弹是否飞出了屏幕,但是子弹是在地图层的,地图又在gameLayer层上,gameLayer上又有层,这一层套一层到底该怎么判断子弹的绝对位置呢?bullet->getPositio..

2020-09-12 09:43:07 540

原创 lua table.nums

table.nums计算表格包含的字段数量。格式:count = table.nums(表格对象)Lua 的“#”操作可以取得表格的长度,但仅限从 1 开始连续数字为索引的表格。table.nums() 可以计算任何表格的长度。

2020-08-06 09:40:56 372

原创 cocos2dx 之[CSLoader]的额外应用

1.--lua版本self.tNodeChild = {}local callBack = function(ref)local name = ref:getName()self.tNodeChild [name] = refendlocal csbnode = cc.CSLoader:createNode(csbFile,callBack)CSLoader 这个方法很常用 不就是用来加载csb文件么。 但是他后面可以添...

2020-07-26 12:06:52 238

原创 cocos creator 常用函数汇总

1.场景加载cc.director.loadScene('场景名称');//场景跳转cc.director.preloadScene('场景名称');//预加载场景cc.director.getScene();//获取当前场景2.获取节点var node = cc.find("Canvas/bg");//通过访问路径来获取节点var a = this.node.getChildByName('name');//通过名字获取子节点node.getComponent(cc.Label).s.

2020-06-16 10:02:07 4063

原创 javascripts 常用APIs

W3Cschool JavaScript API 速查词典- 速查W3school JavaScript 参考手册Mozilla 开发社区版:JavaScript 参考手册——中文、英文

2020-06-15 13:52:53 86

原创 打印lua中的全局变量表_G

local tablePrinted = {}function printTableItem(k, v, level) for i = 1, level do io.write(" ") end io.write(tostring(k), " = ", tostring(v), "\n") if type(v) == "table" then if not tablePrinted[v] then ...

2020-06-03 22:26:33 1220

原创 lua元表

__tostring 元方法__tostring 元方法用于修改表的输出行为。以下实例我们自定义了表的输出内容:__call 元方法__call 元方法在 Lua 调用一个值时调用。以下实例演示了计算表中元素的和:__add...

2020-06-02 16:50:14 109

原创 http协议相关面试题

1、游览器输入一个地址。到页面展示中间经历了哪些东西?  #这个问题前端面试基本上百分百问的。测试的话,基础的功能面试可能不会问。自动化的话基本上也会问的。  1、游览器输入url。先解析url地址是否合法  2、游览器检查是否有缓存(游览器缓存-系统缓存-路由器缓存)。如果有,直接显示。如果没有,跳到第三步。  3、在发送http请求前,需要域名解析(DNS解析),解析获取对应过的ip地址。  4、游览器向服务器发起tcp链接,与游览器简历tcp三次握手  5、握手成功后,游览器向

2020-05-30 15:13:19 250

原创 cocos2d-x lua 调用onEnter和onExit

onEnter和onExit在lua中不会因节点别add和remove而直接被调用,当子节点被父节点add和remove时,会发送enter和exit的消息,所以需要再初始化节点的时候,监听消息,并在收到消息后调用onEnter或onExit。local function onNodeEvent(event)if event == "enter" then self:onEnter()elseif event == "exit" then self:onExit()end...

2020-05-24 19:55:24 425

原创 WebSocket 和HTTP的区别及原理

有时候还会有老铁在考虑在什么样的环境下使用WebSocket,什么样的环境下使用HTTP,今天我们来说下WebSocket和HTTP。 WebSocket和HTTP的区别 http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。 http链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息。即每一个request对应一个response。长链接是在一定的期限内保持链接。保持TCP连接不断开。客户端与服务器通信,...

2020-05-18 20:49:26 234

原创 cocos2dx+lua注册事件函数举例20200512

https://blog.csdn.net/tutuboke/article/details/39548735参考coocs2dx 版本 3.1.1registerScriptTouchHandler 注册触屏事件registerScriptTapHandler 注册点击事件registerScriptHandler 注册基本事件 包括 触屏 层的进入 退出 事件registe...

2020-05-12 16:51:12 168

原创 lua协同程序理解

参考:https://blog.csdn.net/booirror/article/details/39808817协程和多线程下的线程类似:有自己的堆栈,自己的局部变量,有自己的指令指针,但是和其他协程程序共享全局变量等信息。线程和协程的主要不同在于:多处理器的情况下,概念上来说多线程是同时运行多个线程,而协程是通过协作来完成,任何时刻只有一个协程程序在运行。并且这个在运行的协程只有明...

2020-05-07 20:58:38 154 1

原创 cocos2d lua debug.traceback

[string "scenes/game/home/MapView.lua"]:0: table index is nilstack traceback:[string "scenes/game/home/MapView.lua"]: in function 'onEnter'[string "framework/cocos2dx/NodeEx.lua"]: in function <...

2020-04-30 22:21:31 886

原创 js中!和!!的区别及用法20200430

参考https://blog.csdn.net/lw今天读源码看到: this.deviceVideoInOn = !!state;下面记录一下:js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,1、!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。!null=true...

2020-04-30 11:46:40 110

原创 lua require package.path package.loaded _G

参考https://blog.csdn.net/duke_geng/article/details/41844175简介require函数像dofile一样载入文件为一个Chunk并执行。但具有两个好处:1. 按模式加载文件 2.不会重复载入相同的文件require和package.path的关系典型的package.path值如下(其中D:Bin为lua.exe所在目录):.?.lua...

2020-04-27 22:09:19 516

原创 cocos2dx 物理引擎chipmunk

local PhysicsScene = class("Scene",function() return cc.Scene:createWithPhysics() -- 物理场景end)function PhysicsScene:ctor() -- local scene = cc.Scene:createWithPhysics() -- scene:addChild...

2020-04-25 16:30:39 301

原创 cocos2d-x Lua开局的初始化和MianScene的初始化20200422

main.lua xpcall()->mian()-> AppBase.lua ctor()->MyApp.lua onCreate()-> run()->enterScene()->createView()->ViewBase.lua ctor()->MainScene.lua onCreate()难点在于 为何会调用ctor的方法?因为...

2020-04-22 14:33:37 241

原创 cocos2d-x Scale9Sprite的使用方法 lua篇20200421

这里简单记录一下Scale9sprite的使用方法,其实使用这个方法主要是用来拉伸图片,好处就是该方法拉伸的程度不会像setScale方法这样严重扭曲变形。而是将一个纹理分为九个部分,也就是九宫格,上图:将图片为9个部分,拉伸的情况下1,3,7,9 不会拉伸,2,8部分水平方向拉伸,4,6部分竖直方向拉伸,5两个方向都会拉伸,这样纹理就不会扭曲变形。下面,贴出代码看一下九宫格怎么使用...

2020-04-21 19:40:38 565

原创 cc.FileUtils 常用函数

getWriteablePath()addSearchPath()findPathForFilename()isFileExist()getStringFromFile()purgeCachedEntries() 一般是更新资源后进行搜索前调用getValusMapFromFile()\" \" 表示双引号的意思 示例 a["qwe"]表示为 : "a[\"%s\"]"...

2020-04-21 11:30:47 937

原创 cocos_lua3.0 registerScriptHandler 与registerScriptTapHandler 比较20200415

原文链接:https://blog.csdn.net/liyoushihaer/article/details/39055425一 、调用registerScriptHandler 的对象不同相应的响应函数和调用方式也不相同1、 对象为layer时调用方式为:localfunctiononNodeEvent(event) -- event 包括exit enter...

2020-04-15 16:08:26 287

原创 堆排序理解

堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个...

2020-04-14 09:02:12 225

原创 lua_rawget,lua_rawset,lua_rawgeti,lua_rawseti继续理解

lua_gettable和lua_settable都可以操作table。void lua_gettable (lua_State *L, int index);把t[k]值压入堆栈, 这里的t是指有效索引index指向的值, 而k则是栈顶放的值。这个函数会弹出堆栈上的 key (把结果放在栈上相同位置)。 在 Lua 中,这个函数可能触发对应 "index" 事件的元方...

2020-04-13 22:02:53 1434

原创 vs2015 解决方案中添加项目

目的:解决方案中添加项目,为的是给项目引入需要的库,如lua库,websocket和https库方法步骤1.新建exe项目2.再新建lib静态库,举例(lua库),导入lua源码,剔除lua.c和luac.c文件,再生成解决方案,编译通过后lib静态库保存于debug文件夹中3.在步骤1中添加引用4.打开项目属性,在【项目】-【xxx(工程名)属性】-【VC++目录】-【附加目...

2020-04-12 10:48:43 1263

原创 c++ STL 整理20200409

感谢https://www.cnblogs.com/pullself/p/10049657.html#jumpC++ 常用STL整理容器和配接器list(链表)list可以认为是一个线性的双向链表,具有链表的特性,不使用连续的内存空间,可以快速的插入和删除,不支持随机的内部访问。使用需包含include<list>头文件,std命名空间。常用使用方法:1.创建实...

2020-04-09 10:21:40 116

原创 c++ 常用泛型函数

泛型函数结合lambda函数可以实现很多功能如:  将序列中的每个负数替换为其绝对值: transform(vi.begin(),vi.end(),vi.begin,[](int x){return x<0? -x:x;});  查找第一个长度大于等于sz的元素: auto wc =find_if(words.begin(),words.end(),[sz](const st...

2020-04-08 11:46:18 1232

原创 数据结构---队列20200408

C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。那么我们如何判断队列是空队列还是已满呢?a、栈空: 队首标志=队尾标志时,表示栈空。...

2020-04-08 10:41:26 103

原创 cocos2dxz之action和actionmanager关系

Cocos2d-x Action管理动作管理类CCActionManager是一个管理所有动作的单例,工作原理是:当CCNode执行runAction时,该函数会把动作通过动作管理类的addAction函数将对象传递给CCActionManager的单例,该实例再把这个动作添加到自己的动作序列中。动作管理单例通过定时刷新自己的update方法,在这个方法中去调用行为序列中每个动作的step...

2020-04-07 10:24:18 177

原创 cocos2dx之anchorpoint

设置锚点:Layer和Sprite有不同,layer要设置锚点,必须先:ignoreAnchorPointForPosition(false);

2020-04-07 09:06:42 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除