⚔ Playerに「ダメージを受ける」能力を追加しよう
キャラクターは表示するだけではありません。
ゲームでは、
- 攻撃を受ける
- HPが減る
という動きがありますよね。
これをメソッドで表現してみましょう。
目次
🛠 TakeDamageメソッドを追加する
class Player
{
public string Name;
public int Hp;
public int Attack;
public void ShowStatus()
{
Console.WriteLine($"名前: {Name}");
Console.WriteLine($"HP: {Hp}");
Console.WriteLine($"攻撃力: {Attack}");
}
public void TakeDamage(int damage)
{
Hp = Hp - damage;
Console.WriteLine($"{Name} は {damage} のダメージを受けた!");
}
}
🔍 ここで何が起きている?
① 引数を受け取っている
public void TakeDamage(int damage)
この damage が、
「受けたダメージ量」です。
② 自分のHPを減らしている
Hp = Hp - damage;
これは
自分のHPを自分で減らしている
ということです。
ここがオブジェクト指向らしい部分です。
🧠 実際に動かしてみる
Player player = new Player
{
Name = "勇者",
Hp = 100,
Attack = 20
};
player.ShowStatus();
Console.WriteLine();
player.TakeDamage(30);
Console.WriteLine();
player.ShowStatus();
▶ 実行結果
名前: 勇者
HP: 100
攻撃力: 20
勇者 は 30 のダメージを受けた!
名前: 勇者
HP: 70
攻撃力: 20
🎯 重要なポイント
ダメージを受けた後、
HPが 70 に変わっています。
これは、
インスタンスの中のデータが
実際に変化している
ということです。
つまり:
インスタンスは「生きているデータ」
です。
🔥 オブジェクト指向が一段進んだ
最初は:
- データの箱
でした。
今は:
- データを持ち
- 自分で変化できる存在
になりました。
📌 まとめ
- メソッドは「できること」
- 引数は「渡す情報」
- TakeDamageはHPを書き換える
- インスタンスは状態を持ち、変化する
ここまで来ると、
オブジェクト指向の本質が少し見えてきます。
訪問数 1 回, 今日の訪問数 1回






ディスカッション
コメント一覧
まだ、コメントがありません