繁体   English   中英

用Java旋转精灵

[英]Rotating a Sprite in Java

在研究Projectiles我认为最好同时旋转精灵,使其看起来更好。

我当前正在使用一维数组,并且子画面的宽度和高度可以并且将变化 ,所以这使我更难弄清楚如何正确执行此操作。

我将诚实并直言不讳地说:我完全不知道如何执行此操作。 我已经做了一些搜索以尝试找到一些东西,并且那里有些东西,但是我发现的最好的是:

DreamInCode〜旋转一维像素阵列

此方法工作正常,但仅适用于方形Sprite。 我也想将其应用于非正方形(矩形)精灵。 如何设置它以便旋转矩形精灵?

目前,我正在尝试制造激光,如果它不仅沿垂直轴或水平轴移动,它的外观会更好。

您需要重新计算图像的坐标点( 在此处查看 )。 您必须对旋转矩阵的精灵(x, y)的每个点进行矩阵乘积运算,以获取空间x'y'的新点。 您可以假定子画面的左下角(或从下而上,取决于您的系统坐标方向)为(x,y) = (0,0)

并且您也应该重新计算颜色(因为如果您在旋转时在(x,y)=(10,5)处有一个纯红色像素被蓝色像素包围,例如它可以移动到(x, y)=(8.33, 7.1)它不是真实的像素位置,因为像素没有浮动坐标,因此真实位置(x, y)=(8, 7)的像素将不再是纯红色,而是具有少量蓝色的红色)...不过是一回事。

它比您想象的要容易:您只需要复制居中的原始矩形精灵到透明背景更大的方形精灵中即可。 .png文件具有该选项,我认为您可以使用它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM