我正在开发一款 2d、自上而下的直升机游戏,它带来了独特的(至少对我而言)挑战,我希望堆栈社区可以提供一些建议。我需要直升机能够旋转,以及门枪能够旋转。如果我把它们放在一个movieclip中,那么这不是问题,生活很美好,但是我把它放在一起用于iOS,movieclip播放效果不好。所以,我需要使用位图。对于如何在直升机旋转和二维平移门炮以及旋转门炮时如何跟踪门炮的“安装点”,您有什么建议?提前感谢您的任何建议(“google it”除外 - 我已经做了很多)
2 回答
只需使用有效的 MovieClip 方法!
我一次在舞台上至少有 200 名 MC,并且在使用 iPad 时没有遇到任何问题(诚然,iPhone 可能会受到更多限制,但请继续阅读!)。只要您使用库中的实例,并且没有为相同的功能制作大量不同的图标(例如,所有直升机都应该来自同一架直升机),您应该没问题。
主要技巧是找到并使用 Air 的内存节省功能。例如,影片剪辑应该使用cacheAsBitmap
and cacheAsBitmapMatrix
。对于复杂 MC 的问题,有一些解决方案(基本上)会深入研究 MC 并cacheAsBitmap
根据需要进行分配——不过,您必须搜索它们。
另一个重要的工具是对象池。如果您有大量对象(如子弹),这可能是要实现的最重要的概念。
关键是,如果您有一个可行的解决方案,请使用它。
不过,一般来说,我用来维护在 MC 中放置东西的特定点的技巧是添加一个 1px X 1px 对象(可从 ActionScript 访问)并调用它attachPt
。然后我将 x,y 分配给类文件中Point
调用的对象attachPoint
,并将其用于放置。有时,我不得不使用globalToLocal()
and localToGlobal()
。
添加:
更多提示:
使用矩阵进行放置和旋转。. . 它更快,更易于管理。
不要使用任何滤镜(模糊、发光等)。相反,如果绝对需要,请创建 PNG 来模仿效果。
适度使用透明胶片,尤其是在补间中。
展平并组合尽可能多的层。
同样,视频游戏的池化、池化、池化,甚至使用位图。
最后,您可以随时将 MC 替换为位图。由于使用 MC 进行开发要容易得多,因此您可能仍想使用它们来创建游戏,然后再将它们换掉。如果您了解 JSFL,则可以编写一个脚本来使这成为一项微不足道的任务。
下面是我几年前制作的一个游戏的链接,它很狡猾,但它的开头也有所有的源代码。
http://www.files.com/flash/games/helicopter_game_with_camera_follow_3159.html
也可以尝试将其作为汽车的俯视图,但车轮单独移动: