この構造だが、
ちょっと理解が足りてない
どういう構造になって「何がどこに」いるんだろう?
あとで先生に聞いてみるしかないかな
mainメソッドのなかはおまじない。これはいいとして、
・startメソッドは誰が呼び出している?
・canvasに小人画像が乗っている。マウスムーブで描画 これもいい
・グループ ルートは何故必要なのか なにをしているのか
scene
-root
-canvas( mousemMoved/fillRect(gray) )
という階層でいいのか?
・小人と四角の衝突判定はcanvasレベルでってこと?
タイムラインというアニメ関係メソッドがあったろう
flashの知識しかないんだから、
flashの技術に似たものに翻訳するかかみ砕いて理解を落とし込むのがいい
タイムラインがflashのようなものだと仮定して、
・タイムライン上の同レベルのレイヤーに四角2つをおく
・タイムラインがすすむたびにmousemoved,かつ現座標とカーソル位置の中間値をだし四角を移動(mouseディレイ追尾),四角周囲の描画を削除、衝突判定
・これは勘だが画像と四角描画をかさねてうごかし四角
アルファをつける、判定は四角で行い視認は画像で行うのでは
もうひとつ
自力で組むのはほぼ無理だ
でもりかできるレベルのサイトも本もない
どうすれば
手に余るときは時間内にできるとこまで切り落とすのだ
いいことを考えた
・画面上部にでかい敵、小人がy座標で当たったら小人が赤く?なってgameoverと表示
・クリック時に、小人のx,yからy軸方向に弾が飛ぶ
切り落とし案1はここまで。
もしこれが動いたら、
・弾のy座標が上部を占める敵の範囲に当たったら弾を消す
・敵に赤いアルファ四角を被せる
・score++
切り落とし案2 がこうかな?
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);
}
}