[[Tonyu基礎練習]] - [[練習:数学と物理とゲーム]] - ''点と点の距離''

distメソッドの説明を見ると、次のような説明があると思います。

書式

dist(x,y) 
    
x
線分(0,0)-(x,y)のx
y
線分(0,0)-(x,y)のy

戻り値

戻り値:線分(0,0)-(x,y)の長さ

これは、図であらわすと次のようになります。黄色い線の長さがdist(x,y)です。

dist.png

これを応用して、「2つの点の距離」を測ることができます。次の図を考えましょう。

dist2.png

ここでの黄色い線の長さはいくらでしょう。

例題:敵のプログラムにおいて、自機と敵の距離が16以下の場合、自機を殺すようにしなさい。

teki.tonyu

  if (dist(x-$Jiki.x,y-$Jiki.y)<=16) $Jiki.die();

dist関数に関しては命令レファレンスも参照して下さい。

table bgcolor=#ffddee><tr><td> 練習問題

blockquote> 次のようなオブジェクトを作ってみましょう

sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591124Rseov9df81r3m2nF59e8v784jw5kfdr

sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591122Rseov9df81r3m2nF59e8v784jw5kfdr
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591123Rseov9df81r3m2nF59e8v784jw5kfdr

sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591125Rseov9df81r3m2nF59e8v784jw5kfdr

/blockquote>

/td></tr></table>

table bgcolor=#ffddee><tr><td> 練習問題

blockquote> まず、次のような2種類のオブジェクトを作ってみましょう

これに次のような改造を行いましょう。

  • $fusenが$Jikiにぶつかったときに、$fusenが死ぬ
  • ただし、当たり判定の大きさは、$fusenの大きさ(scaleX)に比例するようにしてください。

sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591128Rseov9df81r3m2nF59e8v784jw5kfdr

sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591126Rseov9df81r3m2nF59e8v784jw5kfdr
sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591127Rseov9df81r3m2nF59e8v784jw5kfdr

sNieQW1EJqEFhAT7SDFs2l9kvcXofsK1151591129Rseov9df81r3m2nF59e8v784jw5kfdr

/blockquote>

/td></tr></table>