プログラム
趣味でゲームをDirectXとC++で作っているんですけど、ダメージ計算のプログラムで分からないことがあります。乱数0.85~1の範囲として計算するにはfloat型でやればいいと思うんですけど、結果を整数を使うようにしたいんです。計算式の他の変数はint型を使用しているので、うまいこといけません。ソースコードを載せておきますので、どなたか回答お願いします。
int damege1(int LV, int atk, int power, int def)
{
int type_relation=1; //タイプ関係
flaot ransu; //乱数
int critical; //急所
int damage_point; //ダメージ値
ransu = (GetRandom1(15)+85)/100;
if(GetRandom1(10)<8)
critical = 1;
else
critical = 2;
//「『レベル×0.4+2』×攻撃×技の威力÷防御÷50+2」×タイプ関係×乱数×急所
damage_point = (( (LV*0.4+2) *atk*power/(def*50)+2) *(type_relation*ransu*critical));
return damage_point;
}
int GetRandom(int max) //乱数生成
{
int random = GetRand(max);
return random;
}
お礼
丁寧に答えていただいているのに申し訳ないのですが、回復ができないのはどうしてもつらいものがあります・・・。現在セラフィックゲートの6週目ですが、通常の敵で数千ダメージは普通に受けます。なので、どうしても回復できる状態のほうが良いです。そうすると20万前後のダメージくらいしか与えられないことになりますが、wind-moonさんのおっしゃる以外の方法は無いようなので、これで妥協したいと思います。 回答有難うございました。