我一直在做一个Java游戏,但我无法阻止它的口吃。我做了一些调查,发现我用的是一个糟糕的游戏循环。我一直在做一个新的游戏循环,它的工作更好,但我的框架经常跳从60 FPS到62 FPS,有时甚至崩溃。这是我正在使用的循环;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Frame;
@SuppressWarnings("serial")
public class GameLoop extends Applet implements Runnable {
final int FRAM
许多java游戏使用thread.sleep()来控制fps。由于服务器不显示图形,服务器游戏循环是否应该继续运行,只计算增量时间?就像这个例子:
long lastLoopTime = System.nanoTime();
final int TARGET_FPS = 60;
final long OPTIMAL_TIME = 1000000000 / TARGET_FPS;
while (gameRunning)
{
long now = System.nanoTime();
long updateLength = now - lastLoopTime;
last
我有一个FPS功能:
private static void runGameFPS2() {
long beginTime; //The time when the cycle begun
long timeDiff; //The time it took for the cycle to execute
int sleepTime; //ms to sleep (< 0 if we're behind)
int fps = 1000 / 40;
beginTime = System.currentTimeMillis();
/
嘿,伙计们,我已经做了一段时间的java游戏编程,最近我遇到了一个问题。当我在java中加载一个相对较小的精灵表时,我的FPS从500到250,使我的游戏相当落后。如果有人知道如何减少java游戏的滞后性,并获得更好的FPS,那就太好了!
BufferedImage spriteSheet = ImageIO.read(new File(spriteSheetLocation));
sprites = new BufferedImage[rows * columns];
for (int i = 0; i < rows; i++) {
for (
我尝试使用javax.swing和java.awt创建自己的“游戏循环”实现,但当我的目标fps为60时,我的实现只获得了49-52 fps,而另一个实现获得了59-61 fps。为什么我的实现会得到一个较低的帧率,如果它做更少的计算? 我的实现: public class MainContainer implements Runnable {
public Thread thread;
private final String title = "Window";
private int width = 800, height = 600;
我在做简单的2D游戏。我有一个游戏循环,在游戏循环中我有一个更新方法。每当xPos循环时,我就通过向它添加1来移动它。这意味着,如果你有一个慢的fps,那么一切都会以慢动作进行,如果你的fps很高,所有的动作都会非常快。
这是我的密码:
long fpsTimer;
int frames;
public void run(){
running = true;
fpsTimer = System.nanoTime();
while(running){
render();
up
我刚刚制作了这个Java游戏循环,我希望有人能对它发表意见。它是基于我所听到和读到的。如果我做得对,如果有什么大问题,请告诉我。
public void run() {
long nanosecond = 1000000000;
int targetFps = 60;
int targetUpdates = 20;
long update = nanosecond / targetUpdates;
long draw = nanosecond / targetFps;
long lastUpdate = System.nanoTime();
我试图根据时间和FPS制作一个角色。
我需要的是让我的字符跳到最后一个second.Right,现在我使用下面的代码,它使字符跳转1 second.But问题是..if,fps是60个字符移动60个像素,如果fps是30,它只移动30 pixels...How,我可以解决这个问题。
我需要字符移动60像素,无论fps和1秒内。
//Below is the requestanimation frame loop
// which runs the loop 60 to 30 times per second ,
// which vary according to browser.
我正在编写一些代码来使对象具有动画效果。目前我有类似这样的东西(伪代码)..
class Sprite:
x = 0
y = 0
def animate(fps=10):
x += blah
y += blah
time.sleep(1000 / fps)
self.animate()
mario = new Sprite()
mario.animate(fps=10)
bird = new Sprite()
bird.animate(fps=5)
如你所见,对于创建的每个精灵,它都有自己的动画功能,可
我在使用LWJGL在屏幕上跟踪FPS时遇到了一些问题。我的代码出了什么问题?
我一直有这样的想法:
Exception in thread "main" java.lang.NullPointerException
at TheGame.renderFont(TheGame.java:66)
at TheGame.start(TheGame.java:48)
at TheGame.main(TheGame.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
使用java 11运行maven构建时,生成在运行测试时发出以下警告:
[WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 1. See FAQ web page and the dump file /home/thomas/code/irdeto-control/fps-license-service/fps/target/surefire-reports/2019-04-11T14-05-32_318-jvmRun1.dumpstream
生成失败后,由以下stderr输出执行...fo
在开发相机应用程序时,我遇到了一个异常,只有当我切换到其他应用程序(我的应用程序的onPause())时才会发生。
01-15 17:22:15.017: E/AndroidRuntime(14336): FATAL EXCEPTION: main
01-15 17:22:15.017: E/AndroidRuntime(14336): java.lang.RuntimeException: Method called after release()
01-15 17:22:15.017: E/AndroidRuntime(14336): at android.hardware.Came
在我的游戏圈里,
m_currentFrameTimestamp = glfwGetTime(); // Get the current timestamp
if ((m_currentFrameTimestamp - m_lastFPSDisplayTimestamp) >= 0.25) { // If 1/4 of a second
// passed, update the FPS counter
double renderTime = m_currentFra