package application;
import javafx. application.Application;
import javafx.scene.Group;
import javafx. scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx. stage.Stage;
public class EXE3202 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage myStage) {
Canvas canvas = new Canvas(300,300);
GraphicsContext gc = canvas.getGraphicsContext2D();
myDraw(gc);
Image myImg1 = new Image("kobito1.gif");
canvas.setOnMouseMoved(e ->{
//gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());;
gc.clearRect(e.getX()-5, e.getY()-5, e.getX()+30,e.getY()+30);;
gc.drawImage(myImg1, e.getX(), e.getY());
});
Group root = new Group();
root.getChildren().add(canvas);
Scene scene = new Scene(root, 300, 300, Color.WHITE);
myStage.setTitle("Exe3202");
myStage.setScene(scene);
myStage.show();
}
private void myDraw(GraphicsContext gc) {
//四角
gc.setFill(Color.GREY);
gc.fillRect(10,10,50,150);
}
}
・こびとは移動
・(あたり先の)しかくを描画
・こびと移動時に全部をクリアレクトするのでなく、こびとの周囲のピクセルのみけす
・ただし速くマウスを動かすと軌跡がのこってしまう
よって、
『マウスの座標と、
こびとの座標の
中間点を出して
そこにこびとを移動させる
常に半分の距離に移動させるようにする
』
が解決法にならないだろうか?
変数はどこで宣言すれば?