gpt4 book ai didi

Java Applet - 在屏幕上移动球

转载 作者:行者123 更新时间:2023-12-02 08:01:12 24 4
gpt4 key购买 nike

好的,我如何使用 Applet 从键盘移动球?

到目前为止,我的代码没有做任何事情。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class KeyboardGame extends Applet implements KeyListener
{

private static final long serialVersionUID = 1L;
private static boolean keyboadrRightPressed = false;

public void init()
{
addKeyListener(this);
}

public void keyPressed(KeyEvent e)
{
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_RIGHT)
{
keyboadrRightPressed = true;
}
else
{
keyboadrRightPressed = false;
}
}

public void keyReleased(KeyEvent e) {

}

public void keyTyped(KeyEvent e) {
}

public void paint(Graphics g)
{
g.fillOval(20,20,20,20);
g.drawString("String :"+keyboadrRightPressed,20,30);
}

}

而且我还必须了解它是如何工作的。我不明白为什么我的 Action 监听器不起作用,我需要一个

while(true)

还是一个线程?

最佳答案

您的 Action 监听器实际上可能工作正常,但您需要在按下按键时重新绘制小程序,以便您的字符串实际出现。尝试将 keyPressed 更改为:

public void keyPressed(KeyEvent e) 
{
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_RIGHT)
{
keyboadrRightPressed = true;
}
else
{
keyboadrRightPressed = false;
}
repaint();
}

实际移动球会有所不同,具体取决于您希望球实际移动的方式。我猜你希望它在按住键时继续向右移动,所以我要做的是实现一个计时器或其他形式的线程,每隔 0.25 秒(或无论你想要多久)检查一次 KeyboardRightPressed 并会如果正确,则将球向右移动。然后,在代码的 keyReleased 部分中,您还应该添加逻辑,以便在松开按键时将 KeyboardRightPressed 设置回 false。

关于Java Applet - 在屏幕上移动球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com