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);
}
}
所以我初始化了一个名为P1的对象,其名称为" zach"并且hp为100且损坏为20,我无法在其他地方访问这3个变量。这些不是播放器类中的私有变量,我在谈论类中通过执行初始化的那些:
public Player(string name, int health, int damage)
我想我可以在任何我想要的地方打电话给P1.health吗?感谢任何帮助,这是我的第一个基于文本的控制台游戏我正在努力,所以其他输入也很感激。
答案 0 :(得分:1)
如果您想要覆盖p1.Health
等属性/字段,则必须公开更改。
其次,您的作业顺序错误。
第三,您可以访问p1.Health
而不是p1.health
,因为Player
没有名称为health
的属性/字段。它是构造函数的参数名称
public class Player
{
public string Name;
public int Health = 100;
public int Damage;
/* II. way
public string Name {get;set;}
public int Health {get;set;} = 100;
public int Damage {get;set;}
*/
/* III. way
private string _name;
private int _health = 100;
private int _damage;
public string Name {get { return _name ; } }
*/
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;
}
}
public class Program
{
static void Main(string[] args)
{
bool dead;
Player P1 = new Player("Zach", 100, 20);
Console.WriteLine("Name : " + P1.Name + Environment.NewLine +
"Health : " + P1.Health +Environment.NewLine +
"Damage : "+ P1.Damage);
Console.ReadKey();
}
/* static player
public static Player P1;
static void Main(string[] args)
{
bool dead;
P1 = new Player("Zach", 100, 20);
Console.WriteLine("Name : " + P1.Name + Environment.NewLine +
"Health : " + P1.Health + Environment.NewLine +
"Damage : " + P1.Damage);
Console.ReadKey();
}
*/
}
答案 1 :(得分:1)
查看所有内容,以下是我认为您的定义:
"jest": {
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
".*\\.(vue)$": "<rootDir>/node_modules/vue-jest",
"^.+\\.js$": "<rootDir>/node_modules/babel-jest"
},
"snapshotSerializers": [
"<rootDir>/node_modules/jest-serializer-vue"
],
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
}
}
假设伤害是角色所造成的伤害,那么这应该作为战斗模型。你可以分别改变对Player.DoDamage(Enemy e)和Enemy.DoDamage(Player p)的Do and Take Damage。