マウスの位置に向けて弾を発射するときに
ある程度弾がずれるような風にするには
どのようにすればよいのでしょうか?
色々試してみたもののうまくいかなかったので質問させていただきました。
弾の精度について
Re:弾の精度について
> マウスの位置に向けて弾を発射するときに
> ある程度弾がずれるような風にするには
これは、画面上の特定の座標でマウスをクリックしたり、またはマウスカーソルがある座標に対して
弾を発射したとき、着弾位置がずれる(正確な位置に着弾せずに誤差が出る)・・・こんな意味でしょうか?
x、y各座標用の変数にランダムな値又は、補正値のような値(レベルによって正確さが変わる等)を加算・減算すればどうですか?
意味が違っていたらすみません・・・
> ある程度弾がずれるような風にするには
これは、画面上の特定の座標でマウスをクリックしたり、またはマウスカーソルがある座標に対して
弾を発射したとき、着弾位置がずれる(正確な位置に着弾せずに誤差が出る)・・・こんな意味でしょうか?
x、y各座標用の変数にランダムな値又は、補正値のような値(レベルによって正確さが変わる等)を加算・減算すればどうですか?
意味が違っていたらすみません・・・
Re:弾の精度について
判りづらい書き方ですいません。
大体そのような感じです。
それで
>x、y各座標用の変数にランダムな値又は、補正値のような値(レベルによって正確さが変わる等)を加算・減算すればどうですか?
というのはプレイヤーとマウスのx、yの距離に加算・減算すると言うことでしょうか?
その場合距離が長いほど誤差が少なくなり、近いほど誤差が大きくなるので、一定にしたいのですが・・・
判りにくい書き方ですみません
大体そのような感じです。
それで
>x、y各座標用の変数にランダムな値又は、補正値のような値(レベルによって正確さが変わる等)を加算・減算すればどうですか?
というのはプレイヤーとマウスのx、yの距離に加算・減算すると言うことでしょうか?
その場合距離が長いほど誤差が少なくなり、近いほど誤差が大きくなるので、一定にしたいのですが・・・
判りにくい書き方ですみません
Re:弾の精度について
発射点からマウスへの角度を求めて0.1から-0.1ぐらいの乱数を足して弾の角度にしてはどうですか?
これだと距離によって差が大きくなったりはしませんが、見た目には差が大きくなると思うので
ピタゴラスの定理でマウスへの距離を求めて、距離が遠くなるほど乱数の最大値が小さくなるようにすれば
距離に関係なく少しずれるようになると思います。
弾が確実に少しずれるようにしたいのなら、どのくらいずらすかをピタゴラスの定理で求めて
符号だけ乱数で決めればいいと思いますよ。
あ、でもそれじゃKouさんの方法と同じかな?
これだと距離によって差が大きくなったりはしませんが、見た目には差が大きくなると思うので
ピタゴラスの定理でマウスへの距離を求めて、距離が遠くなるほど乱数の最大値が小さくなるようにすれば
距離に関係なく少しずれるようになると思います。
弾が確実に少しずれるようにしたいのなら、どのくらいずらすかをピタゴラスの定理で求めて
符号だけ乱数で決めればいいと思いますよ。
あ、でもそれじゃKouさんの方法と同じかな?
Re:弾の精度について
角度を乱数で変えて誤差を出す方法でやってみるのが一番良さそうなので、
これでやってみることにします。
ただ、角度については勉強不足だったんで、調べる必要がありそうです。
色々とありがとうございました。
これでやってみることにします。
ただ、角度については勉強不足だったんで、調べる必要がありそうです。
色々とありがとうございました。
Re:弾の精度について
チルチルさんの方法の方が具体的でわかり易いと思いますよ。
x、yの座標を計算するときに、一般的な方法として
x = cos(角度)*速度
y = sin(角度)*速度
のような感じで計算すると思いますが、私の考えていた方法も、
x = cos(角度)*速度+補正値
y = sin(角度)*速度+補正値
こんな感じで考えていたので・・・
これだと距離に対しての誤差ではなく、単純に着弾位置の座標に対して、x、yの各座標用変数に加減算した分の
誤差が出るだけだと思います・・・説明下手でごめんなさい。
書き込み中に解決されていました・・・
x、yの座標を計算するときに、一般的な方法として
x = cos(角度)*速度
y = sin(角度)*速度
のような感じで計算すると思いますが、私の考えていた方法も、
x = cos(角度)*速度+補正値
y = sin(角度)*速度+補正値
こんな感じで考えていたので・・・
これだと距離に対しての誤差ではなく、単純に着弾位置の座標に対して、x、yの各座標用変数に加減算した分の
誤差が出るだけだと思います・・・説明下手でごめんなさい。
書き込み中に解決されていました・・・