使用j2me在所有角度旋转精灵图像

3

我正在使用Android和Java开发游戏。在Android中,我使用AndEngine作为精灵图片库,我能够让图片在所有方向上旋转。

  int bikeFrame:
//bikeFrame++,bikeFrame--

bikeSprite.setRotation(bikeFrame);

我也希望在j2me中制作游戏。但是在j2me中,我们只有四种旋转角度的方法(TRANS_MIRROR、TRANS_MIRROR 90、TRANS_MIRROR 270、TRANS_MIRROR 180)。

如果我将图像作为帧来处理,仍然无法获得平滑的动画效果。

如何在j2me中以所有角度旋转精灵图像?

2个回答

2
请参考这个帖子,omarhassan123创建了一个代码片段,可以让您按任意角度旋转图像。
有一个名为J2ME ARMY KNIFE的库提供各种图像处理技术,您可以在这里获取它。
另外,请查看这个问题:图像旋转算法 另一个想法是反编译一个名为Flexis Extreme的游戏。他们实时进行大量图像旋转,因此您可以尝试找出他们是如何做到的。

我不确定,但它应该在所有设备上运行,除非它使用了一些特殊的API。你可以在模拟器中测试一下。可能会发生的一件事是,由于图像处理非常复杂而导致内存不足,但这是你无论是否使用此特定库都可能遇到的问题。请参见实时演示:http://www.j2mearmyknife.com/live-demo/ 我觉得令人惊讶的是,在如此少的内存/CPU情况下有如此多的可能性。 - JohnEye
我在三星GT-c3222上测试了J2ME ARMY KNIFE演示jar文件,它卡住了。其他设备如诺基亚和LG都能正常工作。 - JohnRaja
很高兴知道。你能确定问题是什么吗?罪魁祸首可能是其他一些酷炫效果之一,所以你仍然可以使用该库。 - JohnEye
@JohnEye 在 omarhassan 的代码中,结果图像有很多冗余的透明行和列。如何修复? - Vijay C
@Vijay C:你确定它们是多余的吗?我认为它们可能存在的原因是即使图像被旋转,使其对角线垂直或水平,也可以适应。如果这个假设是正确的,你可以修改算法,使得这些线条不存在,但是每次旋转图像时都必须重新计算图像的位置。此外,你确定它们在你的设置中会引起任何问题吗?我相信你已经听过一千遍了,但是过早地进行优化是一个不好的实践。 - JohnEye
显示剩余3条评论

0

如果我必须使用J2ME,我只会使用LWUIT - 那里有很棒的东西。 - jmroyalty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接