#ゲームプログラムで処理が重くなるから書かないほうがいいものが知りたいです。
C、C++でゲーム開発の勉強中です。言い回しが違ったり、わかりにくいところがあったら申し訳ありません。
先日横スクロールゲームのマップを実装したく、プレイヤーが右に動いたら表示している障害物を左に動かす(背景は固定)。という処理をするプログラムを書きました。実行してみると描画がカクつき処理が重く感じました。
DirectXを使用しています。
コードは以下の通りです。
c
1// 以下player.cppの処理 2// 例として右方向の移動処理のみ置いておきます 3// プレイヤーのx座標は固定で、障害物の移動により動いてるように見せようと考えました。 4// FIELD_SPEED_Xは適当な値で定数定義しています。 5void Update(){ 6 if (GetKeyPress(VK_D)) { // キーボードDを押したら 7 AddFieldPos(-FIELD_SPEED_X); 8 } 9}
c
1// 以下field.cppの処理 2// 障害物は3つで構造体になっている。 3// fieldPosに表示するx座標とy座標を入れる 4// 初期化処理はプログラム実行時一度のみ。あとはプレイヤーが移動したときに移動させる。 5 6struct Field{ 7 XMFLOAT2 fieldPos; 8}; 9 10Field g_field[3]; 11 12// 障害物の座標を動かす関数。 13void AddFieldPos(float add) { 14 for (int i = 0; i < 3; i++) { 15 g_field[i].fieldPos.x += add; 16 } 17}
移動の度に、AddFieldPosの中でループで回しているから重かったのかなと思いましたがどうでしょうか?ループが原因ですか?
#最初に書きました通り、ゲームプログラムすべてに共通して処理が重くなるから書かないほうがいいものを教えていただきたいです。
(計算が多いとダメとかこの関数は重いとか...)また、そもそもC、C++での重い処理も分からないので、こちらも教えていただきたいです。
回答よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー