示例#1
0
    public void SetUp(MazeController mazeController, SnakeConfig config, int numSegments)
    {
        base.SetUp(mazeController);

        this.Visible = false;
        this.Dead    = false;

        this.trail            = new SnakeTrail();
        this.sinusoidalMotion = new SinusoidalMotion(this.trail);

        if (config.Player)
        {
            this.Side = Side.Player;
        }

        this.config        = config;
        this.initialLength = numSegments;
        for (int i = 0; i < numSegments; ++i)
        {
            AddSegment();
        }

        if (config.Player)
        {
            this.Controller = new PlayerSnakeController(this, mazeController);
        }
        else
        {
            this.Controller = new AISnakeController(this, mazeController);
        }
    }
示例#2
0
    private void CreateSnakes()
    {
        // Delete any existing snakes first.
        // Cache the length of the player's snake?
        int playerSnakeLength = SerpentConsts.GetStartingSnakeLength(Side.Player, this.levelNum);

        if (this.playerSnake != null && this.playerSnake.Dead == false)
        {
            playerSnakeLength = this.playerSnake.Length;
        }
        DestroySnakes();

        this.playerSnakeConf = this.playerSnakeConfig.GetComponent <SnakeConfig>();
        CreatePlayerSnake(playerSnakeLength);

        this.enemySnakeConf = this.theme.EnemySnakeConfig;

        List <Snake> enemySnakes        = GetEnemySnakes();
        int          currNumEnemySnakes = enemySnakes.Count;

        int snakeLength = SerpentConsts.GetStartingSnakeLength(Side.Enemy, this.levelNum);

        for (int i = 0; i < (this.maxNumEnemySnakes - currNumEnemySnakes); ++i)
        {
            CreateEnemySnake(snakeLength);
        }
    }
示例#3
0
    private Snake CreateSnake(SnakeConfig config, int length)
    {
        Snake snake = SerpentUtils.Instantiate <Snake>(this.snakePrefab, this.mazeController.transform);

        snake.SetUp(this.mazeController, config, length);
        snake.SnakeSegmentsChanged += this.NumSnakeSegmentsChanged;
        snake.SnakeSegmentEaten    += this.SnakeSegmentEaten;
        return(snake);
    }