void Movement()
    {
        GameObject temp;

        nextPosition = head.transform.position;
        switch (direction)
        {
        case 0:
            nextPosition.x -= 1;
            break;

        case 1:
            nextPosition.z += 1;
            break;

        case 2:
            nextPosition.x += 1;
            break;

        case 3:
            nextPosition.z -= 1;
            break;
        }

        temp = Instantiate <GameObject>(snakePrefab, nextPosition, transform.rotation);
        temp.GetComponent <MeshRenderer>().material = snakeHead;

        head.SetNext(temp.GetComponent <SnakeScript>());
        head.GetComponent <MeshRenderer>().material = snakeBody;

        head = temp.GetComponent <SnakeScript>();
    }
示例#2
0
        private IEnumerator RespawnSnakeBot(SnakeScript snake)
        {
            yield return(new WaitForSeconds(_timeToSnakeBotRespawn));

            snake.Respawn();
            _snakeCreatorUI.EnableSnakeCell(snake);
        }
    void TailController()
    {
        SnakeScript temp = tail;

        tail = temp.GetNext();
        temp.Remove();
    }
示例#4
0
 private void Awake()  // Assigns references
 {
     snake         = GetComponent <SnakeScript>();
     list.headPart = this.headPart;
     list.bodyPart = this.bodypart;
     list.snake    = this.snake;
 }
示例#5
0
        public void ConfigureForSnake(SnakeScript snake)
        {
            _playerId        = snake.GetInstanceID();
            _playerName.text = snake.name;
            var keys = snake.KeyCodePair;

            _playerKeys.text = string.Format("{0} + {1}", keys.LeftKey, keys.RightKey);
        }
示例#6
0
    void Awake()
    {
        GameObject snake = GameObject.Find("Snake");

        snakeScript      = snake.GetComponent <SnakeScript>();
        angle            = 0;
        originalPosition = transform.position;
    }
示例#7
0
文件: AI3.cs 项目: TheDaroy/Snake-2
 private void Awake()
 {
     // gCost = Distance fromn starting node
     // hCost = How far away from target node
     // fCost = gCost + hCost
     snake           = GetComponent <SnakeScript>();
     snake.AI_active = true;
 }
示例#8
0
        public void AddSnakeCell(SnakeScript snake)
        {
            var cellView = Instantiate(_snakeCreatorCellviewPrefab);

            cellView.transform.SetParent(_gridTransform);
            cellView.ConfigureForSnake(snake);
            _cellViews.Add(cellView);
            cellView.SetTextColor(Color.green);
        }
示例#9
0
        public void EnableSnakeCell(SnakeScript snake)
        {
            var cellView = _cellViews.FirstOrDefault(s => s.PlayerId == snake.GetInstanceID());

            if (cellView)
            {
                cellView.SetTextColor(Color.green);
            }
        }
示例#10
0
    // Variables end____________________

    // Use this for initialization
    void Start()
    {
        // Simple transform setting
        myTransform = transform;

        // Set the ID number of this snake head using the snake manager
        GameObject  snakeManager = GameObject.Find("SnakeManager");
        SnakeScript sScript      = snakeManager.GetComponent <SnakeScript>();

        sScript.numberOfSnakes += 1;
        snakeNumber             = sScript.numberOfSnakes;
    }
示例#11
0
    void Awake()
    {
        GameObject snake = GameObject.Find("Snake");

        snakeScript = snake.GetComponent <SnakeScript>();

        restartButton = GameObject.Find("RestartButton");
        restartButton.SetActive(false);

        menuButton = GameObject.Find("MenuButton");
        menuButton.SetActive(false);
    }
示例#12
0
    void OnCollisionEnter(Collision collision)
    {
        // Check it is the snake head colliding
        if (snakeNumber == 1 && collision.gameObject.tag == "Food")
        {
            // Tell the snake manager it must make a new snake piece
            GameObject  snakeManager = GameObject.Find("SnakeManager");
            SnakeScript sScript      = snakeManager.GetComponent <SnakeScript>();
            sScript.makeNewSnake = true;
        }

        // Tell the food manager to destroy the current food and make some new food
    }
 public void SpawnPlayer()
 {
     if (!SceneManager.GetActiveScene().name.Equals("Start") || !SceneManager.GetActiveScene().name.Equals("Win"))
     {
         player      = Instantiate(playerHead, GameObject.Find("Start").transform.position, Quaternion.identity);
         player.name = "Player";
         snake       = player.GetComponent <SnakeScript>();
         if (SceneManager.GetActiveScene().name.Equals("Lvl2") || SceneManager.GetActiveScene().name.Equals("Lvl3"))
         {
             StartCoroutine(FoodSwap());
         }
     }
 }
示例#14
0
        private void OnSnakeDeath(SnakeScript deadSnake)
        {
            if (_deadSnakes.Contains(deadSnake))
            {
                return;
            }
            _deadSnakes.Add(deadSnake);

            if (OnSnakeDeathEvt != null)
            {
                OnSnakeDeathEvt(deadSnake);
            }
        }
示例#15
0
    public void move(int newX, int newY, bool moveRest)
    {
        if (!isTail)
        {
            gameObject.transform.position = new Vector3(gamePlayScript.getXLoc(newX), gamePlayScript.getYLoc(newY), -1);

            if (nextSegment != null && moveRest)
            {
                nextSegment.move(myX, myY, true);
            }

            if(isHead)
            {
                gamePlayScript.setGridValue(newX, newY, 1);
            }

            myX = newX;
            myY = newY;
        } else
        {
            if(gamePlayScript.extendCount > 0)
            {
                GameObject temp = (GameObject)Instantiate(gamePlayScript.snakeSegment, new Vector3(gamePlayScript.getXLoc(newX), gamePlayScript.getYLoc(newY), -1), Quaternion.identity);
                SnakeScript tempNew = temp.GetComponent<SnakeScript>();

                prevSegment.nextSegment = tempNew;

                tempNew.myX = newX;
                tempNew.myY = newY;
                tempNew.gamePlayScript = gamePlayScript;
                tempNew.prevSegment = prevSegment;
                tempNew.nextSegment = this;
                tempNew.move(newX, newY, false);

                prevSegment = tempNew;

                gamePlayScript.extendCount -= 1;

            } else
            {
                gameObject.transform.position = new Vector3(gamePlayScript.getXLoc(newX), gamePlayScript.getYLoc(newY), -1);
                gamePlayScript.setGridValue(myX, myY, 0);

                myX = newX;
                myY = newY;
            }
        }
    }
示例#16
0
    void Awake()
    {
        Random.seed = (int)System.DateTime.Now.ToBinary();
        _stateDict  = new Dictionary <string, VoxelState>();
        foreach (VoxelState vs in stateList)
        {
            _stateDict[vs.name] = vs;
        }

        _snake = GetComponent <SnakeScript>();
        _ctrl  = GetComponent <GameController>();

        isRotating       = false;
        _baseCamPosition = Camera.main.transform.localPosition;
        running          = false;
        score            = 0;
    }
示例#17
0
    void Awake()
    {
        GameObject snake = GameObject.Find("Snake");

        snakeScript = snake.GetComponent <SnakeScript>();

        GameObject scoreObject = GameObject.Find("Score");

        scoreDisplay = scoreObject.GetComponent <Text>();

        foodSparkle = GameObject.Find("FoodSparkle");

        GameObject gameController = GameObject.Find("GameController");

        accelerometerScript = gameController.GetComponent <AccelerometerScript>();

        score = 0;
        age   = 0;
        MoveFood();
    }
示例#18
0
    void Awake()
    {
        InitModeArray();
        SetDifficulty(1);
        board = GetComponent <BoardScript>();
        snake = GetComponent <SnakeScript>();
        resetPanel.gameObject.SetActive(false);
        HideCredits();

        /*
         * upButton.OnClick = GoUp;
         * downButton.OnClick = GoDown;
         * leftButton.OnClick = GoLeft;
         * rightButton.OnClick = GoRight;
         */
        rotRight.OnClick = RotateLeft;
        rotLeft.OnClick  = RotateRight;

        difficultySelector.OnPositionChanged += SetDifficulty;
    }
示例#19
0
    // Update is called once per frame
    public override void Update()
    {
        base.Update();
        if (TriggerAmountPrimary > MinimumTrigger && Projectiles.Count < MaxProjectiles &&
            Time.time > WaitTill && ProjectilePrimary == null)
        {
            var snakePrimary = LoadShot();
            SnakeScriptPrimary        = snakePrimary.GetComponent <SnakeScript>();
            SnakeScriptPrimary.Target = VisionTarget.transform;
            SnakeScriptPrimary.Fired  = !ChargeShots;

            if (TriggerAmountOff > MinimumTrigger && Projectiles.Count < MaxProjectiles &&
                Time.time + ProjectileInterval >= WaitTill && ProjectileOffHand == null)
            {
                var snakeOff = LoadShotOffHand();
                SnakeScriptOff        = snakeOff.GetComponent <SnakeScript>();
                SnakeScriptOff.Target = VisionTarget.transform;
                var offHeadRB = SnakeScriptOff.Head.GetComponent <Rigidbody>();
                offHeadRB.constraints = ChargeShots? RigidbodyConstraints.FreezePosition: RigidbodyConstraints.None;
            }
        }
        else if (TriggerAmountOff > MinimumTrigger && Projectiles.Count < MaxProjectiles &&
                 Time.time > WaitTill && ProjectileOffHand == null)
        {
            var snakeOff = LoadShotOffHand();
            SnakeScriptOff        = snakeOff.GetComponent <SnakeScript>();
            SnakeScriptOff.Target = VisionTarget.transform;
            var offHeadRB = SnakeScriptOff.Head.GetComponent <Rigidbody>();
            offHeadRB.constraints = ChargeShots? RigidbodyConstraints.FreezePosition: RigidbodyConstraints.None;
        }

        if (TriggerAmountPrimary <= MinimumTrigger && ProjectilePrimary != null)
        {
            ReleasePrimary();
        }
        if (TriggerAmountOff <= MinimumTrigger && ProjectileOffHand != null)
        {
            ReleaseOffHand();
        }
    }
示例#20
0
    void Start()
    {
        GameObject mainMenuController = GameObject.Find("MainMenuController");
        MainMenuControllerScript mainMenuControllerScript =
            mainMenuController.GetComponent <MainMenuControllerScript>();
        string mode = mainMenuControllerScript.mode;

        GameObject modeObject  = GameObject.Find("Mode");
        Text       modeDisplay = modeObject.GetComponent <Text>();

        modeDisplay.text += mode;

        if (mode.Equals("Fast"))
        {
            GameObject  snake       = GameObject.Find("Snake");
            SnakeScript snakeScript = snake.GetComponent <SnakeScript>();

            // Make snake move twice as fast
            snakeScript.stepTime /= 2;

            IncreaseBlurSpeed();
        }
    }
示例#21
0
    void makeSnake()
    {
        int headStartX = Mathf.CeilToInt(gridX / 2);
        int headStartY = Mathf.CeilToInt(gridY / 2);

        GameObject tempHead = (GameObject)Instantiate(snakeSegment, new Vector3(getXLoc(headStartX), getYLoc(headStartY), -1), Quaternion.identity);
        snakeHead = tempHead.GetComponent<SnakeScript>();
        snakeHead.isHead = true;
        snakeHead.myX = headStartX;
        snakeHead.myY = headStartY;

        GameObject tempBody = (GameObject)Instantiate(snakeSegment, new Vector3(getXLoc(headStartX - 1), getYLoc(headStartY), -1), Quaternion.identity);
        SnakeScript tempBodyScript = tempBody.GetComponent<SnakeScript>();

        snakeHead.nextSegment = tempBodyScript;
        tempBodyScript.prevSegment = snakeHead;
        tempBodyScript.myX = headStartX - 1;
        tempBodyScript.myY = headStartY;

        GameObject tempTail = (GameObject)Instantiate(snakeSegment, new Vector3(getXLoc(headStartX - 2), getYLoc(headStartY), -1), Quaternion.identity);
        SnakeScript tempTailScript = tempTail.GetComponent<SnakeScript>();

        tempBodyScript.nextSegment = tempTailScript;
        tempTailScript.prevSegment = tempBodyScript;
        tempTailScript.isTail = true;
        tempTailScript.myX = headStartX - 2;
        tempTailScript.myY = headStartY;

        snakeHead.gamePlayScript = this;
        tempBodyScript.gamePlayScript = this;
        tempTailScript.gamePlayScript = this;

        setGridValue(headStartX, headStartY, 1);
        setGridValue(headStartX - 1, headStartY, 1);
        setGridValue(headStartX - 2, headStartY, 1);
    }
示例#22
0
 // Use this for initialization
 void Start()
 {
     snake_script = GameObject.Find("Snake").GetComponent <SnakeScript> ();
     highScore    = PlayerPrefs.GetInt("HighScore");
     scoreUI.text = "Score: " + score.ToString();
 }
示例#23
0
 // Use this for initialization
 void Start()
 {
     ps = GameObject.Find("Snake").GetComponent <SnakeScript>();
 }
示例#24
0
 // Use this for initialization
 void Start()
 {
     timerRunning             = false;
     ss                       = GameObject.Find("Snake").GetComponent <SnakeScript> ();
     DestroyGameObject_script = GameObject.Find("Bodypart").GetComponent <DestroyGameObject> ();
 }
示例#25
0
 private const float LoadDecrease = 0.03f;//TODO get from config
 public void Resolve(SnakeScript snake)
 {
     snake.DecreateLoad(LoadDecrease);
 }
示例#26
0
 private void OnSnakeDeath(SnakeScript snake)
 {
     _snakeCreatorUI.DisableSnakeCell(snake);
     _snakeCreatorUI.EnableRespawnFeedback();
 }
示例#27
0
 private void OnSnakeRespawn(SnakeScript snake)
 {
     _snakeCreatorUI.EnableSnakeCell(snake);
     TryDisableRespawnFeeback();
 }
示例#28
0
 private void OnSnakeCreated(SnakeScript snake)
 {
     _snakeCreatorUI.AddSnakeCell(snake);
 }
示例#29
0
 public void SetNext(SnakeScript newSnake)
 {
     next = newSnake;
 }
示例#30
0
 private void OnBotSnakeDeath(SnakeScript snake)
 {
     StartCoroutine(RespawnSnakeBot(snake));
     _snakeCreatorUI.DisableSnakeCell(snake);
 }
示例#31
0
 private bool CheckCollisionWithOtherSnake(Collider other, out SnakeScript snake)
 {
     snake = other.transform.parent.GetComponent <SnakeScript>();
     return(snake != null);
 }
示例#32
0
        public static void ResolveBlock(Block block, SnakeScript snake)
        {
            var benefit = _mapper[block.BlockTypes];

            benefit.Resolve(snake);
        }