コード例 #1
0
    public void PaintAt(int x, int y, Level.BlockType block)
    {
        if (_level.Spawn.x == x && _level.Spawn.y == y ||
            (x < 0 || x >= _level.Width || y < 0 || y >= _level.Height))
        {
            return;
        }

        _levelObjectSpriteRenderers[x][y].sprite = blockSprites[(int)block];

        _level.SetBlockAt(x, y, block);
    }
コード例 #2
0
    // Use this for initialization
    void Start()
    {
        level = new Level(10, 10);
        LevelManager.applicationIsQuitting = false;
        //    _levelManager = LevelManager.Instance;
        Camera.main.transform.position = new Vector3(5, 5, -10);
        _levelEditorObjects            = new GameObject();
        _levelEditorObjects.name       = "Level Editor Objects";
        InstantiateLevel();

        blockToPaint = Level.BlockType.Dirt;
        drawType     = LevelDrawType.Brush;
    }
コード例 #3
0
    public void Play()
    {
        _levelObjects      = new GameObject();
        _levelObjects.name = "Level";

        GameObject instantiatedObject;

        for (int i = 0; i < levelEditor.level.Width; i++)
        {
            for (int j = 0; j < levelEditor.level.Height; j++)
            {
                Level.BlockType block = levelEditor.level.GetBlockAt(i, j);

                if (block == Level.BlockType.Empty)
                {
                    continue;
                }

                instantiatedObject = Instantiate(blocks[(int)block - 1],
                                                 new Vector3(i, j, 0),
                                                 Quaternion.identity) as GameObject;
                instantiatedObject.transform.parent = _levelObjects.transform;
            }
        }

        instantiatedObject = Instantiate(player, new Vector3(levelEditor.level.Spawn.x, levelEditor.level.Spawn.y, 0), Quaternion.identity) as GameObject;
        instantiatedObject.transform.parent = _levelObjects.transform;

        instantiatedObject = new GameObject();
        instantiatedObject.AddComponent <BoxCollider2D>();
        instantiatedObject.transform.localScale = new Vector3(levelEditor.level.Width, 1, 1);
        instantiatedObject.transform.position   = new Vector3(levelEditor.level.Width / 2, -1, 0);
        instantiatedObject.name             = "Ground";
        instantiatedObject.transform.parent = _levelObjects.transform;
        instantiatedObject.layer            = LayerMask.NameToLayer("Block");
    }
コード例 #4
0
    void InstantiateGameLevel()
    {
        _map                  = new GameObject();
        _map.name             = "Level";
        _map.transform.parent = inGameObjects.transform;

        GameObject instantiatedObject;

        for (int i = 0; i < _level.Width; i++)
        {
            for (int j = 0; j < _level.Height; j++)
            {
                Level.BlockType block = _level.GetBlockAt(i, j);

                if (block == Level.BlockType.Empty)
                {
                    continue;
                }

                instantiatedObject = Instantiate(blocks[(int)block - 1],
                                                 new Vector3(i, j, 0),
                                                 Quaternion.identity) as GameObject;
                instantiatedObject.transform.parent = _map.transform;
            }
        }

        // Spawn player
        instantiatedObject = Instantiate(player, new Vector3(_level.Spawn.x, _level.Spawn.y, 0), Quaternion.identity) as GameObject;
        instantiatedObject.transform.parent = _map.transform;
        var followCamera = gameCamera.GetComponent <FollowCamera>();

        followCamera.target = instantiatedObject;
        followCamera.clamp  = true;
        var cameraPosition = followCamera.transform.position;

        cameraPosition.x = _level.Spawn.x;
        cameraPosition.y = _level.Spawn.y;
        followCamera.transform.position = cameraPosition;

        // Spawn Borders
        // Ground
        instantiatedObject = Instantiate(ground, new Vector3(_level.Width / 2, -1, 0), Quaternion.identity) as GameObject;
        instantiatedObject.transform.localScale = new Vector3(_level.Width + 3, 1, 1);
        instantiatedObject.transform.parent     = _map.transform;

        // Bottom
        instantiatedObject = Instantiate(border, new Vector3(_level.Width / 2, -1 - 1, 0), Quaternion.identity) as GameObject;
        instantiatedObject.transform.localScale = new Vector3(_level.Width + 3, 1, 1);
        instantiatedObject.transform.parent     = _map.transform;
        followCamera.groundBorderRenderer       = instantiatedObject.GetComponent <MeshRenderer>();

        // Left
        instantiatedObject = Instantiate(border, new Vector3(-1, _level.Height / 2, 0), Quaternion.identity) as GameObject;
        instantiatedObject.transform.localScale = new Vector3(1, _level.Height + 1, 1);
        instantiatedObject.transform.parent     = _map.transform;
        followCamera.leftBorderRenderer         = instantiatedObject.GetComponent <MeshRenderer>();

        // Right
        instantiatedObject = Instantiate(border, new Vector3(_level.Width, _level.Height / 2, 0), Quaternion.identity) as GameObject;
        instantiatedObject.transform.localScale = new Vector3(1, _level.Height + 1, 1);
        instantiatedObject.transform.parent     = _map.transform;
        followCamera.rightBorderRenderer        = instantiatedObject.GetComponent <MeshRenderer>();
    }
コード例 #5
0
 void Awake()
 {
     StartBuild(width: 30, height: 10); // 기본 크기로 레벨 초기화
     blockToPaint = Level.BlockType.Dirt;
     drawType     = LevelDrawType.Brush;
 }
コード例 #6
0
    // Update is called once per frame
    void Update()
    {
        Touch[] touches = Input.touches;

        if (editMode == LevelEditMode.Build)
        {
            if (!UIManager.isUIActive && touches.Length <= 1)
            {
                HandlePaint();
            }

            if (Input.GetMouseButton(1) && !UIManager.isUIActive)
            {
                cameraManager.MoveCamera();
            }
        }

        if (Input.GetKeyDown("p"))
        {
            if (editMode == LevelEditMode.Build)
            {
                EditMode = LevelEditMode.Test;
            }
            else if (editMode == LevelEditMode.Test)
            {
                EditMode = LevelEditMode.Build;
            }
        }

        if (Input.GetKeyDown("1"))
        {
            blockToPaint = Level.BlockType.Empty;
        }

        if (Input.GetKeyDown("2"))
        {
            blockToPaint = Level.BlockType.Dirt;
        }

        if (Input.GetKeyDown("3"))
        {
            blockToPaint = Level.BlockType.GrassedDirt;
        }

        if (Input.GetKeyDown("4"))
        {
            blockToPaint = Level.BlockType.Spring;
        }

        if (Input.GetKeyDown("5"))
        {
            blockToPaint = Level.BlockType.Bomber;
        }

        if (Input.GetKeyDown("6"))
        {
            blockToPaint = Level.BlockType.Flame;
        }

        if (Input.GetKeyDown("7"))
        {
            blockToPaint = Level.BlockType.Water;
        }
    }
コード例 #7
0
 public Block(Level.BlockType block, Texture2D texture, Vector2 pos)
 {
     blockTexture = texture;
     blockPos     = pos;
     this.block   = block;
 }