Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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 });
        }
Esempio n. 3
0
        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);
            }
        }