向量在游戏中的应用
2014-12-04 14:35
253 查看
在游戏中如何计算物体B位于A的方向(0°~360°)。
1、将物体A、B的位置转换成对应的向量V1、V2。
2、可以看到 V3=V2-V1 就是物体B位于A的方向
3、设U1、U2为V3、V(1,0)的单位向量。
4、计算角度:angle = Math.acos(U1*U2);
5、如果v2.y>=v1.y,angle = 360 - angle;
public function Test()
{
var p:Polygon = new Polygon(3,15);//三角形
p.x = 150;
p.y = 150;
addChild(p);
var point:Sprite = new Sprite();
point.graphics.beginFill(0x00ff00,0.5);
point.graphics.drawCircle(0,0,5);
point.graphics.endFill()
addChild(point);
var v1:Vector2 = new Vector2(p.x,p.y);
var v2:Vector2 = new Vector2();
stage.addEventListener(MouseEvent.MOUSE_MOVE,function(e:MouseEvent):void{
v2.x = mouseX;
v2.y = mouseY;
point.x = mouseX;
point.y = mouseY;
p.rotation = -Vector2.rotationAng(v1,v2);
});
}
三角形跟着鼠标旋转
1、将物体A、B的位置转换成对应的向量V1、V2。
2、可以看到 V3=V2-V1 就是物体B位于A的方向
3、设U1、U2为V3、V(1,0)的单位向量。
4、计算角度:angle = Math.acos(U1*U2);
5、如果v2.y>=v1.y,angle = 360 - angle;
public function Test()
{
var p:Polygon = new Polygon(3,15);//三角形
p.x = 150;
p.y = 150;
addChild(p);
var point:Sprite = new Sprite();
point.graphics.beginFill(0x00ff00,0.5);
point.graphics.drawCircle(0,0,5);
point.graphics.endFill()
addChild(point);
var v1:Vector2 = new Vector2(p.x,p.y);
var v2:Vector2 = new Vector2();
stage.addEventListener(MouseEvent.MOUSE_MOVE,function(e:MouseEvent):void{
v2.x = mouseX;
v2.y = mouseY;
point.x = mouseX;
point.y = mouseY;
p.rotation = -Vector2.rotationAng(v1,v2);
});
}
三角形跟着鼠标旋转
相关文章推荐
- [Unity游戏开发]向量在游戏开发中的应用(一)
- [Unity游戏开发]向量在游戏开发中的应用(二)
- 游戏开发中的数学、向量的应用
- [Unity游戏开发]向量在游戏开发中的应用(三)
- 向量在游戏开发中的应用(三)
- 向量在游戏开发中的应用(二)
- [Unity游戏开发]向量在游戏开发中的应用(二)
- 向量在游戏开发中的应用(一)
- 向量的点乘和叉乘在游戏中的应用
- [Unity游戏开发]向量在游戏开发中的应用(一)
- [Unity游戏开发]向量在游戏开发中的应用(三)
- 向量的点乘和叉乘在游戏中的应用
- 真人动漫技术游戏应用方案策划(一)
- Flex应用展示之 在线游戏平台
- 游戏中 ----三维空间中的 向量
- 向量几何在游戏编程中的使用3 - Popy007(Twinsen)的专栏 - CSDNBlog
- 真人动漫技术游戏应用方案策划(三)
- 游戏下载安装菜鸟完全手册和虚拟光驱的应用指南
- 向量几何在游戏编程中的使用
- 在你的游戏中应用LUA