Пример #1
0
    // Use this for initialization
    void Start()
    {
        hitBy_type   = "none";
        game_scr     = (Game_script)camera_obj.GetComponent <Game_script>();
        snake_len    = start_len;
        faster_speed = snake_speed;
        CancelInvoke();
        // Move the Snake every 300ms
        if (snake_len >= max_len)
        {
            snake_len = max_len;
        }
        Vector2 v = transform.position;

        for (int i = 1; i <= snake_len; i++)
        {
            v.x = v.x + 1;
            //     Transform g = (((GameObject)Instantiate(tailPrefab,
            //                          v,
            //                            Quaternion.identity)).transform);

            // Keep track of it in our tail list
            tail.Insert(0, (((GameObject)Instantiate(tailPrefab,
                                                     v,
                                                     Quaternion.identity)).transform));
        }
        InvokeRepeating("Move", 0.1f, (0.1f / faster_speed));
        num_eat_counter = num_eat;
    }
Пример #2
0
    void Start()
    {
        speed = start_speed;
        // Initial Velocity
        game_scrt = camera_obj.GetComponent <Game_script>();

        GetComponent <Rigidbody2D>().velocity = Vector2.right * speed;
        setBallType("white");
    }
Пример #3
0
 public bool checkFood(Vector2Int snakeHeadPos)
 {
     if (snakeHeadPos == field.foodPos)
     {
         Object.Destroy(field.foodObj);
         spawnFood();
         Game_script.updateScore();
         return(true);
     }
     return(false);
 }
Пример #4
0
    private void movementHandler()
    {
        snake.moveTimer += Time.deltaTime;
        if (snake.moveTimer >= snake.moveTimerMax)
        {
            snake.moveTimer -= snake.moveTimerMax;

            SnakeMovePos lastMovePos = null;
            if (bodyPositions.Count > 0)
            {
                lastMovePos = bodyPositions[0];
            }

            snake.bodyPositions.Insert(0, new SnakeMovePos(lastMovePos, snake.gridPos, snake.gridDirection));

            snake.gridPos += directionVector();

            snake.gridPos = Field.field.checkBoundries(snake.gridPos);

            if (Field.field.checkFood(snake.gridPos))
            {
                SoundManager.playEatSound();
                snake.bodySize++;
                snake.addBody();
            }

            if (snake.bodyPositions.Count >= snake.bodySize + 1)
            {
                snake.bodyPositions.RemoveAt(snake.bodyPositions.Count - 1);
            }

            foreach (SnakeMovePos snakeMovePos in snake.bodyPositions)
            {
                if (snake.gridPos == snakeMovePos.getGridPos())
                {
                    SoundManager.playDeathSound();
                    Game_script.gameOver();
                    snake.gameOverFlag = true;
                }
            }
            transform.position    = new Vector3(gridPos.x, gridPos.y);
            transform.eulerAngles = new Vector3(0, 0, angleFromVector(directionVector()) - 90);

            snake.updateBody();
            snake.lastMoveDir = snake.gridDirection;
        }
    }
Пример #5
0
 // Update is called once per frame
 void Update()
 {
     scoreText.text = Game_script.getScore().ToString();
 }
Пример #6
0
 // Start is called before the first frame update
 void Awake()
 {
     handler   = this;
     increment = 1;
     resetScore();
 }