有很多人说做游戏最难的就是角度和旋转的问题,那么今天我们来一步一步地坚固这个游戏界的软骨。
首先是角度问题:
1,要知道角度需要有两个向量才可以知道,向量间的角度(哈哈,回忆初中知识)。
而通常情况下我们只有两个点,那应该怎么得出向量呢?
得向公式:V终点-V起点=向量
比如说你鼠标位置是mp,go位置是gp,获取gp到mp的向量是反过来mp-gp。
2,那我们照上面只能得出一个向量,一开始说到要两个,那就应该去找起始向量!
在不同的坐标计算方法中有着不同的起始向量,而我通常用的是V(0,1)(就是vector.up)那么如何得角呢?
得角公式:float 角 = Vector2.Angle(Vector2.up, 向量)
float 角 = Vector2.Angle(Vector2.up, 向量)
下面贴出快捷代码段:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>fv</Title>
<Shortcut>fv2</Shortcut>
<Description>向量角计算代码段</Description>
<Author>normidar</Author>
<SnippetTypes>
<SnippetType>flo</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>flo</ID>
<ToolTip>角</ToolTip>
<Default>angle</Default>
</Literal>
<Literal>
<ID>count</ID>
<ToolTip>向量</ToolTip>
<Default>vector</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[float $flo$ = Vector2.Angle(Vector2.up,$count$);]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
网友评论