【发布时间】:2015-04-02 03:33:11
【问题描述】:
我正在尝试为一个简单的 2D 游戏创建一个程序动画引擎,它可以让我用少量图像创建漂亮的动画(类似于这种方法,但对于 2D:http://www.gdcvault.com/play/1020583/Animation-Bootcamp-An-Indie-Approach)
目前我有保存不同动画对象数据的关键帧,关键帧是表示以下内容的浮点数组:
translateX、translateY、scaleX、scaleY、旋转(度)
我想将 skewX、skewY、taperTop 和 taperBottom 添加到此列表中,但无法正确渲染它们。
这是我尝试在精灵顶部实现锥形以使其具有梯形形状:
float[] vert = sprite.getVertices();
vert[5] += 20; // top-left vertex x co-ordinate
vert[10] -= 20; // top-right vertex x co-ordinate
batch.draw(texture, vert, 0, vert.length);
不幸的是,这会产生一些奇怪的纹理变形。
我有一点谷歌和查看 StackOverflow 并发现了这个,这似乎是我遇到的问题:
http://www.xyzw.us/~cass/qcoord/
但是我不明白它背后的数学原理(什么是 s、t、r 和 q?)。
谁能解释的简单一点?
【问题讨论】:
标签: java opengl animation libgdx