예제 #1
0
    void spawn_items()
    {
        foreach (Vector2 cell in _itemsMap.GetUsedCells())
        {
            var id   = _itemsMap.GetCellv(cell);
            var type = _itemsMap.TileSet.TileGetName(id);
            var pos  = _itemsMap.MapToWorld(cell) + _itemsMap.CellSize / 2;
            switch (type)
            {
            case "slime_spawn":
                Area2D s = (Area2D)_enemy.Instance();
                s.Position = pos;
                AddChild(s);
                break;

            case "player_spawn":
                _player.Position = pos;
                break;

            case "coin":
            case "key_red":
            case "star":
                Pickup p = (Pickup)_pickup.Instance();
                AddChild(p);
                p.Init(type, pos);

                p.Connect("coin_pickup", _hud, "UpdateScore");
                break;
            }
        }
    }
예제 #2
0
    public void SpawnItems()
    {
        foreach (Vector2 cell in _items.GetUsedCells())
        {
            int     id       = _items.GetCellv(cell);
            string  cellType = _items.TileSet.TileGetName(id);
            Vector2 pos      = _items.MapToWorld(cell) + _items.CellSize / 2;

            switch (cellType)
            {
            case "player_spawn":
                _player.Position = pos;
                _player.TileSize = 64;
                break;

            case "coin":
            case "key_red":
            case "star":
            case "key_green":
                Pickup p = (Pickup)_pickupScene.Instance();
                p.Init(cellType, pos);
                AddChild(p);

                switch (cellType)
                {
                case "coin":
                    p.Connect("CoinPickup", _hud, "UpdateScore");
                    break;
                }
                break;
            }
        }

        foreach (Vector2 usedCell in _doors.GetUsedCells())
        {
            int     id       = _doors.GetCellv(usedCell);
            string  cellType = _doors.TileSet.TileGetName(id);
            Vector2 pos      = _doors.MapToWorld(usedCell) + _doors.CellSize / 2;
            switch (cellType)
            {
            case "door_green":
                _doorVector2s.Add("door_green", usedCell);
                break;

            case "door_red":
                _doorVector2s.Add("door_red", usedCell);
                break;
            }
        }
    }