Example #1
0
    public void Initialize()
    {
        //renderer.material.color = color;
        _idx = 0;
        //Player prefab = bricReality?ScreenManager.instance.playerRealityPrefab:ScreenManager.instance.playerFantasyPrefab;
        Player prefab = ((int)realityLevel>=(int)RealityLevel.Player)?ScreenManager.instance.playerRealityPrefab:ScreenManager.instance.playerFantasyPrefab;
        _player = GameObject.Instantiate(prefab) as Player;
        _player.Initialize(this);

        GameObject prefab2 = ((int)realityLevel>=(int)RealityLevel.Princess)?ScreenManager.instance.princessRealityPrefab:ScreenManager.instance.princessFantasyPrefab;
        //GameObject prefab2 = bricReality?ScreenManager.instance.princessRealityPrefab:ScreenManager.instance.princessFantasyPrefab;
        _princess = GameObject.Instantiate(prefab2) as GameObject;
        _princess.transform.localScale = new Vector3(
            _princess.transform.localScale.x/(float)level,
            _princess.transform.localScale.y/(float)level,
            _princess.transform.localScale.z
            );
        _princess.transform.position = new Vector3(
            transform.position.x,
            transform.position.y + Camera.main.orthographicSize - _princess.transform.localScale.y*3,
            _princess.transform.position.z
            );

        _nextBlocPosition = new Vector3(
            transform.position.x,
            transform.position.y - transform.localScale.y/2f,
            0
        );

        //CreateNextBloc();
        float cumulatedWidth = 0;
        while (cumulatedWidth<Camera.main.orthographicSize*2 && Mathf.Approximately(cumulatedWidth,Camera.main.orthographicSize*2)==false) {
            CreateNextBloc();
            cumulatedWidth += _lastBlockBounds.size.y;
        }

        _firstBloc = _blocs[0];

        _destroyBlocPosition = new Vector3(
            transform.position.x,
            transform.position.y - transform.localScale.y/2f,
            0
        );
        _generateBlocPosition = new Vector3(
            transform.position.x,
            transform.position.y + transform.localScale.y/2f,
            0
            );
    }
Example #2
0
    private void CreateNextBloc()
    {
        BricGenerator blocPrefab = ScreenManager.instance.NextBloc(ref _idx);
        BricGenerator bloc = GameObject.Instantiate(blocPrefab,_nextBlocPosition,Quaternion.identity) as BricGenerator;
        bloc.reality = bricReality;
        bloc.realityPercent = screenReality;
        bloc.realityLevel = realityLevel;
        bloc.transform.position = _nextBlocPosition;
        bloc.transform.localScale /= level;

        _lastBlockBounds = new Bounds(_nextBlocPosition,Vector3.zero);
        if (bloc.transform.childCount>0) {
            foreach(Transform t in bloc.transform) {
                if (t.gameObject.tag!="Obstacle" && t.renderer!=null) {
                    _lastBlockBounds.Encapsulate(t.renderer.bounds);
                }
            }
        } else {
            _lastBlockBounds = bloc.renderer.bounds;
        }

        bloc.transform.Translate(bloc.transform.up * _lastBlockBounds.size.y/2f);

        _nextBlocPosition = new Vector3(
            bloc.transform.position.x,
            bloc.transform.position.y + _lastBlockBounds.size.y/2f,
            bloc.transform.position.z
            );

        _blocs.Add (bloc);
        _lastBloc = bloc;
    }
Example #3
0
    void Update()
    {
        foreach(BricGenerator bloc in _blocs) {
            bloc.transform.Translate(-bloc.transform.up * ScreenManager.instance.speed * Time.deltaTime);
        }

        //if ((Camera.main.transform.position.x+_cameraWidth)>=_nextBlocPosition.x) {
        if (_lastBloc.transform.position.y+_lastBlockBounds.size.y/2f<=_generateBlocPosition.y) {
            /*
             * Quand la moitié du bloc est sortie du générateur.
             */
            _nextBlocPosition = new Vector3(
                _generateBlocPosition.x,
                _lastBloc.transform.position.y+_lastBlockBounds.size.y/2f,
                _generateBlocPosition.z
            );
            CreateNextBloc();
        }

        if (_blocs.Count>0 && _firstBloc.transform.position.y<(_destroyBlocPosition.y-_lastBlockBounds.size.y/2f)) {
            _blocs.RemoveAt(0);
            GameObject.Destroy(_firstBloc.gameObject);
            if (_blocs.Count>0) {
                _firstBloc = _blocs[0];
            }
            _nextBlocPosition = _generateBlocPosition;
        }
    }
Example #4
0
    public BricGenerator NextBloc(ref int idx)
    {
        if (_currentBric!=null) {
            _currentScreenGeneration++;
            BricGenerator ogo = _currentBric;
            if(_currentScreenGeneration>=_screens.Count) {
                _currentScreenGeneration = 0;
                _currentBric = null;
            }
            return ogo;
        }
        //BricGenerator go = brics[idx];
        //idx = (idx+1)%brics.Length;
        //return go;

        BricGenerator go = null;

        switch(difficulty) {
        case 1:
            go = easyBrics[Random.Range (0,easyBrics.Length)];
            break;

        case 2:
        {
            int bidx = Random.Range (0,easyBrics.Length + mediumBrics.Length);
            if (bidx<easyBrics.Length) {
                go = easyBrics[bidx];
            } else {
                bidx -= easyBrics.Length;
                go = mediumBrics[bidx];
            }
        }
            break;

        case 3:
            go = mediumBrics[Random.Range (0,mediumBrics.Length)];
            break;

        case 4:
        {
            int bidx = Random.Range (0,mediumBrics.Length + hardBrics.Length);
            if (bidx<mediumBrics.Length) {
                go = mediumBrics[bidx];
            } else {
                bidx -= mediumBrics.Length;
                go = hardBrics[bidx];
            }
        }
            break;

        case 5:
            go = hardBrics[Random.Range (0,hardBrics.Length)];
            break;
        }

        _currentScreenGeneration++;
        if(_currentScreenGeneration>=_screens.Count) {
            _currentScreenGeneration = 0;
            _currentBric = null;
        } else {
            _currentBric = go;
        }

        _generatedBrics++;
        Debug.Log (_generatedBrics);
        return go;
    }