我仍在学习Java,如果有人可以帮助我,我将非常高兴!
对不起,英语不好,我是西班牙人!我正在制作一个平铺游戏,该游戏使用了经典的“游戏循环”,该引擎以60fps的速度限制了引擎的速度。循环睡眠,然后调用repaint();。这样很好!但..
问题在于,当调整JFrame的大小或使其最大化时,将调用repaint事件!例如,当JFrame最大化/调整大小时,游戏以10000fps的速度渲染,但当它们没有渲染时,游戏以我设置的速度渲染,因此有一种方法可以禁用“自动重绘”,并使其仅在“
component.repaint()是从我的代码中调用的?
这里的问题不是“游戏循环”,而是当以更大的fps调整大小/最大化渲染游戏时,重新绘制称为自动绘制!
public class Handling {
static private int fps=0;
static private int fpsfinal=0;
static int frames = 60;
static int frames_skip = 1000 / frames;
static long ticknext = GetTickCount();
static long ticksleep = 0;
public static void Run() {
for(;;){
Main.getDevice().repaint();
fps++;
ticknext += frames_skip;
ticksleep = ticknext - GetTickCount();
if(ticksleep >= 0) {
try {
Thread.sleep(ticksleep);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static long GetTickCount(){
return System.currentTimeMillis();
}
public static int GetFPS(){
fpsfinal=fps;
fps=0;
return fpsfinal-2;
}
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.ImageObserver;
import javax.swing.*;
public class Game extends JPanel{
private static final long serialVersionUID = 1L;
static boolean dir=true;
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
int layout=Main.layout;
Graphics2D g2d = (Graphics2D) g;
g.setFont(Resources.GetFont(0));
Camera.UpdateCameraAxis();
Camera.DoCamera();
Cursor.MouseLoop();
if (layout==0){
this.setBackground(new Color(210,247,255));
for(int xx=Math.max( etc....
所以当JFrame没有最大化时
我不知道为什么这会引起问题,因为只应生成一个重画请求。
或(调整大小)
我可以看到这是一个问题,因为将为您调整帧大小的每个像素调用重绘。在这种情况下,您可以使用:
Toolkit.getDefaultToolkit().setDynamicLayout(false);
现在,将在调整大小后验证组件。
this.setBackground(new Color(210,247,255));
不要使用上述代码,因为更改背景会导致调用repaint(),这将再次调用paintComponent()方法。绘画方法仅用于绘画。
我制作了一个包含三个jpanel的jframe,这三个panel将jframe分成三个相等的部分。每一个面板都包含一个图像。我想调整图像和面板的大小,当帧的大小从高到低的时候。有人能告诉我如何做吗。
问题内容: 我正在创建一个,然后调用该方法。现在,所需的行为是在任何情况下用户都不应调整JFrame的大小。通过最大化或拖动边框。应该是500x500。我该怎么做?我还附上了代码,以防您能更好地指导我。 问题答案: 您可以在构造函数的“帧初始化”下使用一个简单的调用: 调用之后,窗口将无法调整大小。
问题内容: 我正在尝试为入门者创建一个简单的文字处理器,以更好地学习Python。 我将Tkinter小部件用于主要编辑程序,唯一的问题是 高度 和 宽度 由字符定义。 当我更改字体时,这会产生问题,因为并非所有字体的宽度都相同。 每次更改字体时,“文本”小部件都会重新调整大小,尽管从技术上讲,它的宽度和高度是相同的。尝试输入内容时,这看起来很荒谬,我正在尝试使文字处理器尽可能 好 。 有没有一种
编辑:它现在可以工作了,我用画布扩展了这个类,将它的大小设置为宽度和高度,然后将它添加到JFrame,然后打包。这管用!但我认为造成这种情况的原因不是尺寸大小,而是我呈现它的方式,我从JFrame中获得了bufferStrategy,而不是画布,这不是应该的方式。
问题内容: 我是Java的新手,开始学习挥杆技巧,并且在JFrame中调整JPanel的大小时遇到问题。我正在关注本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with- netbeans.html 因为最终我将学习每种不同的布局,并且现在已经进入CardLayout。在上面,有一个JPanel用于状态面板。那也是我想
我是Java新手,开始学习swing,在JFrame中调整JPanel的大小时遇到问题。我将学习本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with-netbeans.html 因为最终我正在学习每一种不同的布局,现在我来到了CardLayout。在上面,有一个JPanel用于状态面板。这也是我想要做的,但是当我将一个J