GetDrawScreenは重いため、毎フレーム実行するとゲームにならなくなります。
揺らす以外にも、画面全体にエフェクトをかけたくなることは多いものです。
(例えば他には残像効果など)
そこで、DXライブラリから提供されている“DrawGraph”などの関数に、自作の関数を一段噛ませると便利です。
例えば、
int DrawGraphR(int x, int y ,int gh, int flag){
〜データの記録など、行いたい処理を記述〜
int X, Y;
X = x + ...;
Y = y + ...;
DrawGraph(X, Y, gh, flag);
return 1;
}
として、プログラムからはDrawGraphRを呼びます(名前は適当に規則を付けると良いです)。
この場合、他に「SetShakePower」のような揺らす強度を設定する関数を作り、広域変数ShakePowerに代入、
あとはDrawGraphRからShakePowerを参照して、フレームごと座標位置を計算します。
揺らすのなら、フレームカウントの剰余で判定すると便利でしょうか。
DrawGraphを自作関数に置き換えるのは面倒かもしれませんが、置換を利用すると案外あっさり作業が済みます。
また、広域変数を利用したくない場合はクラスを上手に利用するときれいにまとめることができます。