lua数学库LuaMathLib
来源:互联网 发布:如何p图淘宝评价管理 编辑:程序博客网 时间:2024/05/13 12:24
实在厌倦了做了多个游戏项目之后,对常用的数学计算总是算了又忘忘了再算。与其他技术问题相比,一个解决一个数学型问题有着费时、不易调试逻辑错误、边界条件不明显有隐患、没成就感等特点。本着坑不能踩n+1次的心态,我做了这个东西——LuaMathLib。
今天的主角是LuaMathLib,一个通用可移植的纯Lua数学库。
语言层面上的特点
- 面向对象 即封装、实例化那堆术语了,目的是在任何面向对象语言中可移植
- 支持Getter/Setter 按照ECMA语法风格,对象属性可以是个函数返回值等
- 支持索引器 可以按语义方式访问Vector3.x,也可以按索引方式访问Vector3[1]
结构特点
- 核心算法移植自Unity3D和XNA,它们的稳定性是经过多年时间无数游戏的践踏而十分坚实的
- 我提供了些附加测试,对API的正常工作做个不完全的保证
- 可移植到其他语言
使用方法
你可以在CSDN上找到源码,它同时是一个可在Quick-x中运行的项目。使用这个数学库,能够快速达成很多有趣效果,下面以一个效果很棒的转盘为例说一下。
场景onEnter()函数中
self._vRot = 0self._rot = 0self._arrow = display.newSprite("spin/arrow.png"):scale(0.5):pos(display.cx, display.cy+5):addTo(self)self:addNodeEventListener(cc.NODE_ENTER_FRAME_EVENT, function(dt) self._rot = self._arrow:getRotation() self._rot, self._vRot = Math.SmoothDamp(self._rot, 7200, self._vX, 4, 1000, dt) self._arrow:setRotation(self._rot)end)self:scheduleUpdate()
效果下如图
Math.SmoothDamp()极其适合这种高加速低减速的运动,同类的应用如摄像机推拉、宠物跟随等。
参考资料
项目中不提供文档,但你可以查阅Unity文档(主)和XNA文档(辅)的数学部分,因为LuaMathLib会全部支持。
项目状态
LuaMathLib以开源形式托管在https://code.csdn.net/lolofinil/luamathlib。目前对Unity3D数学库移植程度大约在30%,已经可以在Lua代码中访问几乎所有UnityEngine.Mathf、Vector2.Mathf和Vector3.Mathf。计划内的任务包括完成Vector4、Quaternion、Matrix4x4移植、用空间矢量改善2D计算、合并XNA特有API如Vector3.Catmull等。
原文链接:http://www.lolofinil.com/2014/08/03/luamathlib_intro/
0 0
- lua数学库LuaMathLib
- LUA中的数学库
- Lua中的数学库
- lua中数学库
- Lua中的数学库
- lua数学库
- lua常用数学库
- Lua中的数学库
- Lua中的数学库
- Lua中的数学库
- Lua中的数学库
- Lua中的数学库
- lua中的数学库
- Lua数学库
- Lua 数学库
- lua数学库math
- LUA中的数学库介绍
- lua的数学库列表
- 电脑硬盘坏了怎么办
- MongoDB常用操作
- xml反序列化
- Facebook挖角谷歌 卫星领域竞争趋白热化
- 由于gridview或者listview position==0时重复加载第一个item的图片加载失败的解决方案
- lua数学库LuaMathLib
- poj-1019
- [leetcode] Reorder List
- SQL常用系统函数@@
- Android-Universal-Image-Loader异步加载图片框架学习研究
- 二叉树的最长路径
- c语言fopen追加模式下fseek失效
- android ADB命令的使用
- 2015年考研政治科目设置简述及复习