x=2、y=2の場所に
キャラクターが表示されています
ここからは
キャラクターの現在位置に合わせて条件式を組むのですが
x>y*(900/600)に
どういう条件を追加すれば
移動後を表す下図のような範囲のクリック判定ができるでしょうか?
真ん中から・・
移動した位置に合わせていくわけだから・・
450からxをマイナス
300からyをマイナス
した条件にすればいいのかな?
そういうことです!
ただ、実際コード化してみると分かるのですが
条件式にするにはとても複雑です
なのでいっそ、条件式は変えずに
取得したクリック座標を現在位置に合わせて修正してしまいましょう
pt.x += (435 – x * 30);
pt.y += (285 – y * 30);
x450から、キャラクター位置×30をマイナス
y300から、キャラクター位置×30をマイナス
その値で、取得したPOINT x、yに修正を加えています
ただし、キャラクターの中心はマップチップの中心
30を掛けた位置から15ドット引いた位置にあるため
上のような式になります
ソースコード
キャラクターが画面外に出ないように条件を追加
そして、キャラクターを移動させます
実行結果
マウスカーソルに吸い付かれるように
キャラクターが移動します
進行先マップの判定
最後に
進める場所、進めない場所の条件を追加していきましょう
平地(0)しか進めないので
式は単純ですね
ただし、クリック判定と進んだ先の判定は
論理演算式で組み合わせないように注意しましょう
クリック判定がきちんと終了してから
進んだ先の判定をしないと
elseに行く条件が不安定となり、バグります
次はいよいよNPCとの会話です
お楽しみに!