示例#1
0
    void Start()
    {
        restartsCount += 1;
        mapManager     = GameObject.FindObjectOfType <MapManager>();
        spawnManager   = GameObject.FindObjectOfType <SpawnManager>();

        scoreManager = GameObject.FindObjectOfType <ScoreManager>();
        scoreManager.OnScoreMilestoneReach += ScoreManager_OnScoreMilestoneReach;

        snakeManager = GameObject.FindObjectOfType <SnakeManager>();
        SnakeNode head = snakeManager.GetSnakeHead();

        head.OnObstacleCollision    += Head_OnObstacleCollision;
        head.OnOutOfBoundsCollision += Head_OnOutOfBoundsCollision;

        transitionBlack.gameObject.SetActive(false);
        transitionWhite.gameObject.SetActive(false);
        startNextLevelBtn.gameObject.SetActive(false);

        buttons = new List <Button>();
        buttons.Add(upBtn);
        buttons.Add(rightBtn);
        buttons.Add(downBtn);
        buttons.Add(leftBtn);

        if (restartsCount >= 2)
        {
            splashScreenBG.gameObject.SetActive(false);
            splashScreenBtn.gameObject.SetActive(false);
            snakeManager.gameState = GameState.Countdown;
        }
    }
示例#2
0
 public char SnekLetter(Vector2Int snakeMapPosition) //Has the snake consumed the food?
 {
     if (snakeMapPosition == DMapPosition)           //Collect D
     {
         Object.Destroy(d);                          //Break letter
         //FoodSpawner(); //make new food.
         SnakeManager.addScore();
         Debug.Log("Snake Ate letter D.");
         return('D');
     }
     else if (snakeMapPosition == GMapPosition) //Collect G
     {
         Object.Destroy(g);                     //Break letter
         SnakeManager.addScore();
         Debug.Log("Snake Ate letter G.");
         return('G');
     }
     else if (snakeMapPosition == SMapPosition) //Collect G
     {
         Object.Destroy(s);                     //Break letter
         SnakeManager.addScore();
         Debug.Log("Snake Ate letter S.");
         return('S');
     }
     else
     {
         return('N');
     }
 }
示例#3
0
    void Start()
    {
        levelManager = GameObject.FindObjectOfType <LevelManager>();
        snakeManager = GameObject.FindObjectOfType <SnakeManager>();
        snakeManager.OnChargingComplete += SnakeManager_OnChargingComplete;
        snakeManager.OnOverloadEnd      += SnakeManager_OnOverloadEnd;
        snakeManager.OnLeftBtnPressed   += SnakeManager_OnLeftBtnPressed;
        snakeManager.OnDownBtnPressed   += SnakeManager_OnDownBtnPressed;
        snakeManager.OnRightBtnPressed  += SnakeManager_OnRightBtnPressed;
        snakeManager.OnUpBtnPressed     += SnakeManager_OnUpBtnPressed;

        scoreManager       = GameObject.FindObjectOfType <ScoreManager>();
        scoreManager.OnGo += ScoreManager_OnGo;

        overloadBtn.interactable = false;
        chargedText.gameObject.SetActive(false);
        transitionBlack.gameObject.SetActive(false);

        SetControlModeTogglesInitialState();
        SetVibrationModeToggleInitialState();

        volumeSliders[0].onValueChanged.AddListener(SetMasterVolume);
        volumeSliders[1].onValueChanged.AddListener(SetMusicVolume);
        volumeSliders[2].onValueChanged.AddListener(SetSfxVolume);

        volumeSliders[0].value = AudioManager.instance.masterVolumePercent;
        volumeSliders[1].value = AudioManager.instance.musicVolumePercent;
        volumeSliders[2].value = AudioManager.instance.sfxVolumePercent;
    }
示例#4
0
 private void InitializeSnakeManager()
 {
     _snakeManagerScript = _snakeManager.GetComponent <SnakeManager>();
     _snakeManagerScript.Initialize(_gameData.gameBoardWidth, _gameData.gameBoardHeight, _gameData.snakeSpeed);
     _snakeManagerScript.SpawnSnake(utils.getMiddlePositionFromGameBoard(_gameData.gameBoardWidth, _gameData.gameBoardHeight), _gameData.snakeStartSize);
     _snakeManagerScript.StartSnakeMoving();
 }
示例#5
0
    //private bool IsWinning;

    void Start()
    {
        spawnManager          = GameObject.FindObjectOfType <SpawnManager>();
        mapManager            = GameObject.FindObjectOfType <MapManager>();
        snakeManager          = GameObject.FindObjectOfType <SnakeManager>();
        this.previousPosition = position;
        rb = GetComponent <Rigidbody>();
    }
示例#6
0
 void Start()
 {
     scoreTextStatic = scoreText;
     score           = 0;
     snake           = Instantiate(snakePrefab);
     snakeScript     = snake.GetComponent <SnakeManager>();
     board           = Instantiate(boardPrefab);
     boardScript     = board.GetComponent <GameBoardScript>();
 }
示例#7
0
文件: Key.cs 项目: hsc10705581/Pepper
 public int m_Status = 0;    //判断蛇头是否与自身位置重叠
 // Start is called before the first frame update
 void Start()
 {
     SnakeHead = GameObject.Find("SnakeHead").GetComponent <SnakeManager>();
     // PresentX = int.Parse(transform.position.x.ToString()) + 10;
     // PresentY = int.Parse(transform.position.y.ToString()) + 5;
     PresentX = int.Parse(transform.position.x.ToString());
     PresentY = int.Parse(transform.position.y.ToString());
     MapManager.AddObject(PresentX, PresentY, Cell.CellObjectType.Key);  // 单元格添加物体
 }
示例#8
0
    public void EatFood()
    {
        Destroy(food);
        GameObject   snake       = snakes[0];
        SnakeManager snakeScript = snake.GetComponent <SnakeManager>();

        snakeScript.updatingLength = true;

        CreateFood();
    }
示例#9
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
 }
示例#10
0
        public void СoordinatesChangerTest()
        {
            // Arrange
            SnakeManager snakeManager = new SnakeManager();

            //Act
            var results = snakeManager.GetSnake();

            //Assert
            Assert.AreEqual(3, results.Bodyes.Count);
        }
示例#11
0
    private void Start()
    {
        if (instance != null)
        {
            Destroy(this);
            return;
        }

        instance = this;

        snakeJ1 = GameObject.Find("Snake J1").GetComponent <Snake>();
        snakeJ2 = GameObject.Find("Snake J2").GetComponent <Snake>();

        CameraMovement cameraMovement = FindObjectOfType <CameraMovement>();

        caseStartJ1 = cameraMovement.currentBiome.caseStartJ1;
        caseStartJ2 = cameraMovement.currentBiome.caseStartJ2;

        snakeJ1.body.Add(caseStartJ1);
        snakeJ1.bodyDirections.Add(Direction.Condition.Up);

        if (PlayerPrefs.GetInt("NbJoueurs") == 2)
        {
            snakeJ2.body.Add(caseStartJ2);
            snakeJ2.bodyDirections.Add(Direction.Condition.Up);
        }

        caseStartJ1.ChangerCaseConfiguration();

        if (PlayerPrefs.GetInt("NbJoueurs") == 2)
        {
            caseStartJ2.ChangerCaseConfiguration();
        }

        snakeJ1.SetupSnake();

        if (PlayerPrefs.GetInt("NbJoueurs") == 2)
        {
            snakeJ2.SetupSnake();
        }

        if (PlayerPrefs.GetInt("NbJoueurs") != 2)
        {
            Destroy(snakeJ2.gameObject);
            Destroy(caseStartJ2.gameObject);
        }


        cameraMovement.currentBiome.caseStartJ1 = null;
        cameraMovement.currentBiome.caseStartJ2 = null;
    }
示例#12
0
 private void OnEnable()
 {
     if (!_snakeManager)
     {
         if (FindObjectOfType <SnakeManager>())
         {
             _snakeManager = FindObjectOfType <SnakeManager>();
             _snakeManager.Snake.Add(this);
         }
         else
         {
             Debug.Log("No SnakeManager for lil badger!");
         }
     }
 }
示例#13
0
 public bool SnekSneakSnekEat(Vector2Int snakeMapPosition) //Has the snake consumed the food?
 {
     if (snakeMapPosition == foodMapPosition)              //eat the food
     {
         Object.Destroy(thaFoood);                         //Break eaten food
         FoodSpawner();                                    //make new food.
         SnakeManager.addScore();
         Debug.Log("Snake Ate Food, making more!");
         return(true);
     }
     else
     {
         return(false);
     }
 }
示例#14
0
    void Start()
    {
        snakeManager = GameObject.FindObjectOfType <SnakeManager>();
        SnakeNode head = snakeManager.GetSnakeHead();

        head.OnCollectableCollision        += Head_OnCollectableCollision;
        head.OnOverloadedObstacleCollision += Head_OnOverloadedObstacleCollision;
        this.Score = 0;

        float floatValue = snakeManager.overloadTreshhold;

        overloadFillStep      = (floatValue / (floatValue * floatValue));
        currentLevelTreshhold = levelTreshhold;
        levelManager          = FindObjectOfType <LevelManager>();
    }
示例#15
0
    void Start()
    {
        snakeManager = FindObjectOfType <SnakeManager>();
        head         = snakeManager.GetSnakeHead();
        head.OnCollectableCollision += Head_OnCollectableCollision;
        head.OnObstacleCollision    += Head_OnObstacleCollision;
        //head.OnOutOfBoundsCollision += Head_OnOutOfBoundsCollision;
        head.OnOverloadedObstacleCollision += Head_OnOverloadedObstacleCollision;
        //head.OnMovePerformed += Head_OnMovePerformed;

        //snakeManager.OnChargingComplete += SnakeManager_OnChargingComplete;
        //snakeManager.OnOverloadEnd += SnakeManager_OnOverloadEnd;

        scoreManager = FindObjectOfType <ScoreManager>();
        scoreManager.OnScoreMilestoneReach += ScoreManager_OnScoreMilestoneReach;
    }
示例#16
0
    void OnTriggerEnter(Collider c)
    {
        // GameObject gm = GameObject.Find("GameManager");

        // This line of code below is exactly the same; 'gm' is still type 'GameObject'.
        // The C# compiler knows it because we're assigning that type into the variable immediately,
        // and because of that we can shorten our code by writing 'var'.
        // It's safe to use 'var' because if the compiler could not figure out we mean 'GameObject',
        // you would immediately get an error, there's no risk of bugs from it.
        // In your own code, you can either spell out the type or write 'var', whichever you find
        // easier to read.
        var gm = GameObject.Find("GameManager");

        SnakeManager sm = gm.GetComponent <SnakeManager>();

        sm.TriggerGameOver();
    }
示例#17
0
    void CreateFood()
    {
        bool samePosition = true;

        while (samePosition)
        {
            samePosition = false;
            foodPosition = new Vector3(Random.Range(-5, 6), Random.Range(-5, 6), 0);
            foreach (GameObject snake in snakes)
            {
                SnakeManager snakeScript = snake.GetComponent <SnakeManager>();
                for (int i = 0; i < snakeScript.bodyParts.Count; i++)
                {
                    if (foodPosition == snakeScript.bodyParts[i].transform.position)
                    {
                        samePosition = true;
                    }
                }
            }
        }
        food = Instantiate(foodPrefab, foodPosition, Quaternion.identity);
    }
示例#18
0
 public SnakeController(SnakeManager _snakeManger)
 {
     model       = new SnakeModel();
     snakeManger = _snakeManger;
 }
示例#19
0
 private int SpecialChild  = -1;             //踩到的最近一个key(子对象)
 // Start is called before the first frame update
 void Start()
 {
     SnakeHead  = GameObject.Find("SnakeHead").GetComponent <SnakeManager>();
     m_Password = "******";                       //初始化为“0”
 }
示例#20
0
 private void Awake() //Awake happens before Start
 {
     instance = this;
 }
示例#21
0
 void Awake()
 {
     sm = GameObject.FindGameObjectWithTag("Manager").GetComponent <SnakeManager>();
 }
示例#22
0
 // Start is called before the first frame update
 void Start()
 {
     SnakeHead = GameObject.Find("SnakeHead").GetComponent <SnakeManager>();
 }
示例#23
0
    private void SnekMovement()
    {
        crawlTimer += Time.deltaTime;     //Used for snake movement interval
        if (crawlTimer >= timeTillMove)   //If snake needs to move, then move
        {
            SnakeTransformer last = null; //Failsafe for first body segment
            if (snekLocationHistory.Count > 0)
            {
                last = snekLocationHistory[0];                                                       //Prior Segment if avaialable, else null
            }
            SnakeTransformer snekLocation = new SnakeTransformer(last, gridPosition, snekDirection); //Class (and "last" parameter) used for properly rotaing body segments.
            Vector2Int       director;                                                               //Used in determining next location of snake.
            switch (snekDirection)
            {
            default:
            case Direction.Right: director = new Vector2Int(+1, 0); break;

            case Direction.Left: director = new Vector2Int(-1, 0); break;

            case Direction.Up: director = new Vector2Int(0, +1); break;

            case Direction.Down: director = new Vector2Int(0, -1); break;
            }
            //updateSnekParts();
            snekLocationHistory.Insert(0, snekLocation);      //Add current location to front of list.
            gridPosition += director;                         //Needed location added before this, else included head tile as first body.
            gridPosition  = mapGrid.MapWrapper(gridPosition); //If the snake went through a border, return at opposite border. (same velocity)
            crawlTimer   -= timeTillMove;                     //Reset Tick of timer. Game ticks.

            //Body Tracker////
            bool snakeAte = mapGrid.SnekSneakSnekEat(gridPosition);//Let Map know where Snekky is for food collection check
            if (snakeAte)
            {
                //Grow Snake
                snekSize++;
                generateBodySegment();                        //Adds the body segment.
                SoundManager.playSound(SoundManager.SFX.pop); //Plays a sound effect.
            }
            //ReUse snakeAte for secret test
            if ((snekSize > 5) && (spawnedD == false))
            {
                spawnedD = mapGrid.spawnD();
            }
            if ((snekSize > 4) && (spawnedG == false))
            {
                spawnedG = mapGrid.spawnG();
            }
            if ((snekSize > 3) && (spawnedS == false))
            {
                spawnedS = mapGrid.spawnS();
            }

            //char snakeLetterTemp = mapGrid.SnekLetter(gridPosition);//Let Map know if Snake collected G D or S
            if (lettersCollectedList.Count < 3)
            {
                //If not all letters were collected yet.
                //Check if Snake is eating any Letters.
                //if so return which
                char snakeLetterTemp = mapGrid.SnekLetter(gridPosition);//Let Map know if Snake collected G D or S
                //Returns 'N' if no.
                if (snakeLetterTemp != 'N')
                {
                    lettersCollectedList.Add(snakeLetterTemp);
                }
                //Else ya didn't get a letter, lol.
            }
            else if (lettersCollectedList.Count == 3)
            {
                //Once all letters have been collected
                //Check if letters are in order; enable button.
                if (lettersCollectedList[0] == 'G')
                {
                    if (lettersCollectedList[1] == 'D')
                    {
                        //Therefore [2] is 'S'
                        //Enable Level Warp Button.. or instant...

                        SnakeManager.gds();
                    }
                    else
                    {
                        //Hint that first was right.
                    }
                }
                //<Else>/<Always> add an arbitrary char to the  lettersCollectedList
                //Always
                lettersCollectedList.Add('N');
            }
            else
            {
                //Hacks //or add something to list if the letters weren't in the right order, thus preventing game from loading code within count == 3 logic repeatedly each update after...
            }

            if (snekLocationHistory.Count >= (snekSize + 1))                   //<if> We are storing more locations than the total body size of the snake
            {
                snekLocationHistory.RemoveAt((snekLocationHistory.Count - 1)); //<then> Trim fat, ya didn't need to store so much snek.
            }
            //////////////////

            transform.position    = new Vector3(gridPosition.x, gridPosition.y);          //Move Head
            transform.eulerAngles = new Vector3(0, 0, GetAngleFromVector(director) - 90); //Minus 90 fixes original rotation
            updateSnekParts();                                                            //Do not check for Death before this Update
            ////Check for Death

            foreach (SnekParts bodypart in snakeBodyList) //Have we killed the snek???
            {
                Vector2Int bodyMapPosition = bodypart.getMapPos();
                if (gridPosition == bodyMapPosition) //If the head overlaps any bodypart
                {
                    //GameOver
                    //Debug.Log("Snake has Died!! :c"); //Commented out after popup retry working
                    state = Status.Dead;
                    SnakeManager.ripSnek();
                }
            }
            //////////////////
        }
    }
示例#24
0
 void Awake()
 {
     mapManager            = GameObject.FindObjectOfType <MapManager>();
     snakeManager          = GameObject.FindObjectOfType <SnakeManager>();
     allActiveCollectables = new List <Collectable>();
 }
示例#25
0
 void Start()
 {
     snakeManager  = FindObjectOfType <SnakeManager>();
     playerT       = snakeManager.GetSnakeHead().gameObject.transform;
     audioListener = FindObjectOfType <AudioListener>().transform;
 }
示例#26
0
 private void Update()
 {
     scoreText.text = SnakeManager.getScore().ToString();
 }