Ejemplo n.º 1
0
        public void LoadRoom()
        {
            List <string> objectNameList       = objectNameData.ToList();
            List <string> locationList         = locationData.ToList();
            int           objectlistPosition   = 0;
            int           locationlistPosition = 0;


            foreach (string str in objectTypeData)
            {
                switch (str)
                {
                case "IBlock":
                    IBlock block = ObjectStorage.CreateBlockObject(objectNameList[objectlistPosition]);
                    DoorCalculations(block);
                    CurrentRoomBlocks.Add(block);
                    CurrentRoomBlocks[CurrentRoomBlocks.Count - 1].Position = new Vector2(int.Parse(locationList[locationlistPosition].Substring(0, locationList[locationlistPosition].IndexOf(' '))) * Constant.DisplayScaleX, int.Parse(locationList[locationlistPosition].Substring(locationList[locationlistPosition].IndexOf(' ') + 1)) * Constant.DisplayScaleY) + (Vector2.UnitY * HUDConstants.HUDHeight * Constant.DisplayScaleY);
                    objectlistPosition++;
                    locationlistPosition++;
                    break;

                case "IEnemy":
                    CurrentRoomChars.Add(ObjectStorage.CreateCharObject(objectNameList[objectlistPosition]));
                    CurrentRoomChars[CurrentRoomChars.Count - 1].Position = new Vector2(int.Parse(locationList[locationlistPosition].Substring(0, locationList[locationlistPosition].IndexOf(' '))) * Constant.DisplayScaleX, int.Parse(locationList[locationlistPosition].Substring(locationList[locationlistPosition].IndexOf(' ') + 1)) * Constant.DisplayScaleY) + (Vector2.UnitY * HUDConstants.HUDHeight * Constant.DisplayScaleY);
                    objectlistPosition++;
                    locationlistPosition++;
                    break;

                case "INPC":
                    CurrentRoomChars.Add(ObjectStorage.CreateCharObject(objectNameList[objectlistPosition]));
                    CurrentRoomChars[CurrentRoomChars.Count - 1].Position = new Vector2(int.Parse(locationList[locationlistPosition].Substring(0, locationList[locationlistPosition].IndexOf(' '))) * Constant.DisplayScaleX, int.Parse(locationList[locationlistPosition].Substring(locationList[locationlistPosition].IndexOf(' ') + 1)) * Constant.DisplayScaleY) + (Vector2.UnitY * HUDConstants.HUDHeight * Constant.DisplayScaleY);
                    objectlistPosition++;
                    locationlistPosition++;
                    break;

                case "IItem":
                    CurrentRoomItems.Add(ObjectStorage.CreateItemObject(objectNameList[objectlistPosition]));
                    CurrentRoomItems[CurrentRoomItems.Count - 1].Position = new Vector2(int.Parse(locationList[locationlistPosition].Substring(0, locationList[locationlistPosition].IndexOf(' '))) * Constant.DisplayScaleX, int.Parse(locationList[locationlistPosition].Substring(locationList[locationlistPosition].IndexOf(' ') + 1)) * Constant.DisplayScaleY) + (Vector2.UnitY * HUDConstants.HUDHeight * Constant.DisplayScaleY);
                    objectlistPosition++;
                    locationlistPosition++;
                    break;

                case "IDoorTrigger":
                    IDoorTrigger doorTrigger = ObjectStorage.CreateDoorTriggerObject(objectNameList[objectlistPosition]);
                    CurrentRoomDoorTriggers.Add(doorTrigger);
                    CurrentRoomDoorTriggers[CurrentRoomDoorTriggers.Count - 1].Position = new Vector2(int.Parse(locationList[locationlistPosition].Substring(0, locationList[locationlistPosition].IndexOf(' '))) * Constant.DisplayScaleX, int.Parse(locationList[locationlistPosition].Substring(locationList[locationlistPosition].IndexOf(' ') + 1)) * Constant.DisplayScaleY) + (Vector2.UnitY * HUDConstants.HUDHeight * Constant.DisplayScaleY);
                    objectlistPosition++;
                    locationlistPosition++;
                    break;

                default:
                    break;
                }
            }
        }
Ejemplo n.º 2
0
 public void Draw(SpriteBatch spriteBatch)
 {
     DrawGameObjectList(spriteBatch, CurrentRoomBlocks.Cast <IGameObject>().ToList());
     DrawGameObjectList(spriteBatch, CurrentRoomItems.Cast <IGameObject>().ToList());
     DrawGameObjectList(spriteBatch, CurrentRoomChars.Cast <IGameObject>().ToList());
     DrawGameObjectList(spriteBatch, CurrentRoomPlayers.Cast <IGameObject>().ToList());
     DrawGameObjectList(spriteBatch, CurrentRoomProjectiles.Cast <IGameObject>().ToList());
     DrawGameObjectList(spriteBatch, CurrentRoomUsableItems.Cast <IGameObject>().ToList());
     DrawGameObjectList(spriteBatch, CurrentRoomDoorTriggers.Cast <IGameObject>().ToList());
     foreach (ISpriteEffect spriteEffect in CurrentRoomSpriteEffects)
     {
         spriteEffect.Draw(spriteBatch);
     }
 }