今日から必死で1から全て学んでゲーム作成します
■ このスレッドは過去ログ倉庫に格納されています
0300名前は開発中のものです。
03/02/22 03:24ID:CQoZjhp0簡単講座その1。速度ベクトル。*は重要ポイント。
2Dシューティングの場合、描画座標として自期、敵機、弾などにxとyのデータがある筈です。
その座標をフレーム毎に、移動処理→描画って繰り返すと動いて見えるのです。
自機の場合は、入力処理→移動処理→描画処理となるだけです。
ここで、入力処理の無い敵機や弾の場合、
計算によって求めた変化量をxとyに加算する事で実装しようと言うのです。
概念は簡単です。*距離を時間で割ると速度が出るのは分りますね。中学数学です。
この速度と言う物を、フレーム事に変化するxとyの値の数値とするのです。
じゃ、いきなりホーミング弾のやり方。ある程度の事前処理はある前提で行くけど。
まず、適当で良いから弾を発射した敵機の座標が要りますね。
この発射された時、弾をアクティブ(有効)にして弾初期座標を、敵機の座標とする。
続いて同じフレーム内で、自機の座標が必要です。
自機の座標から、弾の座標を引き算すます。自機x - 弾x、自機y - 弾yです。
具体的には、自機が(320, 450)、弾が(160, 20)だったら(320-160, 450-20) = (160, 430)
*この160と430は座標じゃないぞ、ベクトルなんだ。
でだ、ココでそのベクトルを単位化してやるのだ。
*単位化とは、ベクトルの大きさが1ベクトルの事。(ベクトルの大きさ程度は、自分で調べてくれ)
*やり方は簡単、ベクトルの大きさで各x、yを割り算するだけ。
*大きさの出し方は、sqrt(x*x + y*y);だ!各二乗の足し算を√にかけるだけだ。
之で、自機の方向へ向かう、大きさ1の変化量(x, y)が求まった訳だ。
之に、自分で設定した弾速度を掛け算してやるなり何なりで、変化量を増減させるのだ!
因みにベクトルと数値(スカラー)の掛け算は、各x、yを数値倍するだけだ。
つまり、アクティブ化した弾は、フレーム毎に、
自機と弾のベクトルを計算、単位化、速度定数倍する、それを前座標に加算、
と言う処理をして自機の方向へと移動するのだ!
しかし、この処理だけでは罠が…(連続書き込みできたら直レスします)
■ このスレッドは過去ログ倉庫に格納されています