Java Slick2D:在游戏循环之前初始化图形对象

Java Slick2D:在游戏循环之前初始化图形对象,java,lwjgl,slick2d,Java,Lwjgl,Slick2d,我正在使用Slick2D Java游戏库,我想设置在游戏循环中传递给渲染方法的图形对象的比例。我希望在render方法之外执行此操作,因此只需调用setScale()方法一次。我正在将我的游戏实现为StateBasedGame,所以我想在StateBasedGame类中初始化图形对象。在哪里可以进行此操作?在Init方法中,您应该在那里初始化映像。我可以对此进行扩展,但您的问题似乎承认您已经知道如何缩放图像 编辑:重读问题后,答案是每次进入游戏状态对象的渲染方法时,都需要对其进行缩放。这就要求你

我正在使用Slick2D Java游戏库,我想设置在游戏循环中传递给渲染方法的图形对象的比例。我希望在render方法之外执行此操作,因此只需调用setScale()方法一次。我正在将我的游戏实现为StateBasedGame,所以我想在StateBasedGame类中初始化图形对象。在哪里可以进行此操作?

在Init方法中,您应该在那里初始化映像。我可以对此进行扩展,但您的问题似乎承认您已经知道如何缩放图像

编辑:重读问题后,答案是每次进入游戏状态对象的渲染方法时,都需要对其进行缩放。这就要求你把图形放在刻度上(0.5f,0.5f)


我相信这是必需的,因为图形对象在每次游戏中都会重置其比例,这样当它调用渲染方法数百次时,就不会得到复合效果。

我尝试调用
container.getGraphics().scale(0.5f,0.5f)initStatesList(GameContainer容器)
方法中使用code>,但这没有效果。我猜是因为每次进入游戏状态的图形对象都会被重新创建?这就是你所说的吗?或者你还有什么进一步的建议吗?哦,我误解了你原来的问题。我还以为你是想用图像做点什么,而不是实际的图形对象哈哈(有点累了)。至于你要问什么,这样做是不明智的(阅读:正确处理单例),但是你要完成的应该在上面编辑的答案中。如果您需要更多帮助,请发布一些代码,我将很乐意帮助您。我已经用slick做了很多工作,并且非常了解它。好的,我明白了,谢谢你的澄清。然而,这样做对我打算使用它的方式有一点代码味道。我正在使用
graphics.scale()
方法以使游戏适合任何分辨率。如果我必须在每个渲染中调用它,这意味着我必须在每个状态下的每个渲染方法中放置相同的代码行。有没有更好的办法解决这个问题?我真的看不出有什么问题。。如果您有3个状态,最多只需编写3个图形。缩放(gScaleX,gScaleY)行。。?除此之外,还有一个叫做ScalableGame的类,你可以研究它,但我不能说它非常有用。还发现了一个包含分辨率拟合示例的线程:希望该线程能进一步帮助您。我会尝试在自己的代码上多帮点忙,但我不在电脑前。