Example #1
0
        protected void Awake()
        {
            //Physics2D.alwaysShowColliders = true;

            stateChangedEventParams = new LevelStateChangedEventArgs(State.NonInit);

            // Camera size in units
            Camera camera = Camera.main;

            cameraHalfHeight = camera.orthographicSize;
            cameraHalfWidth  = camera.aspect * cameraHalfHeight;

            var paddingFactor = 0.7f;

            platYs[0] = cameraHalfHeight * paddingFactor - Constants.BLOCK_HEIGHT_HALF;
            platYs[1] = -cameraHalfHeight * paddingFactor + Constants.BLOCK_HEIGHT_HALF;

            ballTopY    = platYs[0] - Constants.BLOCK_HEIGHT_HALF - Constants.BALL_SIZE_HALF;
            ballBottomY = platYs[1] + Constants.BLOCK_HEIGHT_HALF + Constants.BALL_SIZE_HALF;

            // Test
            //ballTopY = 1.0f; ballBottomY = -1.0f;

            ball    = GameObject.Find("Ball");
            objects = new List <BaseObject>();

            pool = new Dictionary <System.Type, List <BaseObject> >();

            for (var i = 0; i < Constants.OBJECT_TYPES.Length; ++i)
            {
                pool[Constants.OBJECT_TYPES[i]] = new List <BaseObject>();
            }

            prefabs = gameObject.GetComponent <Prefabs>();

            // Add one spike and store its size
            BaseObject gobj = CreateNewObject(Constants.OT_SPIKE);

            spikeWidth = gobj.GetComponent <SpriteRenderer>().bounds.size.x;
            pool[Constants.OT_SPIKE].Add(gobj.GetComponent <BaseObject>());
            gobj.gameObject.SetActive(false);


            blocks = new List <BlockType[]>();
            int cntBlocks = Mathf.CeilToInt((cameraHalfWidth * 2) / Constants.BLOCK_WIDTH) + Constants.OBJECT_MAX_BLOCKS * 2;

            for (var i = 0; i < cntBlocks; ++i)
            {
                blocks.Add(new BlockType[2] {
                    0, 0
                });
            }

            ReinitLevel();
            state = State.NonInit;
        }
Example #2
0
 protected void OnStateChangedEvent(object sender, LevelStateChangedEventArgs eParams)
 {
     ProcessNewLevelState(eParams.State);
 }