PlayerとObjectと呼ばれるObjectを作成しました.Zombieというオブジェクトを作成しました。Playerの射撃機能を追加したいと思います。私がマウスを持っているところで、どうやってこれを達成することができますか?C++ SDLポイントaからbまでのベクトルを作成する方法
-2
A
答えて
0
おかげさまで、私はatan2を使って解決しましたが、角度を計算しました。私が角度を持っていたとき、私はちょうどx変数にスピード* cos(角度)の値を加え、y変数にスピード* sin(角度)を加えました。
0
最初に他の方向を削除して、方向が左から右に向いていることを想像してみましょう。 あなたはまず、これはplaceXにマウスを置いたのx位置とにマウスを置いたのY位置placeYをプッシュ
SDL_GetMouseState(int* placeX, int* placeY)
を使用することにより可能であるマウスの位置を取得する必要があります。
これで、プレイヤーの位置を取得する必要がありました。これは、ループ中にプレーヤーのテクスチャの矩形を取得することで実行できます。 だから文字が
(x、y)は(0,10)である場合
と(40、20)(H、W)
あなたはその文字の右半分にある弾丸を持っています。それで
になります(20、20)
、実際の電流弾丸源(x、y)は
である - >(20、30)(基本的にrect.x + bulletsource.x and rect.y + bulletsource.y)。
今あなたがしなければならないすべては
if(bullet.x < placeX)//this makes it look like the bullet is moving to the right
{
bullet.x++ //this moves the bullet closer to the right
Redraw bullet //you have to redraw to see the changes
}
のようなものがyに対して同じことを行う場合、それは本当に、if文である必要はありません。
複数の弾丸指示がある場合も同じロジックが適用されます。
弾丸のソースをx軸とy軸の中心として考えるだけで、特定の象限(対角線)または軸の線(直線の弾丸)の近くにマウスがあるかどうかを確認する必要があります。
マウスがある象限または線を知ったら、使用するテクスチャを変更します(北東向きの斜めの弾丸または北向きの単純な弾丸)。
関連する問題
- 1. {a-b、b-c、c-a}から{(a、b)、(b、c)、(c、a)}に変更しますか?
- 2. ナビゲーションシステムのように、ポイントAからポイントBへの描画方法
- 3. ユーザーがポイントaからポイントbまでドラッグしたときに楕円の間の線を作成
- 4. GNU CのAからBへの擬似乱数の生成方法(A、Bはint)標準ライブラリ
- 5. オブジェクトをベクトルAからベクトルBに移動できますが、BからAに移動することはできませんか?
- 6. ["a"、 "b"、 "c"]の "a、b、c" .split( "、")のメリットは何ですか?
- 7. ポイントAからポイントBへ移動するためにアニメーションを追加する
- 8. expand(a + b + c)^ nから
- 9. 活性A→B→C→A。 onActivityResultのBのデータを取得する方法
- 10. Fabric.js関数がポイントAからBへオブジェクトを移動する
- 11. リストを作成するPython C = A + BこれはCへの変更がAとBに影響する
- 12. SQL ServerのA $$$ B $$$$$$ C $$$$$$$$ D文字列からA $ B $ C $ DまたはA%B%C%Dを取得するにはどうすればよいですか?
- 13. C++静的ライブラリ - .libから.aファイルを作成する方法?
- 14. '(a b c)と(a' b 'cをリストする)の違いは何ですか?
- 15. C++ウィンドウ作成/ SDL
- 16. Prolog - バックトラックで交互にシンボルを生成する:[a]; [a、b]; [a、b、a]; [a、b、a、b]
- 17. Docker `CMD a b c` VS` CMD ["a"、 "b"、 "c"] `
- 18. ObjC:A/BからA/Bの間のURLにコンポーネントを挿入する方法は?
- 19. 5,2,20,6,6からB、A、D、C、C
- 20. c = | a-b |限られた操作でassamblyを使用する
- 21. に(、(B、C))からタプルを退治(a、b、c)は、fsharp
- 22. X = A - inv(B)* Y * inv(B)とX = Y + A '* inv(B)* Aを計算する方法はありますか?
- 23. ベクトルAからベクトルB(空ではない)を逆順に移動
- 24. ベクトルのエントリから重複するベクトルを作成する方法は?
- 25. AndroidスタジオでポイントAからポイントBにボトルトンを移動するにはどうすればよいですか?
- 26. SSHコマンド(AからBへのC)
- 27. クラスAとBの2つのクラスがあるとします.BのAオブジェクトとAのBオブジェクトを作成できますか?
- 28. C++では、A + = BがA = A + Bよりも好都合です。++ AはA ++になりますか?
- 29. [(a、b)、(c、d)]と[[a、b]、[c、d]]の違いは何ですか?
- 30. x = function(a、b、c){}と関数x(a、b、c){}の違いは何ですか?
カーソルとプレーヤーとのピクセル距離を計算します。弾丸の経路の適切な勾配を決定し、任意の速度を選ぶ。箇条書きを特定の 'x'を下に移動し、特定の' y'を下に移動します(y/xは勾配と一致する必要があります)。私はあなたが線形経路だけを気にしていると仮定しています。 – Charles