public override void Update() { //körs en gång if (!temp) { temp = true; //starta en loop av AIs Action2 vilket är movement int index = TimerClass.GetCharIndex(XPosition, YPosition); TimerClass.AddTimer(index, 500, 500, 10000, Program.mygame.Characters[index].Action2); } }
public override void Action2() { //om det finns positioner att gå till if (posList.Count != 0) { //spara gamla positionen int oldX = XPosition; int oldY = YPosition; //uppdatera position XPosition = posList[0][0]; YPosition = posList[0][1]; //rita ut Draw(0, 0); //ta bort gamla position Delete(oldX, oldY); } //om AI ska bomba else if (shouldBomb && layBomb) { //ropa på "sätt ut bomb action" Action3(); //så att AI inte spammar bomber layBomb = false; //ropa på Action1 efter 3500 millisekunder för att sätta laybomb till true int index = TimerClass.GetCharIndex(XPosition, YPosition); TimerClass.AddTimer(index, 6000, 6000, 1, Program.mygame.Characters[index].Action1); } //hitta bästa rutten posList = FindPath(new int[] { Program.mygame.player.XPosition, Program.mygame.player.YPosition }); }
public override void Update() { // Återställ oldX +old Y int oldX = XPosition; int oldY = YPosition; ConsoleKey input = new ConsoleKey(); //kollar efter spelarens input. OBS måste bytas ut för att inte bli turnbased eftersom readkey väntar på knapptryck. if (Console.KeyAvailable) { input = Console.ReadKey(true).Key; } //movement beroende på knapptryck, xpos är två steg i taget eftersom den är två pixlar bred if (input == ConsoleKey.W) { Move.Up(this); Delete(oldX, oldY); } if (input == ConsoleKey.S) { Move.Down(this); Delete(oldX, oldY); } if (input == ConsoleKey.D) { Move.Right(this); Delete(oldX, oldY); } if (input == ConsoleKey.A) { Move.Left(this); Delete(oldX, oldY); } //om collisionCheck träffar något så står vi stilla och deletar inte något if (!Collision.Wall(XPosition, YPosition)) { XPosition = oldX; YPosition = oldY; } else { Draw(0, 0); } // Lägg bomb if (input == ConsoleKey.Spacebar && canBomb) { List <int> position = new List <int> { XPosition, YPosition }; Move.LayBomb(XPosition, YPosition); canBomb = false; //om sex sekunder kan spelaren bomba igen int index = TimerClass.GetCharIndex(XPosition, YPosition); TimerClass.AddTimer(index, 6000, 6000, 1, Program.mygame.Characters[index].Action2); } }