用途別リファレンス

オブジェクトを動かす

特定の座標に向けて弾を撃つ

下のプログラムにおいて,

※Bulletオブジェクトの $mouseX,$mouseYなどをプレイヤーの座標にすれば,プレイヤーに向けて撃つ弾も作れます.

Shooter

x=100;y=100;
while(true) {
  if(getkey("space")==1){
    new Bullet{x:x, y:y, p:25};
  }
  update();
}

Bullet

// マウスの座標と自分の座標を比較
dx=$mouseX-x;
dy=$mouseY-y;
d=dist(dx,dy);//マウスの座標までの距離
vx=dx/d*5; // 移動速度(x座標)
vy=dy/d*5; // 移動速度(y座標)
while(!screenOut()){
  x+=vx;//移動速度の分だけxを変化させる
  y+=vy;//移動速度の分だけyを変化させる
  update();
}
die();

角度を指定して発射

Bulletオブジェクトは次のように書くこともできます.特定の座標から角度をずらして発射
したい場合はこちらのほうが便利です.

Bullet

// マウスの座標と自分の座標を比較
dx=$mouseX-x;
dy=$mouseY-y;
dir=atanxy(dx,dy);//マウス座標との角度を計算
vx=cos(dir)*5;//角度に応じてvx,vyを設定
vy=sin(dir)*5;
while(!screenOut()){
  x+=vx;//移動速度の分だけxを変化させる
  y+=vy;//移動速度の分だけyを変化させる
  update();
}
die();

参考

弾を撃つ
.