do {
checkIfThereAre3BlocksTogether();
removeThoseBlocks();
updateTheBoardPieces();
showTheBoard();
} while (thereWhereBlockRemoved);
我面临的问题是,我不能让这个循环的每个迭代之间的板得到呈现。我只得到这个循环的最终结果。
我试图在每次迭代之前创建一个thread.sleep(2*1000),以便给渲染系统时间来绘制我的板,但它工作了。
另一个解决办法是调用
Gdx.graphics.setContinuousRendering(false);
Gdx.graphics.requestRendering();
@Override
public void render(float delta) {
System.out.println("Rendering");
// Background rendering
Gdx.gl.glClearColor(0.8f, 0.8f, 0.8f, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// World rendering
renderer.render();
}
Libgdx将每帧调用其render
回调一次。您无法让Libgdx在单个render
回调中绘制多个帧,因此while循环将始终运行到完成,然后才将下一个帧呈现到屏幕上。
您需要从while
循环切换到一种希望在更新过程中多次调用render
的方法。通常,状态机是思考这个问题的好方法。但在您的具体情况下,我认为您可以完全摆脱while循环。(实际上,render
方法已经处于无限while循环中):
public void render(float delta) {
...
if (checkIfThereAre3BlocksTogether()) {
removeThoseBlocks();
updateTheBoardPieces();
}
...
}
现在您可能会遇到这样的问题,即当您运行这些更新时,您将希望阻止播放机对系统进行新的更改。您将需要跟踪“模式”您的游戏是在(接受更新或运行通过组合),并推迟检查输入,直到您完成运行通过组合。
我正在编程一个小游戏,它是基于瓷砖的。但当我渲染它的时候,有时那些瓷砖之间的一个小空间是可见的,(绿色)背景是暴露的(可以在视频中看到)。 我想知道,是否有一些双缓冲技术,可以解决这个bug,但我读到,双缓冲已经实现了。
我想我不明白render方法是如何工作的。 从我在网上读到的/在youtube教程上看到的,我发现render方法是一个循环函数,您可以使用它来保持游戏的更新和读取用户的输入。当您想要在屏幕中绘制一些东西时,您可以使用此方法,并且在绘制任何东西之前清除屏幕。 但是如果我想要静止地绘制一些东西,那么在render方法之外绘制它不是更好吗(这样计算机就不必多次清除屏幕并重新绘制所有东西)?我错过了什么
我正在java中使用Graphics2D和Canvas类创建一个游戏。 当我运行程序时,一个JFrame出现在我的第一个监视器上,并且没有任何问题。然而,当我将JFrame拖到第二个监视器上时,它会变成灰色,并且将停止呈现任何内容,然后当我将它拖回到第一个监视器上时,程序继续呈现。 我的游戏循环调用我的类中的方法,该类扩展了,这是draw方法。
我的表格代码: 我的视图代码: 堆栈跟踪: 环境: 请求方法:获取请求URL: Django版本:1.4 Python版本:2.7。2个已安装的应用程序:('django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.sites','django.contrib.messa
此外,当我尝试在Netbeans中创建一个新的Android项目时(而不是在libgdx,只是通过创建一个新的Android项目),它工作得非常好。 Libgdx/Android-SDK通信似乎有问题,但在网上搜索答案后,我似乎想不通! 如果需要,我可以贴代码。 编辑:我肯定是改了什么东西,但现在错误有点不同。不是“Android.os不存在”,而是“在Android.os中找不到类包”。以下是我
我最近开始了我的第一个libGDX游戏,一切都进行得很好,所有的东西都呈现得很好,但是大约一分钟后什么都没有呈现,呈现调用仍然被发出,并且spritebatch工作得很好,我只是留下了一个黑屏,我甚至把'gl clearcolor()'改成了但我仍然留下了一个黑屏。我不知道这会是什么。 我的主要类: 编辑:我们已经确定,经过一段时间SpriteBatch渲染一个黑色屏幕的红色清晰颜色,它也停止渲染