Profile
HN:gp-hss
職業:高校生
趣味:3DCG
言語:C全般
環境:VC++ 2008 EE
3DCG:Softimage Mod Tool
自己紹介:
ゲームプログラマー目指して勉強している者です。
現在 C++ 修得にむけて頑張っています。
Began study since 2009/8/21
ゲームプログラマー目指して勉強している者です。
現在 C++ 修得にむけて頑張っています。
Began study since 2009/8/21
Entry
(07/31)
(06/13)
(02/22)
(02/21)
(02/20)
Latest TB
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
RPGalg(.h)
どうもです。
今回は経験値やステータスの上昇率などゲーム内で使うアルゴリズムをヘッダーにまとめてやりました。
しかし、まだ途中のものです。
とりあえず解説していきましょう。
unsigned short GetDamage()
何かものすごく仮引数が多いですが我慢してください。
この関数は敵もしくは自分に与えられるダメージを計算する関数です。
計算式は、
(攻撃力×技の威力)÷敵の防御力+経験値の総和÷(敵の防御力+敵の魔法防御力)+0 ~ level までのランダム値
まず絶対自分の攻撃力とその技の威力はダメージに関係しますよね。
関係性を × にするか+にするか迷いましたが × にしました。
ということで、敵の防御力との関係性ももちろん-ではなく ÷ になりますね。
あとは個人的に経験値もダメージに影響するかなということで経験値に関することも加えています。
だって経験のある人と素人じゃぜんぜん違いますよね。
そしてその今までの経験値を敵の総合的な防御力で割っています。
このままだとダメージがほぼ一定になってしまいますので最後にランダム値を加えています。
unsigned short GetExp()
この関数では敵を倒すことによって得られる経験値を取得できます。
計算式は、
(敵の全てのステータス情報の) (総和+相加平均+0 ~ level までのランダム値)×2
なんとこのゲームでは敵のステータスをそのまんま自分の経験値にすることができるのです。
しかもそれをさらに倍にします。
ていうかこのぐらいがちょうどよくなる。と思う。
unsigned short GetLvUpExp()
この関数では1つレベルアップするのに必要な経験値を取得できます。
計算式は、
(自分の全てのステータス情報の) 総和 × level
あとはこの計算によって得られた数値を十の位または百の位まで四捨五入しています。
このアルゴリズムでは決まって一定の間隔の値が返されます。
unsigned short GetHpStatusUpValue()
この関数ではレベルアップすることによってHPステータスの上昇値が取得できます。
計算式は、
((1つレベルアップするのに必要な経験値用の経験値 ÷ level) × 5 ) ÷ 100 + -2 ~ +2
1つレベルアップするのに必要な経験値用の経験値とは、レベルアップするごとに 0 になる経験値を指します。
今までの全ての経験値ではありません。
たいていの場合は 3 ~ 7 におさまります。
努力値なんてもんはなく運で大小がきまります。
非常に理不尽なアルゴリズムです。サボってすいません。
unsigned short GetBasicStatusUpValue()
この関数ではHP以外のステータスの上昇値を取得できます。
上の関数との違いは × 5 の部分が × 2 なだけです。
たいていの場合は 0 ~ 4 におさまります。
今回紹介したのはあくまで作りかけの途中の部分だけです。
こういったアルゴリズムってどうやってつくるのかわからないから勘だけでつくったのですがどうでしょうか。
まだまだ作っていきますのでお楽しみに。
ではまた今度。
PR