示例#1
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (!readCollision)
        {
            return;
        }

        ShapeMatch shape = collision.GetComponent <ShapeMatch>();

        if (shape != null)
        {
            if (rightShapeRoutine != null)
            {
                StopCoroutine(rightShapeRoutine);
            }

            anim.SetTrigger("Print");

            if (shape.CheckShape(ShapeController.GetCurrentShape()))
            {
                rightShapeRoutine = RightShapeCoroutine();
                StartCoroutine(rightShapeRoutine);
                OnShapeGuessed?.Invoke();
                return;
            }

            OnShapeWrong?.Invoke();
        }
    }
示例#2
0
    void handlerCountdown()
    {
        cntdownBegin -= Time.deltaTime;

        if (cntdownBegin <= 0f)
        {
            pnlCountdown.SetActive(false);
            gameState = GameState.Play;
            ShapeController sShapeController = shapeControllerObj.GetComponent <ShapeController>();

            sShapeController.handleStartGame();
        }
        else if (cntdownBegin <= 1f)
        {
            text.text = "1";
        }
        else if (cntdownBegin <= 2f)
        {
            text.text = "2";
        }
        else
        {
            text.text = "3";
        }
    }
示例#3
0
        static void CreateShape()
        {
            Console.WriteLine("Create shape.");
            Console.Write("1. Line\n2. Triangle\n3. Rectangle\n4. Circle\n5. Return to menu\n-> ");
            var key = Console.ReadKey().KeyChar;

            Console.Clear();
            switch (key)
            {
            case '1':
                ShapeController.CreateLine();
                break;

            case '2':
                ShapeController.CreateTriangle();
                break;

            case '3':
                ShapeController.CreateRectangle();
                break;

            case '4':
                ShapeController.CreateCircle();
                break;

            case '5': return;

            default: throw new MenuArgumentException();
            }
            Console.Clear();
        }
    private void OnGameplayFadeOutCallback()
    {
        bgMng.StartBackground();
        videoAlreadyWhatched = false;

        DifficultyManager.StartGame();

        int firstGame = PlayerPrefs.GetInt("Tutorial", 0);

        if (firstGame == 0)
        {
            readInput  = false;
            isTutorial = true;
            tutorialTimes++;
            gameplayPanel.EnableTutorialPanel(true);
            spawnCtrl.StartSpawn(ShapeController.GetShapeByIndex(ShapeController.GetCurrentShapeIndex() - 1));
            CoroutineController.StartRoutine(StartTutotrial, 6.5f);
        }
        else
        {
            spawnCtrl.StartSpawn();
            readInput  = true;
            isTutorial = false;
        }

        startState = true;
    }
示例#5
0
    // Use this for initialization
    void Start()
    {
        sc = GameObject.FindGameObjectWithTag("ShapeController").GetComponent <ShapeController> ();
        mc = GameObject.FindGameObjectWithTag("MapController").GetComponent <MapController> ();
        lc = GameObject.FindGameObjectWithTag("LevelController").GetComponent <LevelController> ();
//		Debug.Log (sc + " " + mc);
    }
    private IEnumerator NewShapeEffectCorutine(ShapeScriptable _newShape)
    {
        float animDur           = 0.03f;
        int   currentShapeIndex = ShapeController.GetCurrentShapeIndex();

        readInput = false;
        Direction randomDir = UnityEngine.Random.Range(0, 2) == 0 ? Direction.Right : Direction.Left;

        for (int i = 0; i < 15; i++)
        {
            gameplayPanel.UpdateShape(randomDir, ShapeController.GetShapeByIndex(currentShapeIndex), ShapeController.GetShapeByIndex(currentShapeIndex - 1), ShapeController.GetShapeByIndex(currentShapeIndex + 1), true, animDur);
            currentShapeIndex++;

            if (randomDir == Direction.Right)
            {
                SwipeController.RightSwipe();
            }
            else
            {
                SwipeController.LeftSwipe();
            }

            yield return(new WaitForSeconds(animDur));
        }

        shapeCtrl.ChangeShape(_newShape);
        readInput = true;
    }
 private void OnGameplayFadeIntCallback()
 {
     printCtrl.EnableGraphic(true);
     musicCtrl.PlayGameClip();
     scoreCtrl.Init();
     gameplayPanel.UpdateScore(scoreCtrl.GetCurrentScore());
     HandleOnShapeChange(Direction.None, ShapeController.GetCurrentShape(), false);
 }
示例#8
0
        static void DeleteShape()
        {
            Console.WriteLine("Delete shape.");
            Console.Write("Enter shape id\n-> ");
            var id = int.Parse(Console.ReadLine());

            ShapeController.DeleteShape(id);
            Console.Clear();
        }
示例#9
0
 protected override void Awake()
 {
     base.Awake();
     ColorChanger      = GetComponent <ColorController>();
     ShapeDrawer       = GetComponent <ShapeController>();
     base.clickHandler = this;
     base.hitHandler   = this;
     transform.Rotate(0, 180, 0);
 }
示例#10
0
    public void CreateTarget()
    {
        ShapeController o = targetFactory.GetRandom();
        Transform       t = o.transform;

        t.localScale = Vector3.one * Random.Range(1f, 2f);

        Vector3 newPosition = new Vector3(Random.Range(-10f, 10f), footLevelPositionTarget + t.localScale.y / 2,
                                          Random.Range(1f, 10f));

        int maximumTry = 4;
        int tryCount   = 0;

        while (tryCount < maximumTry)
        {
            bool foundInside = false;
            for (int i = 0; i < shapeControllers.Count; i++)
            {
                if ((newPosition - shapeControllers[i].transform.position).magnitude < minDistBetweenTargets)
                {
                    foundInside = true;
                }
            }

            if (foundInside == true)
            {
                newPosition = new Vector3(Random.Range(-10f, 10f), footLevelPositionTarget + t.localScale.y / 2,
                                          Random.Range(1f, 10f));
                tryCount++;
            }
            else
            {
                break;
            }
        }

        if (tryCount < maximumTry)   //not failed
        {
            //put targets under one layer
            o.gameObject.transform.SetParent(this.transform.GetChild(0).transform);
            o.gameObject.layer = this.transform.GetChild(0).gameObject.layer;
            foreach (Transform tran in o.gameObject.GetComponentsInChildren <Transform>(true))
            {
                tran.gameObject.layer = this.transform.GetChild(0).gameObject.layer;
            }

            t.localPosition = newPosition;

            shapeControllers.Add(o);
        }
        else
        {
            //cannot generate more targets
            targetFactory.Reclaim(o);
        }
    }
示例#11
0
        static void SearchShape()
        {
            Console.WriteLine("Search shape.");
            Console.Write("Enter shape id\n-> ");
            var id    = int.Parse(Console.ReadLine());
            var shape = ShapeController.GetShapeById(id);

            Console.WriteLine(shape);
            ConsoleWait();
        }
示例#12
0
        static void Main(string[] args)
        {
            var             comm       = "";
            ShapeController controller = new ShapeController();

            while (!comm.Equals("q"))
            {
                controller.Run(comm);
                comm = Console.ReadLine().ToLower();
            }
        }
示例#13
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // Perform any additional setup after loading the view, typically from a nib.

            var squareMaker     = UIViewBuilder.InitialiseUIComponents(view: View);
            var shapeSetBuilder = new ShapeSetBuilder(squareViewFactory: squareMaker);

            _shapeController = new GameInitialiser()
                               .MakeShapeController(shapeSetBuilder: shapeSetBuilder);
        }
示例#14
0
    public void Setup(GameManager _gm)
    {
        i  = this;
        gm = _gm;

        shapesToAdd   = new List <AddShapeClass>(addShapes);
        currentShapes = new List <ShapeScriptable>(startShapes);

        PrintController.OnShapeGuessed += HandleOnShapeGuessed;
        gm.OnGameEnd += HandleGameEnd;
    }
示例#15
0
    public static void GameOver()
    {
        Analytics.CustomEvent("GameOver", new Dictionary <string, object>
        {
            { "Score", i.scoreCtrl.GetCurrentScore() },
            { "Speed", DifficultyManager.GetCurrentMovementSpeed() },
            { "SpawnRate", DifficultyManager.GetCurrentSpawnRate() },
            { "ShapeAmmount", ShapeController.GetShapeAmmount() }
        });

        i.OnGameEnd?.Invoke();
    }
示例#16
0
        static void ViewShape()
        {
            Console.WriteLine("View shapes.");
            var shapes = ShapeController.GetSortoedShapes();

            Console.Clear();
            foreach (var shape in shapes)
            {
                Console.WriteLine(shape);
            }
            ConsoleWait();
        }
示例#17
0
    void OnTriggerStay2D(Collider2D coll)
    {
        if (filled || coll.gameObject.layer != 10)
        {
            return;
        }
        ShapeController shape = coll.gameObject.GetComponent <ShapeController>();

        if (!shape.Held)
        {
            shape.Dropped();
        }
    }
示例#18
0
    private Shape SpawnShape(float shapeSpeed)
    {
        var shp = ShapeFactory.CreateRandom();

        shp.Pos              = new Cell(0, 5);
        shp.Speed            = shapeSpeed;
        shp.MovementRestrict = board.IsEmptyCell;
        shapeView.PlaceBlocks(shp.GetCurrentBlocks());

        shapeController = new ShapeController(shp, shapeView);

        return(shp);
    }
示例#19
0
    public bool CheckShape(ShapeScriptable _shape)
    {
        isToGuess = false;

        if (ShapeController.GetCurrentShape() == shape)
        {
            spriteMask.sprite     = shape.shadowSprite;
            spriteRenderer.sprite = shape.shapeSprite;
            return(true);
        }

        return(false);
    }
示例#20
0
    bool IsMatch(GameObject shape1, GameObject shape2, GameObject shape3)
    {
        ShapeController shapeCont1 = shape1.GetComponent <ShapeController>();
        ShapeController shapeCont2 = shape2.GetComponent <ShapeController>();
        ShapeController shapeCont3 = shape3.GetComponent <ShapeController>();

        if (((shapeCont1.shape == shapeCont2.shape) && (shapeCont2.shape == shapeCont3.shape)) ||
            ((shapeCont1.color == shapeCont2.color) && (shapeCont2.color == shapeCont3.color)))
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
示例#21
0
    // Use this for initialization
    void Start()
    {

        Screen.orientation = (ScreenOrientation)PlayerPrefs.GetInt("ScreenOrientation", (int)ScreenOrientation.LandscapeLeft);

        shapeController = GetComponent<ShapeController>();
        swipeController = GetComponent<SwipeController>();
        playerBody = GetComponent<Rigidbody2D>();
        localHighScores = GetComponent<LocalHighScore>();
        levelGenerator = GetComponent<LevelGenerator>();
        levelGenerator.AddAllPrefabsToPooler();
        maxPlayerSpeedSquared = MaxPlayerSpeed * MaxPlayerSpeed;
        //Restart();

        StartCoroutine(MoveTowardsGoalCoroutine());
    }
示例#22
0
 public void Reclaim(ShapeController shapeToRecycle)
 {
     if (recycle)
     {
         if (pools == null)
         {
             CreatePools();
         }
         shapeToRecycle.gameObject.GetComponent <ShapeController>().Reclaim();
         pools[shapeToRecycle.ShapeId].Add(shapeToRecycle);
         shapeToRecycle.gameObject.SetActive(false);
     }
     else
     {
         Destroy(shapeToRecycle.gameObject);
     }
 }
示例#23
0
    // Use this for initialization
    void Start()
    {
        sc         = GameObject.FindGameObjectWithTag("ShapeController").GetComponent <ShapeController> ();
        cc         = GameObject.FindGameObjectWithTag("CollisionController").GetComponent <CollisionController> ();
        queues [0] = GameObject.FindGameObjectWithTag("Queue1");
        queues [1] = GameObject.FindGameObjectWithTag("Queue2");
        queues [1].SetActive(false);
        queues [2] = GameObject.FindGameObjectWithTag("Queue3");
        queues [2].SetActive(false);
        queues [3] = GameObject.FindGameObjectWithTag("Queue4");
        queues [3].SetActive(false);

        cols [0] = GameObject.FindGameObjectWithTag("Col1");
        cols [1] = GameObject.FindGameObjectWithTag("Col2");
        cols [2] = GameObject.FindGameObjectWithTag("Col3");
        cols [3] = GameObject.FindGameObjectWithTag("Col4");
    }
示例#24
0
    public void Evaluate(IBlackBox box)
    {
        int xPos, zPos;

        lock (this)
        {
            xPos = _xCounter * _xFactor + _xOffset;
            if (xPos < _xLimit)
            {
                _xCounter++;
            }

            else
            {
                _xCounter = 0;
                _zCounter++;
            }
            zPos = _zCounter * _zFactor;
            _counter++;
            if (_counter == experiment.DefaultPopulationSize)
            {
                ResetCounters();
            }
        }

        GameObject     obj        = Instantiate(Unit, new Vector3(xPos, 0, zPos), Unit.transform.rotation) as GameObject;
        UnitController controller = obj.GetComponent <UnitController>();

        controller.MouseDownEvent += (sender, args) =>
        {
            var shapeController = sender as ShapeController;
            if (SelectedController != null)
            {
                SelectedController.DeSelect();
            }
            if (shapeController != null)
            {
                SelectedController = shapeController;
            }
        };
        ControllerMap.Add(box, controller);

        controller.Activate(box);
    }
示例#25
0
    void handleLoseState()
    {
        if (onLoseDone == true)
        {
            if (pnlLose.active == false)
            {
                pnlLose.SetActive(true);
                onLoseDone = false;
            }
        }
        else
        {
            violent.SetActive(false);
            student.SetActive(false);
            ShapeController sShapeController = shapeControllerObj.GetComponent <ShapeController>();

            sShapeController.handleStopGame();
            lose.onLose();
        }
    }
示例#26
0
        static void ShapesGallery()
        {
            var shapes = ShapeController.GetSortoedShapes();
            var flag   = true;

            for (int i = 0; flag;)
            {
                Console.Clear();
                Console.WriteLine("Shapes gallery.");
                Console.WriteLine(shapes[i]);
                Console.WriteLine("Navigation:\n> - next page\n< - previous page\nq - back to menu");
                var key = Console.ReadKey().KeyChar;
                switch (key)
                {
                case '.':
                case '>':
                    if (i != shapes.Count - 1)
                    {
                        i++;
                    }
                    break;

                case ',':
                case '<':
                    if (i != 0)
                    {
                        i--;
                    }
                    break;

                case 'q':
                    flag = false;
                    break;

                default: continue;
                }
            }
            Console.Clear();
        }
示例#27
0
    private Shape SpawnShape(float shapeSpeed)
    {
        Shape shape;

        if (_gameSettings.ShapeType == ShapeType.Random)
        {
            shape = ShapeFactory.CreateRandom();
        }
        else
        {
            shape = ShapeFactory.CreateShape(_gameSettings.ShapeType);
        }

        shape.Pos              = new Cell(0, 5);
        shape.Speed            = shapeSpeed;
        shape.MovementRestrict = _board.IsEmptyCell;
        _shapeView.PlaceBlocks(shape.GetCurrentBlocks());

        _shapeController = new ShapeController(shape, _shapeView);

        return(shape);
    }
    public override void Enter()
    {
        startState = false;
        adsMng     = UnityAdsManager.instance;
        gm         = context.GetGameManager();
        spawnCtrl  = gm.GetSpawnController();
        uiMng      = gm.GetUIManager();
        shapeCtrl  = gm.GetShapeController();
        bgMng      = gm.GetBackgroundManager();
        printCtrl  = gm.GetPrintController();
        scoreCtrl  = gm.GetScoreController();
        musicCtrl  = gm.GetMusicController();

        PrintController.OnShapeGuessed += HandleOnShapeGuessed;
        PrintController.OnShapeWrong   += HandleOnShapeWrong;
        ShapeController.OnShapeChanged += HandleOnShapeChange;
        ShapeController.OnNewShapeAdd  += HandleOnNewShapeAdd;
        gm.OnGameEnd += HandleOnGameEnd;

        gameplayPanel = uiMng.GetMenu <UIMenu_Gameplay>();
        printCtrl.EnableGraphic(false);
        uiMng.SetCurrentMenu <UIMenu_Gameplay>(0.5f, 0.5f, OnGameplayFadeIntCallback, OnGameplayFadeOutCallback);
    }
    private IEnumerator SpawnShapeCoroutine(ShapeScriptable _firstShape)
    {
        yield return(new WaitForSeconds(startDelayTime));

        while (true)
        {
            ShapeScriptable shapeToSpawn;
            if (nextShape != null)
            {
                shapeToSpawn = nextShape;
                nextShape    = null;

                yield return(new WaitForSeconds(0.7f));
            }
            else if (_firstShape != null)
            {
                shapeToSpawn = _firstShape;
                _firstShape  = null;
            }
            else
            {
                int shapeToGuess = spawnedShapes.Count(s => s.IsToGuess());
                if (ShapeController.CheckNextShapeToAdd(shapeToGuess))
                {
                    yield return(null);

                    continue;
                }

                shapeToSpawn = ShapeController.GetRandomShapeMatch();
            }

            SpawnShape(shapeToSpawn);

            yield return(new WaitForSeconds(DifficultyManager.GetCurrentSpawnRate()));
        }
    }
示例#30
0
    public void SpawnNewObject()
    {
        GameObject chosen;
        int        objectChoice = Random.Range(0, 3);

        switch (objectChoice)
        {
        default:
        case 0:
            chosen = m_sphere;
            break;

        case 1:
            chosen = m_cube;
            break;

        case 2:
            chosen = m_pyramid;
            break;
        }

        GameObject go = Instantiate(chosen, m_spawnParent);

        go.transform.position = m_spawnPosition.position;

        ShapeController sc = go.GetComponent <ShapeController>();

        sc.SetSpawner(this);
        sc.name = chosen.name + shapeCount.ToString();

        sc.ChangeForces(m_currentForce);

        m_currentShapes.Add(sc);

        shapeCount++;
    }