DirectXTKを使ってシューティングゲームのようなものを作ろうとしているのですが、
カーソルの方に弾を飛ばすやり方がわかりません。
どういう処理を書けばいいでしょうか?
左斜め上に飛んで行ってしまいます。
わかる方は教えていただけないでしょうか?
下は書いた分のコードです。
目を通していただけると助かります。
//Player.cpp======================== //マウス座標の変数を取得 POINT pt; GetCursorPos(&pt); //ここでマウスの座標を渡しています。 mpBullet->Create(pt.x,pt.y); //Bullet.cpp========================= //自分の座標を引いています float xd = targetposx - 0.0f; float zd = targetposz - 4.0f; //角度を求めています。 float r = atan2f(zd, xd); //スピードをかけています vZ*=mSpeed; vX*=mSpeed; //メンバに代入します.へんてこな名前ですみません mNumZ = vZ; mNumX = vX; Matrix trans = Matrix::CreateTranslation(Vector3(0.0f, 0.0f, 4.0f)); //座標 Matrix rotY = Matrix::CreateRotationY(XMConvertToDegrees(angle * 0.1f)); mWorld = rotY * trans; //初期位置に移動 //メンバに保存 mRotY = rotY; mTrans = trans; //Bullet.cpp の Update============= mTrans *= Matrix::CreateTranslation(mNumX, 0.0f, mNumZ); mWorld = mRotY * mTrans;
そして最後にだいたいの画面の画像です。
赤い点が原点です。
黒い点が自機で、黒い矢印の方向に飛んで行ってしまいます。
y座標は使いません。
xとzは矢印の方向が+の方向です。
出したい方角は自機から見て原点の方向の向きです。
長くなってしまって申し訳ありません。
以上です。何かご不明な点がございましたら教えて下さい。
あなたの回答
tips
プレビュー