マウスが近づくと 2D ボールが動き回るコードを書き込もうとしていますが、うまくいきません。(私は長い間プログラミングをしていません..)現在のコードは次のとおりです。
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import acm.graphics.*;
import acm.program.*;
@SuppressWarnings("serial")
public class MoveAway extends GraphicsProgram implements MouseMotionListener {
static int width;
static int height;
int x = 100;
int y = 100;
GOval runaway;
public void main(){
System.out.println("Movement Detected");
System.out.println("Stop Moving!");
width = getSize().width;
height = getSize().height;
addMouseMotionListener(this);
}
public void run() {
System.out.println(width);
System.out.println(height);
GOval runaway = new GOval(50, 50);
runaway.setColor(Color.blue);
runaway.setFilled(true);
add(runaway);
runaway.setLocation(x, y);
}
public void mouseMoved(MouseEvent e) {
System.out.println("test");
if(x - e.getX() > -50 && y - e.getY() > -50) {
runaway.setLocation(x - 1, y - 1);
y = y - 1;
x = x - 1;
System.out.println("Close!");
}
if(x - e.getX() < 50 && y - e.getY() < 50){
runaway.setLocation(x + 1, y + 1);
y = y +1;
x = x - 1;
System.out.println("Close!");
}
}
}
これらのいくつか (またはほとんど) は、非常に明白な超初心者向けのものかもしれませんが、その方法はわかりません。