よろしくお願いします。
今していることは、5対5で味方と敵がターン制バトル(ドラクエと同じ)を
したいと思ってます。
そこで、HPバーとMPバーを最大で10人分用意する必要があると思います。
1、攻撃コマンド選択。
2、攻撃対象を選ぶ。
3、HPバーを減らす。
のプログラムはなんとか組めたのですが、
HPバーを減らすたびに、下記のような関数を呼ぶ必要があるのでしょうか。
というか画像を少しでもいじるたびに全て消して、また描く必要があるのでしょうか。
このように関数を用意して画像を描写すると、メモリ使用量が爆発的に増大し、
攻撃コマンドを5回選択するとメモリ使用量が50M→1Gくらいになってしまいます。
何かおかしいと思うのですが、どうかアドバイスください。
つまり質問内容を要約すると、
「下記のようにプログラムを組むと、メモリを使いすぎる!!おかしいですか?」
ということです。。
プロジェクト全体(って言うのかな)をzipで上げます。
28.2MBで解凍すると80Mくらいになります。
ちなみにプログラムは途中で、プレイヤーの行動を決定するだけです。
パスは「C」
http://www1.axfc.net/uploader/Si/so/76874.zip
---------------------------------------------
void byouga_kihon(){
int image_attack = LoadGraph("attack.png");
int image_magic = LoadGraph("magic.png");
int image_defence = LoadGraph("defence.png");
int image_enemy = LoadGraph("enemy.png");
int image_forest = LoadGraph("Forest.png");
int image_py = LoadGraph("py.png");
int image_py2 = LoadGraph("py2.png");
SetDrawScreen( DX_SCREEN_BACK );
SetDrawBright(64,64,64);
DrawGraph( 0, 0,image_forest,FALSE);
SetDrawBright(256,256,256);
DrawGraph(360,75,image_attack,FALSE);
DrawGraph(360,108,image_magic,FALSE);
DrawGraph(360,141,image_defence,FALSE);
DrawGraph(480,75,image_enemy,TRUE);
DrawGraph(80,75,image_py,TRUE);
DrawGraph(80,180,image_py2,TRUE);
int i = 0;
double A = (py_hpX * 100) / py_maxhp;
DrawBox( py_hp_x , py_hp_y , py_hp_x+100 , py_hp_y+10 , GetColor(255,0,0) ,TRUE );
//HPメーターのダメージバーを描画(赤ゲージ)
DrawBox( py_hp_x , py_hp_y , py_hp_x+A, py_hp_y+10 , GetColor(0,255,255) , TRUE );
//HPメーターのダメージバーを描画(緑ゲージ)
i = 1;
A = (py_hpX[i] * 100) / py_maxhp[i];
DrawBox( py_hp_x[i] , py_hp_y[i] , py_hp_x[i]+100 , py_hp_y[i]+10 , GetColor(255,0,0) ,TRUE );
//HPメーターのダメージバーを描画(赤ゲージ)
DrawBox( py_hp_x[i] , py_hp_y[i] , py_hp_x[i]+A, py_hp_y[i]+10 , GetColor(0,255,255) , TRUE );
//HPメーターのダメージバーを描画(緑ゲージ)
i = 5;
A = (py_hpX[i] * 100) / py_maxhp[i];
DrawBox( py_hp_x[i] , py_hp_y[i] , py_hp_x[i]+100 , py_hp_y[i]+10 , GetColor(255,0,0) ,TRUE );
//HPメーターのダメージバーを描画(赤ゲージ)
DrawBox( py_hp_x[i] , py_hp_y[i] , py_hp_x[i]+A, py_hp_y[i]+10 , GetColor(0,255,255) , TRUE );
//HPメーターのダメージバーを描画(緑ゲージ)
}
