public void CreateMessage(string message) { if (_message == null) { _message = new YnText("Fonts/Messages", message); _message.LoadContent(); _message.Initialize(); _message.Position = new Vector2( (float)(_container.X + _container.Width / 2 - (_message.Width / 2)), (float)(_container.Y + 65)); _message.Color = Color.White; Add(_message); if (_message.Height + 65 > _container.Height) { _container.Scale = new Vector2(_container.Scale.X, _container.Scale.Y + (_message.Height / _message.Height + 65.0f) / 100.0f); } // Message d'origine _baseMessage = _message.Text; } else { throw new Exception("[MessageBox] Message already exists"); } }
public override void LoadContent() { base.LoadContent(); List <string> descriptionText = new List <string>(7); descriptionText.Add(String.Format("Model: {0}", spaceShipDescription.Model)); descriptionText.Add(String.Format("Category {0}", spaceShipDescription.Category)); descriptionText.Add(String.Format("Weight: {0}", spaceShipDescription.Weight)); descriptionText.Add(String.Format("Speed: {0}", spaceShipDescription.GetSpeed()[0] * spaceShipDescription.GetSpeed()[1])); descriptionText.Add(String.Format("Primary weapon: {0}", spaceShipDescription.PrimaryWeapons)); descriptionText.Add(String.Format("Secondary weapon: {0}", spaceShipDescription.SecondaryWeapons)); descriptionText.Add(String.Format("Ship descrption:\n\n{0}", spaceShipDescription.Description)); _shipImage.AssetName = spaceShipDescription.AssetName.Split(new char[] { '_' })[0].ToString(); Add(_shipImage); _descriptions = new YnText[descriptionText.Count]; for (int i = 0; i < descriptionText.Count; i++) { _descriptions[i] = new YnText("Fonts/Messages", descriptionText[i], new Vector2(_container.X + 20, (_container.Y + 20) + 25 * i), Color.White); _descriptions[i].Scale = new Vector2(0.8f) * SpaceGame.GetScale(); _descriptions[i].Color = Color.White; Add(_descriptions[i]); } }
public MessageBoxButton(MessageBoxButtonType type, string text) { button = new YnEntity("Misc/button"); Add(button); label = new YnText("Font/kozuka_20", text); label.Color = Color.White; Add(label); }
public ItemLabelText(string label, string content) { _label = new YnText("Font/kozuka_30", label); _label.Color = Color.White; Add(_label); _content = new YnText("Font/kozuka_20", content); _content.Color = Color.White; Add(_content); }
public void CreateTitle(string message) { _title = new YnText("Fonts/Titles", message); _title.LoadContent(); _title.Initialize(); _title.Position = new Vector2( (float)(_container.X + _container.Width / 2 - (_title.Width / 2)), (float)(_container.Y + 10)); _title.Color = Color.White; Add(_title); }
protected List <MenuItem> items; // Elements du menu /// <summary> /// Représente un écran de menu standard avec un titre et des items /// </summary> public BaseMenu(string name, string title, int numItems) : base(name) { _background = new YnEntity(Assets.TextureMenuBase); Add(_background); // 1 - Le titre _title = new YnText(Assets.FontKozuka30, title); _title.Color = Color.GhostWhite; _title.Scale = new Vector2(1.5f, 1.5f); Add(_title); items = new List <MenuItem>(numItems); }
public GameUI(SpacePlayer [] players) { int nbPlayer = players.Length; minutes = 0; seconds = 0; milliseconds = 0; Vector2 scale = SpaceGame.GetScale(); _guiGroup = new YnGroup(2); _scoreText = new YnText("Fonts/ScoresUI", "0"); _scoreText.Color = Color.Wheat; Add(_scoreText); _timeText = new YnText("Fonts/ScoresUI", "00:00:000"); _timeText.Color = Color.Wheat; Add(_timeText); _playerWeaponBox = new PlayerWeaponBox[nbPlayer]; for (int i = 0; i < nbPlayer; i++) { // Si 2 joueurs on a un alignement en bas int x = (i * 1100) + 25; int y = 700; // Sinon les joueurs 1 et 2 sont en haut // Et les autres en bas if (nbPlayer > 2) { // Joueurs 1 et 2 if (i < 2) { y = 25; } // Joueurs 3 et 4 else { x = ((i - 2) * 1100) + 25; y = 700; } } _playerWeaponBox[i] = new PlayerWeaponBox(x, y, players[i], ref scale); Add(_playerWeaponBox[i]); } }
public ProgressBar(int x, int y, string labelText) { borderSize = 1; backgroundBar = new YnSprite(new Rectangle(x, y, 130, 20), Color.White); Add(backgroundBar); foregroundBar = new YnSprite(new Rectangle(x + borderSize, y + borderSize, backgroundBar.Width - (2 * borderSize), backgroundBar.Height - (2 * borderSize)), Color.Blue); Add(foregroundBar); label = new YnText("Fonts/HUD", labelText); label.Scale = new Vector2(0.80f, 0.80f); label.Color = Color.White; Add(label); }
public MenuItem(string text, int itemPosition, bool selected) { _itemPosition = itemPosition; _selected = selected; _buttonNormal = new YnSprite(Vector2.Zero, "Misc/button"); Add(_buttonNormal); _contentText = new YnText("Font/kozuka_20", text); _contentText.Color = Color.White; Add(_contentText); MouseOver += _buttonNormal_MouseOver; MouseLeave += _buttonNormal_MouseLeave; }
public GameHUD() { itemsCount = 0; nbItemsCollected = 0; itemsCounter = new YnText("Font/Desiree_20", "{0} / {1} Cristaux"); itemsCounter.Scale = new Vector2(1.2f); itemsCounter.Color = TextColor; Add(itemsCounter); scoreText = new YnText("Font/Desiree_20", "0 pt"); scoreText.Scale = new Vector2(1.4f); scoreText.Color = TextColor; Add(scoreText); scoreCounterEntity = new YnEntity("UI/needle"); Add(scoreCounterEntity); timeText = new YnText("Font/Desiree_30", "00 : 00"); timeText.Scale = new Vector2(2.0f); timeText.Color = TextColor; Add(timeText); itemsCounterEntity = new YnEntity("UI/needle"); Add(itemsCounterEntity); timeCounterWheelEntity = new YnEntity("UI/topWheel"); Add(timeCounterWheelEntity); timeCounterNeedleEntity = new YnEntity("UI/needle-watch"); Add(timeCounterNeedleEntity); miniMapLeftBorder = new YnEntity("UI/mapBorderLeft"); Add(miniMapLeftBorder); miniMapBottomBorder = new YnEntity("UI/mapBorderBottom"); Add(miniMapBottomBorder); bottomBar = new YnEntity(new Rectangle(0, 0, YnG.Width, (int)ScreenHelper.GetScaleY(40)), Color.Black); bottomBar.Alpha = 0.4f; Add(bottomBar); bottomLogo = new YnEntity("UI/bottomWheel"); Add(bottomLogo); highlightTimer = new YnTimer(1000); highlightTimer.Completed += highlightTimer_Completed; }
public override void LoadContent() { base.LoadContent(); _levelTiles = new YnEntity[GameConfiguration.LevelCount]; YnText levelText = null; int cursor = 0; float x = (int)ScreenHelper.GetScaleX(65); float y = (int)ScreenHelper.GetScaleX(145); float maxWidth = (int)(YnG.Width / 4 - ScreenHelper.GetScaleX(90)); float offsetX = ScreenHelper.GetScaleX(40); float offsetY = ScreenHelper.GetScaleY(35); float paddingX = 1.25f; YnText.DefaultColor = Color.Yellow; for (int i = 0; i < GameConfiguration.LevelCount; i++) { _levelTiles[i] = new YnEntity("Misc/mapPreview"); _levelTiles[i].LoadContent(); if (i == 4) { y += (int)(maxWidth + offsetY); cursor = 0; } x = (cursor++ *maxWidth * paddingX) + offsetX; _levelTiles[i].Position = new Vector2(x, y); _levelTiles[i].Name = "level_" + (i + 1); _levelTiles[i].Scale = new Vector2((float)(maxWidth / _levelTiles[i].Width), (float)(maxWidth / _levelTiles[i].Height)); Add(_levelTiles[i]); levelText = new YnText(Assets.FontKozuka30, (i + 1).ToString()); levelText.LoadContent(); levelText.Scale = new Vector2(1.5f); levelText.Position = new Vector2( _levelTiles[i].X + _levelTiles[i].ScaledWidth / 2 - levelText.ScaledWidth / 2, _levelTiles[i].Y + _levelTiles[i].ScaledHeight / 2 - levelText.ScaledHeight / 2); Add(levelText); } }
public PopupState(string name) : base(name, false) { int y = YnG.Height / 2 - ((YnG.Height / 4) / 2); _background = new YnSprite(new Rectangle(0, y, YnG.Width, (int)(ScreenHelper.GetScaleY(300))), Color.WhiteSmoke); _background.Alpha = 0.9f; Add(_background); _headerBackground = new YnEntity(new Rectangle((int)_background.X, (int)_background.Y, YnG.Width, (int)ScreenHelper.GetScaleY(50)), Color.DarkGray); Add(_headerBackground); _title = new YnText(Assets.FontKozuka30, "Fin de partie"); _title.Color = Color.White; _title.Scale = ScreenHelper.GetScale() * 1.25f; Add(_title); _content = new YnText(Assets.FontKozuka20, "Vous avez terminé le niveau, que voulez vous faire ?"); _content.Color = Color.Black; _content.Scale = ScreenHelper.GetScale() * 1.1f; Add(_content); _waitMessage = new YnText(Assets.FontKozuka30, "Chargement en cours..."); _waitMessage.Color = Color.White; _waitMessage.Scale = ScreenHelper.GetScale() * 1.2f; _waitMessage.Active = false; Add(_waitMessage); _itemActionA = new MessageBoxButton(MessageBoxButtonType.Cancel, "Menu"); _itemActionA.Position = new Vector2(_background.Width / 3, _background.Y + _background.Height - ScreenHelper.GetScaleY(100)); _itemActionA.MouseClicked += (s, e) => OnActionMenu(new MessageBoxEventArgs(false, true)); _itemActionA.Scale = ScreenHelper.GetScale(); Add(_itemActionA); _itemActionB = new MessageBoxButton(MessageBoxButtonType.Validate, "Suivant"); _itemActionB.Position = new Vector2((_background.Width / 3) * 2, _itemActionA.Y); _itemActionB.MouseClicked += (s, e) => OnActionMenu(new MessageBoxEventArgs(true, false)); _itemActionB.Scale = ScreenHelper.GetScale(); Add(_itemActionB); _enabled = true; }
public PlayerWeaponBox(int x, int y, SpacePlayer player, ref Vector2 scale) { X = x; Y = y; _playerLabel = new YnText("Fonts/HUD", player.PlayerName, new Vector2(X, Y), Color.Green); Add(_playerLabel); _healthBar = new ProgressBar(0, 0, "Energy"); Add(_healthBar); _shieldBar = new ProgressBar(0, 0, "Shield"); Add(_shieldBar); _primaryWeaponType = new WeaponItem(0, 0, "Red", Color.Blue, Color.DarkCyan, Assets.LaserBlue, player.PrimaryWeaponType, true); Add(_primaryWeaponType); _secondaryWeaponType = new WeaponItem(0, 0, "Red", Color.Blue, Color.DarkCyan, Assets.Missile, player.SecondaryWeaponType, true); Add(_secondaryWeaponType); }
public MenuItem(string text, Rectangle rectangle, int position, bool selected = false) { _itemPosition = position; _selected = selected; SetRectangle(ref rectangle); _background = new YnSprite(Rectangle, BorderColor); _background.Alpha = 0.0f; Add(_background); _foreground = new YnSprite(new Rectangle((int)X, (int)Y, rectangle.Width - BigBorderSize, rectangle.Height - BigBorderSize), BackgroundColor); Add(_foreground); _contentText = new YnText("Fonts/Menu", text); _contentText.Color = Color.White; Add(_contentText); _transition = new YnTransitionEffect(350.0f, 250.0f); }
public WeaponItem(int x, int y, string texte, Color backgroundColor, Color foregroundColor, string logoAsset, WeaponType id, bool selected = false) { X = x; Y = y; Identifier = id; _selector = new YnSprite(new Rectangle((int)X, (int)Y, 130, 20), foregroundColor); _selector.Visible = selected; _selector.Color *= 0.35f; Add(_selector); _label = new YnText("Fonts/HUD", texte, new Vector2(X, Y), Color.Yellow); _label.Scale = new Vector2(0.75f, 0.75f); Add(_label); _image = new YnSprite(new Vector2(X, Y), logoAsset); _image.Scale = new Vector2(0.4f); Add(_image); }
public MenuState(string name) : base(name, "", 3) { YnG.ShowMouse = true; _checkForNext = false; _checkForHover = false; menuItemIndex = 0; menuItemSelector = new YnEntity("UI/menuItemBar"); Add(menuItemSelector); string[] itemNames = new string[5] { MazeLang.Text.Menus.New, MazeLang.Text.Menus.Choose, MazeLang.Text.Menus.Options, MazeLang.Text.Menus.Credits, MazeLang.Text.Menus.Exit }; menuItems = new YnText[5]; for (int i = 0, l = itemNames.Length; i < l; i++) { menuItems[i] = new YnText("Font/kozuka_30", itemNames[i]); menuItems[i].Color = Color.White; menuItems[i].Name = "mi_" + i; menuItems[i].MouseClicked += MenuState_MouseClicked; menuItems[i].MouseOver += MenuState_MouseOver; if (i > 2) { menuItems[i].Scale = new Vector2(0.75f); } Add(menuItems[i]); } _background.AssetName = Assets.TextureMenuTitle; }
public ScoreState(bool saveScore = false) : base("Scores", 1) { //background = new YnEntity("Backgrounds/options"); //Add(background); int scoreSize = Registry.ScoreManager.GameScores.Count; int x = (int)SpaceGame.GetScaleX(150); for (int i = 0; i < scoreSize; i++) { YnText text = new YnText("Fonts/Menu", String.Format("{0}", _playerScore[i].GetDetailedMenuString(7, 7)), new Vector2(x, 130 + i * 55), Color.White); text.Scale = new Vector2(1.2f) * SpaceGame.GetScale(); Add(text); } Rectangle rectangle = new Rectangle( YnG.Width / 2 - (int)SpaceGame.GetScaleX(MenuItem.SmallItemWidth) / 2, YnG.Height - (int)SpaceGame.GetScaleY(75), (int)SpaceGame.GetScaleX(MenuItem.SmallItemWidth), (int)SpaceGame.GetScaleY(MenuItem.SmallItemHeight)); MenuItem item = new MenuItem("Menu", rectangle, 0, false); item.ItemTextSize = SpaceGame.GetScale(); item.MouseClicked += new EventHandler <MouseClickEntityEventArgs>(item_MouseJustClicked); item.MouseLeave += new EventHandler <MouseLeaveEntityEventArgs>(item_MouseLeave); item.MouseOver += new EventHandler <MouseOverEntityEventArgs>(item_MouseOver); Add(item); items.Add(item); if (saveScore) { _playerScore.Update(); _playerScore.Record(); } }
protected bool _kinectValidedAction; // Indique si l'item a été validé après le temps d'activation #endif /// <summary> /// Représente un écran de menu standard avec un titre et des items /// </summary> public BaseMenu(string title, int numItems) : base("basemenu", true) { // 1 - Le titre _title = new YnText("Fonts/Menu", title); _title.Color = Color.GhostWhite; _title.Scale = new Vector2(1.5f, 1.5f); Add(_title); string pointerAssetName = Assets.MouseCursor; #if COMPLETE kinect = KinectSensorController.Instance; _lastKinectPosition = Vector3.Zero; // Aucune action validée pour le moment _kinectValidedAction = false; // Evenements kinect _timerKinectOver = new YnTimer(KinectTimerDuration, 0); _timerKinectOver.Completed += new EventHandler <EventArgs>(_timerKinectOver_Completed); _timerKinectOver.ReStarted += new EventHandler <EventArgs>(_timerKinectOver_ReStarted); _transitionKinectOver = new YnTransition(KinectTimerDuration); if (kinect.IsAvailable) { pointerAssetName = Assets.KinectCursor; } #endif items = new List <MenuItem>(numItems); // Le curseur de souris/Kinect _handSelector = new YnEntity(pointerAssetName); }
public SceneState(string name) : base(name, false) { _vocalSynthetizer = new VocalSynthetizer(); InitParcours(); _menuIsShown = false; _visitedScreens = new Dictionary <string, bool>(); // 18 écrans _itemsOnScreen = new List <YnEntity>(); _narationText = new YnText("Fonts/GameText", "Dummy"); _narationText.Color = Color.DarkBlue; _narationText.Scale = new Vector2(1.5f) * Yna.Engine.Helpers.ScreenHelper.GetScale().X; _narationTimer = new YnTimer(3500); _narationTimer.Completed += (s, e) => _narationText.Active = false; _leftSceneHitbox = new Rectangle(0, _arrowHitboxSize, _arrowHitboxSize, YnG.Height - (97 - 25) - 2 * _arrowHitboxSize); _topSceneHitbox = new Rectangle(_arrowHitboxSize, 0, YnG.Width - 2 * _arrowHitboxSize, _arrowHitboxSize); _rightSceneHitbox = new Rectangle(YnG.Width - _arrowHitboxSize, _arrowHitboxSize, _arrowHitboxSize, YnG.Height - (97 - 25) - 2 * _arrowHitboxSize); _bottomSceneHitbox = new Rectangle(_arrowHitboxSize, YnG.Height - (97 - 25) - _arrowHitboxSize, YnG.Width - 2 * _arrowHitboxSize, _arrowHitboxSize); _menuHitbox = new Rectangle(YnG.Width / 2 - _buttonWidth / 2, YnG.Height - _buttonHeight, _buttonWidth, _buttonHeight); int padding = 30; int imageHalfSize = 30; int imageSize = imageHalfSize * 2; _goLeft = new YnEntity("Textures/icone-fleche-gauche", new Vector2(padding, YnG.Height / 2 - imageHalfSize)); _goLeft.Visible = false; _goLeft.Name = "go_left"; _goLeft.MouseClicked += (s, e) => GoLeft(); _goUp = new YnEntity("Textures/icone-fleche-haut", new Vector2(YnG.Width / 2 - imageHalfSize, padding)); _goUp.Visible = false; _goUp.Name = "go_up"; _goUp.MouseClicked += (s, e) => GoUp(); _goRight = new YnEntity("Textures/icone-fleche-droite", new Vector2(YnG.Width - padding - imageSize, YnG.Height / 2 - imageHalfSize)); _goRight.Visible = false; _goRight.Name = "go_right"; _goRight.MouseClicked += (s, e) => GoRight(); _goDown = new YnEntity("Textures/icone-fleche-bas", new Vector2(YnG.Width / 2 - imageHalfSize, YnG.Height - padding - imageSize - 97 + 25)); _goDown.Visible = false; _goDown.Name = "go_down"; _goDown.MouseClicked += (e, s) => GoDown(); _menuClosedY = YnG.Height - 25; _menuOpenedY = YnG.Height - 97; _menuBackground = new YnEntity("Textures/liste-inventaire", new Vector2(0, _menuClosedY)); int iconPadding = 15; int x = iconPadding; int y = YnG.Height - 60; _menuIcon = new YnEntity("Textures/btn-menu", new Vector2(x, y)); _menuIcon.Visible = false; _menuIcon.MouseClicked += (e, s) => { if (!_menuIcon.Visible) { return; } }; y = YnG.Height - 69; x = YnG.Width - iconPadding - 80; _notesIcon = new YnEntity("Textures/btn-notes", new Vector2(x, y)); _notesIcon.Visible = false; _notesIcon.MouseClicked += (e, s) => { if (!_notesIcon.Visible) { return; } // TODO Afficher les notes if (ImlostGame.Debug) { Console.WriteLine("Clicked on NOTES"); } }; _inventory = new List <InventoryItem>(); _itemImages = new Dictionary <string, YnEntity>(); foreach (InventoryItem item in ImlostGame.InventoryItems.Values) { YnEntity img = new YnEntity(item.AssetName); img.Visible = false; _itemImages.Add(item.Code, img); } _ambianceManager = new AmbianceManager(); }
private int GetIndex(YnText item) { return(int.Parse(item.Name.Split(new char[] { '_' })[1])); }