java - 如何停止此代码中的闪烁

标签 java flicker racing

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/*
<applet height=800 width=600 code="RaceApplet.java"></applet>
*/

public class RaceApplet extends JApplet implements KeyListener
{
    private Image player;
    private Image bg;
    private int nx = 800;
    private int ny = 0;
    private Rectangle rect;

    private void loadPicture()
    {
        bg = new ImageIcon("RaceBack.png").getImage();
        player = new ImageIcon("KD//KDE.png").getImage();
    }

    public void init()
    {
        loadPicture();
        rect = new Rectangle(250, 93, 50, 50);
        this.addKeyListener(this);
    }

    public void paint(Graphics g)
    {
        super.paint(g);
        g.setColor(Color.green);
        g.fillRect(0, 0, 34567, 34567);
        g.drawImage(bg, nx - 800, ny, null);
        g.drawImage(player, rect.x, rect.y, null);

    }

    public void keyPressed(KeyEvent e)
    {
        if( e.getKeyCode() == KeyEvent.VK_RIGHT )
        {
            nx = nx - 20;
            player = new ImageIcon("KD//KDE.png").getImage();
        }
        if( e.getKeyCode() == KeyEvent.VK_LEFT )
        {
            nx = nx + 20;
            player = new ImageIcon("KD//KDW.png").getImage();
        }
        if( e.getKeyCode() == KeyEvent.VK_UP )
        {
            ny = ny + 20;
            player = new ImageIcon("KD//KDN.png").getImage();
        }
        if( e.getKeyCode() == KeyEvent.VK_DOWN )
        {
            ny = ny - 20;
            player = new ImageIcon("KD//KDS.png").getImage();
        }

        repaint();
    }

    public void keyReleased(KeyEvent e)
    {

    }

    public void keyTyped(KeyEvent e)
    {

    }

}

问题是当我在小程序屏幕上移动我的车时它会闪烁。 有什么解决办法吗。 我怎样才能让它不闪烁屏幕。 我已经在大多数网站上进行了搜索,但他们显示的方式并没有那么奏效

提前感谢帮助

最佳答案

您应该在开始时加载所有图像,而不是每次需要时都实例化它们。

关于java - 如何停止此代码中的闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17568408/

相关文章:

java - 如何配置 Cucumber JVM + Logging appender?

r - 使用gganimate和view_follow和geom_tile时如何摆脱由coord_flip引起的轴闪烁?

delphi - 在计时应用程序中对赛车手进行排序

java - 游戏中表达道路交通状况的数据结构

c# - 尽管有 WS_EX_COMPOSITED 标志和 DoubleBuffered 属性,但在调整大小后闪烁

javascript - 在 Phaser 中设置汽车的最大速度和当前速度

java - 无限循环;不明白怎么办

java - 有一个处理程序作为两个非并行的处理程序 'try'

Java:KMP匹配器算法

delphi - 如何使我的 TCustomControl 后代组件停止闪烁?