В настоящее время я разрабатываю PacMan как школьный проект. У меня есть базовый класс, называемый призраками, который находит кратчайший путь от призрака до места назначения. У меня также есть классы, такие как красный призрак, которые наследуют его, они дадут базовому классу цель и текущее местоположение призрака. Когда я использую красный призрак, он работает ... переменные изменяются в базовом классе и затем могут использоваться, но для любого из других призраков это не будет работать, и я не могу понять, почему. Любая помощь приветствуется :)
pinkghost = new PinkGhost();
redghost = new RedGhost();
pinkghost.SetVariables();
pinkghost.ChaseMode();
redghost.SetVariables();
redghost.ChaseMode();
public abstract class Ghosts
{
public int ScatterX;
public int ScatterY;
public int TargetX;
public int TargetY;
public int GhostPosX;
public int GhostPosY;
public int StartNodeX;
public int StartNodeY;
public float speed = 1.0f;
abstract public void SetVariables();
abstract public void ChaseMode();
public Ghosts()
{
//Allows ghost to access pacman coords
PacMan = GameObject.Find("pacman");
}
public class RedGhost : Ghosts
{
public override void SetVariables()
{
GhostMov = gameobject.Find("blinky");
ScatterX = 24;
ScatterY = 3;
GhostPosX = 13 + Convert.ToInt32(GhostMov.transform.position.x);
GhostPosY = 15 - Convert.ToInt32(GhostMov.transform.position.y);
}
}
// This one works…
class PinkGhost : Ghosts
{
public override void SetVariables()
{
GhostMov = gameobject.Find("pinky");
ScatterX = 4;
ScatterY = 3;
GhostPosX = 13 + Convert.ToInt32(GhostMov.transform.position.x);
GhostPosY = 15 - Convert.ToInt32(GhostMov.transform.position.y);
}
}
Итак, как я уже сказал, переменные красного Призрака и чейзомод работают ... но розовый призрак не работает по какой-то причине?