プログラム研究 備忘録

java,C#,Unity等の備忘録です。経済理論も少し。

アイテム生成②

・プレイヤーでのアイテム管理

 攻撃強化アイテムは取得してから5秒間効果が続きますが、

 回復アイテムは取った時に効果を発揮します。

 

public void GetItem(DropItem.ItemKind itemKind)
{
switch (itemKind)
{
case DropItem.ItemKind.Attack:
 powerBoostTime = 5.0f;
 break;
case DropItem.ItemKind.Heal:
 // MaxHPの半分回復
 HP = Mathf.Min(HP + MaxHP / 2, MaxHP);
 break;
}

 

攻撃強化アイテムを取った時にpowerBoostTimeに効果時間を入力。

効果時間中はpowerBoostをtrueにしておく。

 

void Update()
{
 powerBoost = false;
 if (powerBoostTime > 0.0f)
{
 powerBoost = true;
 powerBoostTime = Mathf.Max(powerBoostTime - Time.deltaTime, 0.0f);
}
}

 

・Mathf.MinとMathf.Max

  Min(a,b)はaとbの小さい方を返します。Maxは逆です。

 

 HP = Mathf.Min(HP + MaxHP / 2.0f,MaxHP);

 

現在のHPに最大HPの半分を足した値がMaxHPを超えていれば、MaxHPを返す。

 

// 攻撃情報を取得する.
AttackInfo GetAttackInfo()
{
AttackInfo attackInfo = new AttackInfo();
// 攻撃力の計算.
attackInfo.attackPower = status.Power;
// 攻撃強化中
if (status.powerBoost)
attackInfo.attackPower += attackInfo.attackPower;

attackInfo.attacker = transform.root;

return attackInfo;
}