当我使用SpriteBatch.Draw()
方法时,我可以得到垂直或水平缩放。例如:
new Vector2(1.0f, 2.0f)
这意味着我的精灵会扩展Y轴。如何使它对角展开(例如45或70度)?
(从评论更新)
我有圆圈精灵和这张图片包含阴影和眩光,我需要伸展这个圆(使椭圆)并旋转它,但我希望阴影不改变它的位置为椭圆。旋转和缩放改变了每一帧。
这张来自世界古柯游戏的图片:
发布于 2010-11-07 18:37:01
首先水平缩放,然后垂直缩放。如果它是45度,你将在两个方向上缩放相同的尺度,如果它是另一个角度,你可以用简单的sin/cos函数来计算尺度。
编辑:
C#示例:
float angle = 70; // Direction in degrees
float amount = 1; // By how many percent (1 = 100 %)
float radAngle = (angle / 180) * Math.PI;
float xratio = (1 + Math.cos(radAngle)) * amount;
float yratio = (1 + Math.sin(radAngle)) * amount;
// Then just make a new Vector2(xratio, yratio)
小心那个例子中的错误,我还没有测试它。对你来说,直接使用Vector2扩展雪碧不是更容易吗?
SpriteBatch.Draw(/* Some stuff */, new Vector2(2.0, 3.0), /* some more stuff */); // Scale 2x in horizontal and 3x in vertical direction
https://stackoverflow.com/questions/4119055
复制相似问题