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); }
// 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; }
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"); }
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>(); }
void Awake() { StartBuild(width: 30, height: 10); // 기본 크기로 레벨 초기화 blockToPaint = Level.BlockType.Dirt; drawType = LevelDrawType.Brush; }
// 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; } }
public Block(Level.BlockType block, Texture2D texture, Vector2 pos) { blockTexture = texture; blockPos = pos; this.block = block; }