public VolumnControl(Point startPos, Type type) { this.type = type; var unit = Global.Instance.Unit; this.startPos = new Point(startPos.X + unit * 5, startPos.Y); var graphics = Global.Instance.Graphics; var progressTexture = new Texture2D(graphics, 1, 1); endPos = new Point(this.startPos.X + unit * 10, this.startPos.Y); progressTexture.SetData(new Color[] { Color.Red }); string titleText = ""; switch (type) { case Type.Music: vol = SoundManager.Instance.MusicVolumn; titleText = "Music volumn"; break; case Type.Sound: vol = SoundManager.Instance.SoundVolumn; titleText = "Sound volumn"; break; } var progressLength = (int)(vol * unit * 10); title = new _2DModel(titleText, ResManager.Instance.SmallNotifyFont, new Vector2(startPos.X, startPos.Y), Color.Blue); progress = new _2DModel(progressTexture, new Rectangle(this.startPos.X, this.startPos.Y + unit / 4, progressLength, unit / 2), Color.White); control = new _2DModel(ResManager.Instance.Control, new Rectangle(this.startPos.X + progressLength, this.startPos.Y, unit, unit), Color.White); }
public Effect(EffectType type) { this.type = type; Texture2D texture = null; int numbersOfAnimationType = -1; switch (type) { case EffectType.Collision: texture = ResManager.Instance.Collision; numbersOfAnimation = 4; numbersOfAnimationType = 4; break; case EffectType.Angry: texture = ResManager.Instance.Flaming; numbersOfAnimation = 5; numbersOfAnimationType = 3; break; } var sourceRect = new Rectangle(0, 0, texture.Width / numbersOfAnimation, texture.Height / numbersOfAnimationType); model = new _2DModel(texture, Rectangle.Empty, Color.White, sourceRect); }
public Obstacle(int x, int y) { var unit = Global.Instance.Unit; var realPosition = MapToRealPosition(x, y); logicPos = new Point(x, y); type = Type.Obstacle; model = new _2DModel(ResManager.Instance.Wall, new Rectangle(realPosition.X, realPosition.Y, unit, unit), Color.White); }
public MazeUI() { var unit = Global.Instance.Unit; MazeObject.MazeStartPoint = new Point(unit * 11, unit * 2); mapWidth = Global.Instance.MapWidth; mapHeight = Global.Instance.MapHeight; collision = new Effect(Effect.EffectType.Collision); playerSteps = new _2DModel("Numbers of step: ", ResManager.Instance.SmallNotifyFont, new Vector2(unit * 11, unit), Color.Red); InitMap(); }
public LoserUI() { var unit = Global.Instance.Unit; var graphics = Global.Instance.Graphics; var text = "GAME OVER!"; var titleStringLength = ResManager.Instance.NotifyFont.MeasureString(text); var titlePos = new Vector2(unit * 10 + (graphics.Viewport.Width - unit * 10 - titleStringLength.X) / 2, unit); title = new _2DModel(text, ResManager.Instance.NotifyFont, titlePos, Color.Blue); RIPImage = new _2DModel(ResManager.Instance.Rip, new Rectangle(unit * 11, unit * 3, unit * 6, unit * 6), Color.White); deathReason = new _2DModel("You've been killed by monster", ResManager.Instance.SmallNotifyFont, new Vector2(unit * 18, unit * 4), Color.Red); }
public NotificationUI(string notificationText) { var graphics = Global.Instance.Graphics; var unit = Global.Instance.Unit; var notificationSize = ResManager.Instance.NotifyFont.MeasureString(notificationText); var notificationPos = new Vector2((graphics.Viewport.Width - notificationSize.X) / 2, graphics.Viewport.Height / 4); var buttonPos = new Point(graphics.Viewport.Width / 2 - unit * 5, graphics.Viewport.Height / 4 + unit * 2); notification = new _2DModel(notificationText, ResManager.Instance.NotifyFont, notificationPos, Color.Red); ok = new Button("OK", buttonPos, EventBoard.Event.DismissDialog); container = new _2DModel(ResManager.Instance.Dialog, new Rectangle(graphics.Viewport.Width / 2 - unit * 10, (int)(notificationPos.Y - unit), unit * 20, unit * 6), Color.White); }
public Button(string text, Point position, EventBoard.Event ev) { this.ev = ev; var spriteFont = ResManager.Instance.NotifyFont; var unit = Global.Instance.Unit; var containerRect = new Rectangle(position.X, position.Y, unit * 8, unit * 2); var textVector = spriteFont.MeasureString(text); var textPosition = new Vector2(position.X + (containerRect.Width - textVector.X) / 2, position.Y + (containerRect.Height - textVector.Y) / 2); container = new _2DModel(ResManager.Instance.ButtonContainer, containerRect, Color.White); light = new _2DModel(ResManager.Instance.Light, containerRect, Color.White); textModel = new _2DModel(text, spriteFont, textPosition, Color.Red); }
public MenuUI() { Type = UIType.Menu; SoundManager.Instance.PlayMusic(ResManager.Instance.MenuMusic); var unit = Global.Instance.Unit; var graphics = Global.Instance.Graphics; var width = graphics.Viewport.Width; var logoStartX = (width - unit * 13) / 2; var buttonStartX = (width - unit * 8) / 2; background = new _2DModel(ResManager.Instance.MenuBackground, new Rectangle(0, 0, graphics.Viewport.Width, graphics.Viewport.Height), Color.White); logo = new _2DModel(ResManager.Instance.Logo, new Rectangle(logoStartX, unit, unit * 13, unit * 3), Color.White); newGame = new Button("NEW GAME", new Point(buttonStartX, unit * 5), EventBoard.Event.StartGame); setting = new Button("SETTING", new Point(buttonStartX, unit * 8), EventBoard.Event.OpenSetting); exit = new Button("EXIT", new Point(buttonStartX, unit * 11), EventBoard.Event.Exit); }
public SettingUI() { var unit = Global.Instance.Unit; SoundManager.Instance.Backup(); title = new _2DModel("SETTING", ResManager.Instance.NotifyFont, new Vector2(unit * 2, unit / 2), Color.Red); musicVolumnControl = new VolumnControl(new Point(unit * 2, unit * 2), VolumnControl.Type.Music); soundVolumnControl = new VolumnControl(new Point(unit * 2, unit * 4), VolumnControl.Type.Sound); playerSelector = new CharacterSelector(new Point(unit * 2, unit * 6), CharacterSelector.Type.Player); mummySelector = new CharacterSelector(new Point(unit * 2, unit * 8), CharacterSelector.Type.Mummy); scorpionSelector = new CharacterSelector(new Point(unit * 2, unit * 10), CharacterSelector.Type.Scorpion); zombieSelector = new CharacterSelector(new Point(unit * 2, unit * 12), CharacterSelector.Type.Zombie); apply = new Button("APPLY", new Point(unit * 20, unit * 3), EventBoard.Event.ApplySetting); cancel = new Button("CANCEL", new Point(unit * 20, unit * 6), EventBoard.Event.CancelSetting); }
public MainUI() { SoundManager.Instance.PlayMusic(ResManager.Instance.GameMusic); state = State.Playing; var unit = Global.Instance.Unit; var graphics = Global.Instance.Graphics; mazeUI = new MazeUI(); winnerUI = new WinnerUI(); loserUI = new LoserUI(); background = new _2DModel(ResManager.Instance.Ground, new Rectangle(0, 0, graphics.Viewport.Width, graphics.Viewport.Height), Color.White); logo = new _2DModel(ResManager.Instance.Logo, new Rectangle(unit, unit, unit * 8, unit * 2), Color.White); playAgain = new Button("PLAY AGAIN", new Point(unit, unit * 4), EventBoard.Event.ResetGame); setting = new Button("SETTING", new Point(unit, unit * 7), EventBoard.Event.OpenSetting); returnToMenu = new Button("RETURN TO MENU", new Point(unit, unit * 10), EventBoard.Event.ReturnToMenu); }
public Character(Type type, int x, int y) { this.type = type; discoveryEffect = new _2DModel(ResManager.Instance.DiscoveryEffect, Rectangle.Empty, Color.White); logicPos = new Point(x, y); var res = ResManager.Instance; var unit = Global.Instance.Unit; var realPosition = MapToRealPosition(x, y); Texture2D texture; switch (type) { case Type.Player: texture = res.Player; numbersOfMovement = 4; defaultMovementIndex = 2; break; case Type.Mummy: texture = res.Mummy; numbersOfMovement = 3; defaultMovementIndex = 1; break; case Type.Scorpion: texture = res.Scorpion; numbersOfMovement = 4; defaultMovementIndex = 2; break; default: texture = res.Zombie; numbersOfMovement = 6; defaultMovementIndex = 0; break; } model = new _2DModel(texture, new Rectangle(realPosition.X, realPosition.Y, unit, unit), Color.White); movementType = 0; currentMovementIndex = defaultMovementIndex; }
public WinnerUI() { var unit = Global.Instance.Unit; var graphics = Global.Instance.Graphics; var text = "CONGRATULATION! YOU'VE ESCAPED!"; var titleStringLength = ResManager.Instance.NotifyFont.MeasureString(text); var titlePos = new Vector2(unit * 10 + (graphics.Viewport.Width - unit * 10 - titleStringLength.X) / 2, unit); title = new _2DModel(text, ResManager.Instance.NotifyFont, titlePos, Color.Red); score = new _2DModel("YOU SCORE: ", ResManager.Instance.SmallNotifyFont, new Vector2(unit * 11, unit * 3), Color.Blue); numOfTreasure = new _2DModel("TREASURE QUANLITY: ", ResManager.Instance.SmallNotifyFont, new Vector2(unit * 11, unit * 4), Color.Blue); treasureWeight = new _2DModel("TREASURE WEIGHT: ", ResManager.Instance.SmallNotifyFont, new Vector2(unit * 11, unit * 5), Color.Blue); save = new Button("SAVE", new Point(unit * 21, unit * 3), EventBoard.Event.SaveRecord); text = "TOP PLAYERS"; titleStringLength = ResManager.Instance.NotifyFont.MeasureString(text); titlePos = new Vector2(unit * 10 + (graphics.Viewport.Width - unit * 10 - titleStringLength.X) / 2, unit * 6); recordTitle = new _2DModel(text, ResManager.Instance.NotifyFont, titlePos, Color.Red); playerNameTitle = new _2DModel("Player name", ResManager.Instance.SmallNotifyFont, new Vector2(unit * 13, unit * 7), Color.Red); scoreTitle = new _2DModel("Player score", ResManager.Instance.SmallNotifyFont, new Vector2(unit * 23, unit * 7), Color.Red); }
public void InitMouseSprite() { model = new _2DModel(ResManager.Instance.Cursor, Rectangle.Empty, Color.White); }
public CharacterSelector(Point pos, Type type) { var unit = Global.Instance.Unit; var graphics = Global.Instance.Graphics; var lineTexture = new Texture2D(graphics, 1, 1); lineTexture.SetData(new Color[] { Color.Blue }); this.type = type; Texture2D texture = ResManager.Instance.Player; int numbersOfFrame = 4, defaultFrameIndex = 2; Color characterColor = Character.PlayerColor; string title = "Player style"; switch (type) { case Type.Mummy: texture = ResManager.Instance.Mummy; numbersOfFrame = 3; defaultFrameIndex = 1; characterColor = Character.MummyColor; title = "Mummy style"; break; case Type.Scorpion: texture = ResManager.Instance.Scorpion; numbersOfFrame = 4; defaultFrameIndex = 2; characterColor = Character.ScorpionColor; title = "Scorpion style"; break; case Type.Zombie: texture = ResManager.Instance.Zombie; numbersOfFrame = 6; defaultFrameIndex = 0; characterColor = Character.ZombieColor; title = "Zombie style"; break; } var sourceRect = new Rectangle((texture.Width / numbersOfFrame) * defaultFrameIndex, 0, texture.Width / numbersOfFrame, texture.Height / 4); this.title = new _2DModel(title, ResManager.Instance.SmallNotifyFont, new Vector2(pos.X, pos.Y), Color.Red); characters = new _2DModel[] { new _2DModel(texture, new Rectangle(pos.X + unit * 5, pos.Y, unit, unit), Color.White, sourceRect), new _2DModel(texture, new Rectangle(pos.X + unit * 9, pos.Y, unit, unit), Color.Green, sourceRect), new _2DModel(texture, new Rectangle(pos.X + unit * 13, pos.Y, unit, unit), Color.Blue, sourceRect) }; for (int i = 0; i < 3; i++) { if (characters[i].CurrentColor.Equals(characterColor)) { selectedCharacter = i; var rect = characters[i].Rect; selectedLine = new _2DModel(lineTexture, new Rectangle(rect.Left, rect.Bottom + 5, rect.Width, 5), Color.White); break; } } }