Esempio n. 1
0
 public void ResetGame()
 {
     Player1  = new SnakePlayer(this);
     FoodMngr = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     FoodMngr.AddRandomFood(10);
     score = 0;
 }
Esempio n. 2
0
 public void ResetGame()
 {
     Player1 = new SnakePlayer(this);
     FoodMngr = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     FoodMngr.AddRandomFood(10);
     score = 0;
 }
        public bool CheckForCollision(int a_loop, SnakePlayer a_SnakePlayer)
        {
            for (int loop = 0; loop < m_SnakeList[a_loop].SnakeNodes.Count; loop++)
            {
                if (a_SnakePlayer.SnakeNodes.Count > 0)
                {
                    if (a_SnakePlayer.SnakeNodes[0].CollisionCircle.Intersects(m_SnakeList[a_loop].SnakeNodes[loop].CollisionCircle))
                    {
                        if (m_SnakeList[a_loop].SnakeNodes[loop].SegmentType == SegmentType.Body)
                        {
                            CollidedWith  = m_SnakeList[a_loop];
                            CollisionType = Collision.HitSegment;
                        }
                        if (m_SnakeList[a_loop].SnakeNodes[loop].SegmentType == SegmentType.Head)
                        {
                            CollidedWith  = m_SnakeList[a_loop];
                            CollisionType = Collision.HitHead;
                        }
                        if (m_SnakeList[a_loop].SnakeNodes[loop].SegmentType == SegmentType.Tail)
                        {
                            CollidedWith  = m_SnakeList[a_loop];
                            CollisionType = Collision.HitTail;
                        }

                        return(true);
                    }
                }
            }

            CollisionType = Collision.None;

            return(false);
        }
Esempio n. 4
0
        private bool CheckForWallCollision(SnakePlayer snakeX)
        {
            if (snakeX.IsIntersectingRect(new Rectangle(-100, 0, 100, GameCanvas.Height)))
            {
                return(true);
            }
            //snakeX.OnHitWall(Direction.left);

            if (snakeX.IsIntersectingRect(new Rectangle(0, -100, GameCanvas.Width, 100)))
            {
                return(true);
            }
            //snakeX.OnHitWall(Direction.up);

            if (snakeX.IsIntersectingRect(new Rectangle(GameCanvas.Width, 0, 100, GameCanvas.Height)))
            {
                return(true);
            }
            //snakeX.OnHitWall(Direction.right);

            if (snakeX.IsIntersectingRect(new Rectangle(0, GameCanvas.Height, GameCanvas.Width, 100)))
            {
                return(true);
            }
            //snakeX.OnHitWall(Direction.down);
            return(false);
        }
Esempio n. 5
0
 public void ResetGame()
 {
     FoodMngr = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     FoodMngr.AddRandomFood();
     Player1 = new SnakePlayer(GameCanvas.Size, FoodMngr);
     score   = 0;
     Input.Clear();
 }
Esempio n. 6
0
 public Snake()
 {
     InitializeComponent();
     Application.AddMessageFilter(this);
     Player1  = new SnakePlayer(this);
     FoodMngr = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     FoodMngr.AddRandomFood(10);
     ScoreTxtBox.Text = score.ToString();
 }
Esempio n. 7
0
 public Snake()
 {
     InitializeComponent();
     Application.AddMessageFilter(this);
     player      = new SnakePlayer(this);
     foodManager = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     foodManager.AddRandomFood(10);
     ScoreTxtBox.Text   = score.ToString();
     DifficultyChanged += SetTimer;
 }
Esempio n. 8
0
 public SnakeForm()
 {
     InitializeComponent();
     Application.AddMessageFilter(this);
     this.FormClosed += (s, e) => Application.RemoveMessageFilter(this);
     Player1          = new SnakePlayer(this);
     FoodMngr         = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     FoodMngr.AddRandomFood(10);
     scoreText.Text = score.ToString();
 }
Esempio n. 9
0
        public void ResetGame()
        {
            homeForm.Show();
            homeForm.GameOver();

            player      = new SnakePlayer(this);
            foodManager = new FoodManager(GameCanvas.Width, GameCanvas.Height);
            foodManager.AddRandomFood(10);
            score = 0;
        }
Esempio n. 10
0
 public SnakeForm()
 {
     InitializeComponent();
     Application.AddMessageFilter(this);
     this.FormClosed += (s, e) => Application.RemoveMessageFilter(this);
     Player1 = new SnakePlayer(this);
     FoodMngr = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     FoodMngr.AddRandomFood(10);
     ScoreTxtBox.Text = score.ToString();
 }
Esempio n. 11
0
 //shouldn't get out of range but easy fix by adding a range max limit
 private void setSkin(ComboBox sender, SnakePlayer sp)
 {
     if (sp != null)
     {
         int    col = sender.SelectedIndex;
         string n   = sender.Items[(col >= 0?col:0)].ToString();
         Brush  b   = new SolidBrush(Color.FromName(n));
         sp.SetColor(b);
         GameCanvas.Invalidate();
     }
 }
Esempio n. 12
0
        private void SnakeSetup()
        {
            Player1          = new SnakePlayer(this, 80, 20, Direction.right);
            ScoreTxtBox.Text = Player1.GetScore().ToString();
            setSkin(skin1comboBox, Player1);

            if (is2Player)
            {
                Player2           = new SnakePlayer(this, 20, 80, Direction.down);
                Score2TxtBox.Text = Player2.GetScore().ToString();
                setSkin(skin2comboBox, Player2);
            }
        }
        private string formatBoard(int playerDir, int enemyDir, Position2D playerPos, Position2D enemyPos, BoardState state)
        {
            SnakePlayer player = decodeSnakePlayer(playerPos, playerDir);
            SnakePlayer enemy  = decodeSnakePlayer(enemyPos, enemyDir);

            SnakePlayer[]     players       = new SnakePlayer[] { player, enemy };
            List <Position2D> blockedCoords = getCurrentBlockedCoords(playerPos, enemyPos);

            JSONObject jBoard = SnakeProtocolEncoder.compressBoard(blockedCoords, players);

            SnakeProtocolEncoder.addStateField(ref jBoard, state);

            return(jBoard.Print());
        }
Esempio n. 14
0
        private bool CheckForFoodCollision(SnakePlayer snakeX)
        {
            bool             hitFood    = false;
            List <Rectangle> SnakeRects = snakeX.GetRects();

            foreach (Rectangle rect in SnakeRects)
            {
                if (FoodMngr.IsIntersectingRect(rect, true))
                {
                    FoodMngr.AddRandomFood();
                    snakeX.AddBodySegments(1);
                    snakeX.UpdateScore(1);
                    hitFood = true;
                }
            }
            return(hitFood);
        }
Esempio n. 15
0
 public SnakeForm()
 {
     InitializeComponent();
     Application.AddMessageFilter(this);
     this.FormClosed += (s, e) => Application.RemoveMessageFilter(this);
     Player1          = new SnakePlayer(this);
     FoodMngr         = new FoodManager(GameCanvas.Width, GameCanvas.Height);
     FoodMngr.AddRandomFood(10);
     ScoreTxtBox.Text = score.ToString();
     try
     {
         ArduinoInput = new ArduinoInput("COM5");
         ArduinoInput.SerialPort.DataReceived += ProcessArduinoInput;
     }
     catch (Exception)
     {
     }
 }
Esempio n. 16
0
        public void ResetGame()
        {
            String name, display;

            if (score != 0)
            {
                GameTimer.Enabled = false;
                display           = "Score : " + score.ToString();
                name = Interaction.InputBox(display, "High Scores", "Name", -1, -1);
                String line = name + "          " + score.ToString() + Environment.NewLine;
                System.IO.File.AppendAllText(@"C:\Project\Snake\Score.txt", line);
                GameTimer.Enabled = true;
            }
            Player1  = new SnakePlayer(this);
            FoodMngr = new FoodManager(GameCanvas.Width, GameCanvas.Height);
            FoodMngr.AddRandomFood(10);
            score = 0;
        }
Esempio n. 17
0
        public override void OnRegister()
        {
            main               = Camera.main;
            view               = GetComponent <SnakePlayer>();
            playerControl      = GetComponent <PlayerControl>();
            towardsX           = 0;
            towardsY           = playerControl.step;
            view.showName.text = view.playerName;
            view.isFirstTile   = true;

            // 创建瓦片
            tileHorizontal = ScriptableObject.CreateInstance <Tile>();
            tileVertical   = ScriptableObject.CreateInstance <Tile>();
            tileLU         = ScriptableObject.CreateInstance <Tile>();
            tileRU         = ScriptableObject.CreateInstance <Tile>();
            tileLD         = ScriptableObject.CreateInstance <Tile>();
            tileRD         = ScriptableObject.CreateInstance <Tile>();
            tileTr         = ScriptableObject.CreateInstance <Tile>();

            StartCoroutine(Init());
        }
Esempio n. 18
0
        [HideInInspector] public int level; // 难度

        protected void Start()
        {
            base.Start();
            snakePlayer = GetComponent <SnakePlayer>();

            drawMap = snakePlayer.tilemap;
            StartCoroutine(SpeedUp());
            switch (level)
            {
            case 1:
                StartCoroutine(AiRunLevel_1());
                break;

            case 2:
                StartCoroutine(AiRunLevel_2());
                break;

            case 3:
                wallMap = drawMap.transform.parent.Find("wall").GetComponent <Tilemap>();
                StartCoroutine(AiRunLevel_3());
                break;
            }
        }
Esempio n. 19
0
        public SnakeField(Control main)
            : base(main)
        {
            Panel pan = new Panel();
            pan.Location = new Point(0, 0);
            pan.Size = main.Size;
            this.AddControl(pan);

            snake = new SnakePlayer(this.Me, snakePanelSize);

            moveTimer.Interval = 50;
            foodSpawnTimer.Interval = 500;

            moveTimer.Start();
            foodSpawnTimer.Start();

            moveTimer.Tick += MoveTimer_Tick;
            foodSpawnTimer.Tick += FoodSpawnTimer_Tick;

            /*Panel panel = new Panel();
            panel.BackColor = Color.Red;
            panel.Size = new Size(10, 10);
            panel.Location = new Point(20, 20);
            this.Controls.Add(panel);
            panels.Add(panel);
            panel = new Panel();
            panel.BackColor = Color.Red;
            panel.Size = new Size(10, 10);
            panel.Location = new Point(20, 20);
            this.Controls.Add(panel);
            panels.Add(panel);
            timer1.Interval = 50;
            timer1.Start();
            timer2.Interval = 50;
            timer2.Start();*/
        }
 public CollisionMachine(SnakePlayer a_SnakePlayer)
 {
     m_SnakePlayer = a_SnakePlayer;
     UpdateCollision();
 }
Esempio n. 21
0
        public PlayerScore(SnakePlayer a_SnakePlayer)
        {
            m_SnakePlayer = a_SnakePlayer;

            ScoreManager.PlayerScores.Add(this);
        }
 public CollisionMachine(SnakePlayer a_SnakePlayer)
 {
     m_SnakePlayer = a_SnakePlayer;
     UpdateCollision();
 }
        public bool CheckForCollision(int a_loop, SnakePlayer a_SnakePlayer)
        {
            for (int loop = 0; loop < m_SnakeList[a_loop].SnakeNodes.Count; loop++)
            {
                if(a_SnakePlayer.SnakeNodes.Count > 0)
                {
                    if (a_SnakePlayer.SnakeNodes[0].CollisionCircle.Intersects(m_SnakeList[a_loop].SnakeNodes[loop].CollisionCircle))
                    {
                        if (m_SnakeList[a_loop].SnakeNodes[loop].SegmentType == SegmentType.Body)
                        {
                            CollidedWith = m_SnakeList[a_loop];
                            CollisionType = Collision.HitSegment;
                        }
                        if (m_SnakeList[a_loop].SnakeNodes[loop].SegmentType == SegmentType.Head)
                        {
                            CollidedWith = m_SnakeList[a_loop];
                            CollisionType = Collision.HitHead;
                        }
                        if (m_SnakeList[a_loop].SnakeNodes[loop].SegmentType == SegmentType.Tail)
                        {
                            CollidedWith = m_SnakeList[a_loop];
                            CollisionType = Collision.HitTail;
                        }

                        return true;
                    }
                }
            }

            CollisionType = Collision.None;

            return false;
        }
Esempio n. 24
0
        private void CreatePlayer()
        {
            players = new SnakePlayer[2];
            p1.InstantiateAsync().Completed += handle =>
            {
                if (!handle.IsDone)
                {
                    return;
                }
                SnakePlayer player = handle.Result.GetComponent <SnakePlayer>();
                // 初始数据
                player.transform.position = GetStartPoint();
                player.tilemap            = drawMap;
                player.gameMode           = gameMode;
                player.gameObject.SetActive(true);
                players[0] = player;
            };

            switch (gameMode)
            {
            case GameMode.PvB:
                ai.InstantiateAsync().Completed += handle =>
                {
                    if (!handle.IsDone)
                    {
                        return;
                    }
                    SnakePlayer player = handle.Result.GetComponent <SnakePlayer>();
                    // 设置难度
                    PlayerAi playerAi = handle.Result.GetComponent <PlayerAi>();
                    playerAi.level = aiLevel;

                    // 初始数据
                    player.transform.position = new Vector3(0.5f, 0.5f, 0);
                    player.tilemap            = drawMap;
                    player.gameMode           = gameMode;
                    player.gameObject.SetActive(true);
                    players[1] = player;
                };
                break;

            case GameMode.PvP:
                p2.InstantiateAsync().Completed += handle =>
                {
                    if (!handle.IsDone)
                    {
                        return;
                    }
                    SnakePlayer player = handle.Result.GetComponent <SnakePlayer>();
                    // 初始数据
                    player.transform.position = GetStartPoint();
                    player.tilemap            = drawMap;
                    player.gameMode           = gameMode;
                    player.gameObject.SetActive(true);
                    players[1] = player;
                };
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(gameMode), gameMode, null);
            }
        }
Esempio n. 25
0
        public PlayerScore(SnakePlayer a_SnakePlayer)
        {
            m_SnakePlayer = a_SnakePlayer;

            ScoreManager.PlayerScores.Add(this);
        }