private StateDead() { if (_instance != null) { return; } _instance = this; }
static void Main(string[] args) { ConsoleKeyInfo input; bool gameRunning = true; CharacterFactory factory = new CharacterFactory(); AbstractCharacter king = factory.CreateCharacter(CharactersList.KingChar); Console.WriteLine("ArrowRight move, ArrowLeft stop, q quit"); king.pull(); Console.Write(king.speed); StateMoving moving = new StateMoving(); StateStopped stopped = new StateStopped(); StateDead dead = new StateDead(); while (gameRunning) { input = Console.ReadKey(); if (king.isDead == false) { switch (input.Key) { case ConsoleKey.RightArrow: king.setState(moving); break; case ConsoleKey.LeftArrow: king.setState(stopped); break; case ConsoleKey.DownArrow: king.setState(dead); gameRunning = false; Console.Write("You are Dead!"); break; case ConsoleKey.Q: king.setState(stopped); gameRunning = false; Console.Write("You quited!"); break; } Console.Write(king.speed); } } Console.WriteLine("End game"); }
public void KillCharacter() { if (bDead) { Debug.Log("Trying to kill a character thast's already dead"); return; } //interrupt any channel that we may be using curStateReadiness.InterruptChannel(); //Create a new death state to let our character transition to StateDead newState = new StateDead(this); //Transition to the new state SetStateReadiness(newState); }