Java 使用箭头键移动矩形
基本上,我正在尝试制作一个程序,当按下左箭头键时,将“盘片”向左移动一个像素,当按下右箭头键时,将“盘片”向右移动一个像素。目前,当我编译和运行时,我的输出窗口上没有任何东西,我也不太确定我在这里做错了什么,也不确定代码在哪里没有做我想要的事情。非常感谢您的帮助,谢谢Java 使用箭头键移动矩形,java,Java,基本上,我正在尝试制作一个程序,当按下左箭头键时,将“盘片”向左移动一个像素,当按下右箭头键时,将“盘片”向右移动一个像素。目前,当我编译和运行时,我的输出窗口上没有任何东西,我也不太确定我在这里做错了什么,也不确定代码在哪里没有做我想要的事情。非常感谢您的帮助,谢谢 import java.awt.*; import java.net.*; import java.util.*; import java.applet.Applet; public class game extends Ap
import java.awt.*;
import java.net.*;
import java.util.*;
import java.applet.Applet;
public class game extends Applet
{
Thread loopThread;
boolean left = false;
boolean right = false;
int platPos = 50;
public void run()
{
Graphics g = null;
int i, j;
long startTime;
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
startTime = System.currentTimeMillis();
while (Thread.currentThread() == loopThread)
{
updatePlatter(g);
}
}
public void updatePlatter(Graphics g)
{
if(left)
{
g.setColor(new Color(255,255,255));
g.fillRect(50+platPos, 200, 100, 20);
platPos--;
g.setColor(new Color(100,100,100));
g.fillRect(50+platPos,200, 100,20);
}
if(right)
{
g.setColor(new Color(255,255,255));
g.fillRect(50+platPos,200,100,20);
platPos++;
g.setColor(new Color(100,100,100));
g.fillRect(50+platPos,200,100,20);
}
}
public boolean keyDown(Event e, int key)
{
if (key == Event.LEFT)
left = true;
if (key == Event.RIGHT)
right = true;
return true;
}
}
我删除了我的答案,因为不重写所有内容就不可能修复现有代码,这里是一个很好的学习起点: 基本上,它做你想要的,但使用按钮
也正如本所说的,你应该考虑使用比Applet其他的东西,它已经死了。<>代码> LooStult<代码>永远不会设置,将来你可能会有问题,因为你从来没有重置<代码>左和<代码>右< /代码>回到false。你似乎是比较新的,所以这是一个很好的机会来切换到一些通常不被认为是死的东西。当我添加这个时,代码的可能副本似乎没有编译,说线程(游戏)的构造函数不合适