在2d游戏中常用的向量方式

function cc.exports.VectorRotateByAngle(vector,angle)--计算向量旋转后的向量,angle:正数逆时针,负输顺时针

angle = angle*math.pi/180

local sinAngle = math.sin(angle)

local cosAngle = math.cos(angle)

return cc.p(vector.x * cosAngle - vector.y * sinAngle,vector.x * sinAngle + vector.y * cosAngle)

end

function cc.exports.AngleBetweenVector(v1,v2)--计算两个向量的夹角,值为正数

local n = v1.x*v2.x + v1.y*v2.y

local m = Vector2ToLen(v1)*Vector2ToLen(v2)

return math.acos(n/m)*(180/math.pi)

end

function cc.exports.NomalizeVector(vector)--单位化向量

local vecLen = math.sqrt(vector.x*vector.x + vector.y*vector.y)--单位化向量

return cc.p(vector.x/vecLen,vector.y/vecLen)

end

function cc.exports.VectorToLen(vec2)--计算向量的长度

return math.sqrt(vec2.x*vec2.x+vec2.y*vec2.y)

end

时间: 2024-10-09 01:45:27

在2d游戏中常用的向量方式的相关文章

cocos2dx 游戏开发中常用场景切换方式以及特性

runWithScene(CCScene* scene):启动游戏,并运行scene 场景.这个方法在主程序启动时第一次启动主场景时调用. replaceScene(CCScene* scene):直接使用传入的scene 替换当前场景来切换画面,当前场景将被释放.这是切换场景时 最常用的方法. pushScene(CCScene* scene):在不释放旧场景内存的情况下运行新场景,推进新场景相当于在当前可见的纸上再放一张纸,而之前的纸位置何持不变.适用情况: 1.推进一个经常被用到的场景,例

Unity3D 2D游戏中寻径算法的一些解决思路

需求 unity3d的3d开发环境中,原生自带了Navigation的组件,可以很便捷快速的实现寻路功能.但是在原生的2d中并没有相同的功能. 现在国内很多手机游戏都有自动寻路的功能,或者游戏中存在一些例如机器人.npc等,都需要自动寻路的功能. 我需要实现的功能类似于当年FC游戏中淘金者的运动方式.游戏中有淘金者.敌人,可移动,不可移动区域,只能沿着直线的向前向后或者向上向下. 思路 unity3d中也有一些2d寻路的插件.例如A Pathfinding Project Pro和NavMesh

WCF中常用的binding方式

原文地址:http://www.cnblogs.com/Anima0My/archive/2008/04/16/1156146.html WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务.WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯.WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 

WCF中常用的binding方式 z

WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务. WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯. WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 类型的服务. WSFederationHttpBinding: WS-Federation 安全通讯协议. NetTcp

基础篇:1.JavaScript运行在html中,引用有几种方式?—— 6.js中常用的输出方式?

书接上文,上文提到若干条JavaScript的基础性知识,大部分都是一些概念性的东西,本着认真严谨的态度,我们要认真对待,有些条目的问题是某个知识点的周边延伸,为节约篇幅,就一起整理了,如有描述不对的地方或者是描述不足的地方,望大家批评指正,下面是我给我”参考答案“,也只是仅供参考: 1.JavaScript运行在html中,引用有几种方式? 我知道的方法有3种: 第一种:外部引用远程JavaScript文件,如<script type="text/javascript" src

游戏中常用到的碰撞检测帮助类

游戏中咱们经常用到碰撞检测,一般的游戏引擎也会自带有自身的检测碰撞类,但有时候不过灵活,这时候我们希望自己可以自定义一些碰撞检测类.tong顶一些啊... import android.graphics.Rect; public class CollisionUtil { /** * 矩形碰撞检测 参数为x,y,width,height * * @param x1 *            第一个矩形的x * @param y1 *            第一个矩形的y * @param w1

2D游戏中常见的碰撞检测处理【持续更新】

~写在前面~ 嗯...打算开始每天写点啥了,不知道能坚持多久. 打算每天写一点或是技术或是应用或是设计或是什么的乱七八糟的有用的“干货”,所以起名叫“大杂烩”.以一周为单位来进行更新,周一~周三写一些图形方面的内容,四~六是和图形没有什么太大关联的内容(大家意会就好),周日作为一个更新重点试着写一些和paper有关的东西.打算做到“paper a week”不过感觉似乎有点不太现实总之先试试吧w 这篇里面用到的大部分图片应该都是用 http://editor.method.ac/ 这个东西做的,

2d游戏中求出一个向量的两个垂直向量

function cc.exports.VerticalVector(vec)--求出两个垂直向量 local result = {} result[1] = cc.p(vec.y/vec.x,-1)--向下方向 result[2] = cc.p(-vec.y/vec.x,1)--向上方向 return result end

java中常用的加密方式

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密). 双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文.而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧.具体区分可以参考: (本人解释不清呢 -- ) http://secur