public class Player
{
private string Name;
private int Health = 100;
private int Damage;
public Player(string name, int health, int damage)
{
name = Name;
health = Health;
damage = Damage;
}
}
public class Enemy
{
public void enemyTakeDamage()
{
int takenDamage;
}
private string Name;
private int Health = 100;
private int Damage;
public string enemyMessages;
public Enemy(string name, int health, int damage)
{
name = Name;
health = Health;
damage = Damage;
}
}
class Program
{
static void Main(string[] args)
{
bool dead;
Player P1 = new Player("Zach", 100, 20);
}
}
そこで、「zach」という名前でhpが100、ダメージが20のP1というオブジェクトを初期化しましたが、他の場所ではこれら3つの変数にアクセスできません。これらは、プレーヤークラスのプライベート変数を使用しません。Imは、次のことを行うことで初期化されるクラスのプライベート変数について話します。
public Player(string name, int health, int damage)
P1.healthが公開されていれば、どこにでも電話できると思いました。どんな助けでもありがたいです、そしてこれは私が取り組んでいる私の最初のテキストベースのコンソールゲームなので、他の入力もありがたいです。
すべてを見て、ここにあなたが求めていると思う定義があります:
public class Player
{
public string Name { get; set; }
public int Health { get; set; } = 100;
public int Damage { get; set; }
public bool IsAlive { get; set; }
public Player(string name, int health, int damage)
{
Name = name;
Health = health;
Damage = damage;
IsAlive = true;
}
public void TakeDamageFromEnemy(Enemy enemy)
{
if(IsAlive)
{
Health -= enemy.Damage;
if (Health < 0)
{
IsAlive = false;
MessageBox.Show("Player is dead!");
}
}
}
public void DoDamageToEnemy(Enemy enemy)
{
if(enemy.IsAlive)
{
enemy.Health -= Damage;
if (Health < 0)
{
IsAlive = false;
}
}
}
}
public class Enemy
{
private string Name { get; set; }
private int Health { get; set; }= 100;
private int Damage { get; set;}
public string enemyMessages { get; set; }
public bool IsAlive { get; set; }
public Enemy(string name, int health, int damage)
{
Name = name;
Health = health;
Damage = damage;
IsAlive = true;
}
//This is likely replaced by the Player's DoDamageToEnemy method.
public void enemyTakeDamage()
{
int takenDamage;
}
}
public class Program
{
static void Main(string[] args)
{
Player playerOne = new Player("Zach", 100, 20);
Enemy enemyOne = new Enemy("Trogg",15,5);
Enemy enemyTwo = new Enemy("Dragon",1000,50);
playerOne.TakeDamageFromEnemy(enemyTwo);
playerOne.TakeDamageFromEnemy(enemyOne);
playerOne.DoDamageToEnemy(enemyOne);
playerOne.TakeDamageFromEnemy(enemyTwo);
Console.ReadLine();
}
}
ダメージがキャラクターが出すダメージの量であると仮定すると、これは戦闘モデルとして機能するはずです。Player.DoDamage(Enemy e)とEnemy.DoDamage(Player p)にそれぞれDoとTakeDamageを変更できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加