teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/12/17 13:59

投稿

YAmaGNZ
YAmaGNZ

スコア10623

answer CHANGED
@@ -2,4 +2,32 @@
2
2
  これであれば、recoveryが100以上一度に増加しない限りは対応できるのではないかと思います。
3
3
 
4
4
  recoveryが96 -> 97 -> 99 -> 101 -> 104と変化した場合、
5
- recovery/100は0 -> 0 -> 0 -> 1 -> 1と変化するので、0から1に変化した時にhealthを加算するということです。
5
+ recovery/100は0 -> 0 -> 0 -> 1 -> 1と変化するので、0から1に変化した時にhealthを加算するということです。
6
+
7
+ こういう手もありかも
8
+ ```C#
9
+ //プレイヤーの体力 0で死亡
10
+ int health;
11
+
12
+ //点数のようなもの。例えば敵を倒せば1増え、ボスを倒せば5増えるなど。
13
+ int recovery;
14
+
15
+ //ポイント3の敵を倒したときに実行
16
+ void Killed3pointEnemy()
17
+ {
18
+ Recovery(3);
19
+ }
20
+
21
+ //recoveryの値を変更するときに呼び出す
22
+ void Recovery(int increase)
23
+ {
24
+ health += 50 * (((recovery + increase) / 100) - (recovery / 100));
25
+ recovery += Increase;
26
+
27
+ if(health <= 0)
28
+ {
29
+ Destory(this.gameObject);
30
+ }
31
+ }
32
+ ```
33
+ これなら、100以上増加しても対応できるかと思います。