java是在游戏中绘制收藏品的最佳方法?
我希望我的游戏能从一个精灵身上抽取硬币,然后我的主角就能捡起它们。我试图使用数组列表来实现这个功能,但我不知道如何实现这个功能。我是否制作了一个需要绘制的精灵数组列表,然后重新使用?如果是,怎么做? 或者我需要使用其他功能吗?我是个乞丐,如果这个问题看起来很奇怪,我很抱歉
你可以在下面搜索框中键入要查询的问题!
我希望我的游戏能从一个精灵身上抽取硬币,然后我的主角就能捡起它们。我试图使用数组列表来实现这个功能,但我不知道如何实现这个功能。我是否制作了一个需要绘制的精灵数组列表,然后重新使用?如果是,怎么做? 或者我需要使用其他功能吗?我是个乞丐,如果这个问题看起来很奇怪,我很抱歉
# 1 楼答案
我建议使用Libgdx的Array类而不是javaarraylist,因为它针对游戏性能进行了优化
创建一个数组以容纳所有活动硬币
然后创建一个硬币池。池是一个帮助器,用于创建某些内容的副本,而不会导致垃圾收集中断。您需要创建一个子类Pool来使用。它描述了如何在需要时制造新硬币
然后创建一个CoinPool实例,用于游戏中
现在,只要你想要一枚新硬币,就从池子里拿出一枚。它只会在必要时实例化一个新的。否则,它会给你一个以前回收的。一旦你得到了它,在你想要的地方设置它的位置和其他参数。请记住,它可能仍然附加了旧值,因此,如果您正在旋转硬币并将其四处移动或更改颜色,则需要确保重置位置、旋转和颜色
无论何时您处理完一枚硬币(当它被收集时),您都需要将其从活动硬币列表中删除并返回到池中:
要绘制它们,您只需将当前在
activeCoins
列表中的所有精灵提交到精灵批# 2 楼答案
我最近用Java设计了一个2D侧滚角色扮演游戏。游戏的一部分是四处走动,捡起剑和盔甲等物品
我完成将精灵加载到游戏的方法是通过将图标设置为图像来给JLabel我的图像(在游戏开始时在本地检索)
接下来,我会在游戏地图上随机放置我的JLabel。我没有使用数组列表,不过如果你有多种类型的剑或硬币等,你可以使用数组列表
阵列列表中可以包含各种类型的剑(JLabel's,其图标设置为精灵),例如青铜剑、银剑和金剑
一旦你的JLabel加载到你的地图上,你可以给他们一个命中框,如果你的角色在命中框内移动,那么将JLabel从地图上移除并放入玩家背包中(或者不管它是什么,可能会附加一个硬币数量?)