public void LoadField(out Field cellField, out Player player, out CharacterCollection enemies) { cellField = new Field(field[0].Length, field.Length); enemies = new CharacterCollection(); player = new Player(0, 0); for (int y = 0; y < field.Length; y++) { for (int x = 0; x < field[y].Length; x++) { switch (field[y][x]) { case '#': cellField[x, y] = new Wall(); break; case ' ': cellField[x, y] = new Empty(); break; case 'E': enemies.Add(new Enemy(x, y)); goto case ' '; case 'P': player = new Player(x, y); goto case ' '; default: cellField[x, y] = new DestroyedObject(); break; } } } }
private void OnDeath() { characterGroup.Remove(Character); if (deathCollection != null) { deathCollection.Add(Character); } Character.gameObject.SetActive(false); }
/// <summary> /// Called by the XNA Framework when importing a .spritefont file to be used as a game asset. This is the method called by the XNA Framework when an asset is to be imported into an object that can be recognized by the Content Pipeline. /// </summary> /// <param name="filename">Name of a game asset file.</param> /// <param name="context">Contains information for importing a game asset, such as a logger interface.</param> /// <returns>Resulting game asset.</returns> public override FontDescription Import(string filename, ContentImporterContext context) { var xmldoc = XElement.Load(filename, LoadOptions.PreserveWhitespace); xmldoc = xmldoc.Element("Asset"); var fontName = xmldoc.Element("FontName").Value; var fontSize = float.Parse(xmldoc.Element("Size").Value); var spacing = float.Parse(xmldoc.Element("Spacing").Value); var useKerning = false; var useKerningElement = xmldoc.Element("UseKerning"); if (useKerningElement != null) { useKerning = bool.Parse(useKerningElement.Value); } FontDescriptionStyle style = FontDescriptionStyle.Regular; var styleElement = xmldoc.Element("Style"); if (styleElement != null) { var styleVal = styleElement.Value; if (styleVal.Contains("Bold") && styleVal.Contains("Italic")) { style = FontDescriptionStyle.Bold | FontDescriptionStyle.Italic; } else { style = (FontDescriptionStyle)Enum.Parse(typeof(FontDescriptionStyle), styleVal, false); } } char?defaultCharacter = null; var defChar = xmldoc.Element("DefaultCharacter"); if (defChar != null) { defaultCharacter = defChar.Value[0]; } var characterRegions = new List <CharacterRegion> (); foreach (var region in xmldoc.Descendants("CharacterRegion")) { var Start = (int)region.Element("Start").Value[0]; var End = (int)region.Element("End").Value[0]; characterRegions.Add(new CharacterRegion((char)Start, (char)End)); } var characters = new CharacterCollection(); foreach (var r in characterRegions) { foreach (var c in r.Characters) { characters.Add(c); } } var fontDescription = new FontDescription(fontName, fontSize, spacing, style, useKerning); fontDescription.Characters = characters; fontDescription.DefaultCharacter = defaultCharacter; fontDescription.Identity = new ContentIdentity(filename); return(fontDescription); }
public void AddCharacterToGame(CharacterData characterData) { logService.Log($"Adding character to game state: {characterData.Id}"); CharacterCollection.Add(characterData); }
#pragma warning restore 0649 void OnEnable() { _allCharactersInScene.Add(this); }