这是我的代码,我要做的是用按键移动该矩形。问题 - 如何在箭头键上指定它以及为什么它不允许我以这种方式工作?它强调
我的paddle对象在KeyPressed事件中显示为红色,不会运行。
import acm.graphics.*;
import acm.program.*;
import java.awt.event.*;
public class BreakOut extends GraphicsProgram {
/** Runs the program */
public void run() {
GRect paddle = new GRect(200, 400, 100, 20);
add(paddle);
addKeyListeners();
}
public void keyPressed(KeyEvent e){
paddle.move(5,0);
}
答案 0 :(得分:0)
paddle是run()
方法中的局部变量。无法通过keyPressed(KeyEvent e)
方法访问它。
您可能想将划水盘变成一个场地。
答案 1 :(得分:0)
我不知道ACM软件包的内容是什么,我不知道GrphaicsProgram类是什么,所以我真的不知道你在做什么。
但是,通常,KeyEvents仅传递给具有焦点的对象。我不知道你的桨对象是否有焦点。
我建议您使用Swing编写程序,然后使用Key Bindings而不是依赖KeyEvents。
答案 2 :(得分:0)
试试这个:
import acm.graphics.*;
import acm.program.*;
import java.awt.event.*;
public class BreakOut extends GraphicsProgram {
GRect paddle;
public void run() {
paddle = new GRect(200, 400, 100, 20);
add(paddle);
addKeyListeners();
}
public void keyPressed(KeyEvent e){
paddle.move(5,0);
}
}
答案 3 :(得分:0)
我现在可以看到两个问题:
你的程序现在有不平衡的花括号,所以你应该在keyPressed方法的末尾添加一个。
您没有更新矩形,因此您需要某种循环。