public ShipProfileItem(SpaceShipType type, bool selected = false) { _shipType = type; Selected = selected; int widthOverTwo = YnG.Width / 2; int heightOverTwo = YnG.Height / 2; _border = new YnSprite(new Rectangle( (int)SpaceGame.GetScaleX(450), (int)SpaceGame.GetScaleY(150), (int)SpaceGame.GetScaleX(650), (int)SpaceGame.GetScaleY(400)), Color.White); Add(_border); _container = new YnSprite(new Rectangle( (int)_border.X + BorderSize, (int)_border.Y + BorderSize, _border.Width - BorderSize * 2, _border.Height - BorderSize - 2), new Color(0, 108, 165)); Add(_container); _shipImage = new YnSprite(); spaceShipDescription = Registry.SpaceShipDescriptions[(int)_shipType]; }
public StarsScrolling() : base() { _background = new YnSprite(new Rectangle(0, 0, YnG.Width, YnG.Height), Color.Black); Add(_background); _numStars = 100; }
public MenuState() : base("Codename : SpaceGame", 6) { // Les elements qui passent sous le menu _planetLogo = new YnEntity(Assets.PlanetRed); Add(_planetLogo); _shipSprite = new YnSprite(Assets.PlayerShipA); Add(_shipSprite); _kinectLogo = new YnEntity("Misc/kinect"); Add(_kinectLogo); // 3 - Le menu string[] itemNames = { "Arcade", "Multiplayers", "Scores", "Options", "Credits", "Exit" }; int x = (YnG.Width / 2) - MenuItem.BigItemWidth / 2; int y = 0; for (int i = 0; i < 3; i++) { y = (int)SpaceGame.GetScaleY(185) + i * MenuItem.BigItemHeight * 2; MenuItem item = new MenuItem(itemNames[i], new Rectangle( (int)(x), (int)(y), MenuItem.BigItemWidth, MenuItem.BigItemHeight), i, i == 0 ? true : 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); } x = 0; y = YnG.Height - (MenuItem.SmallItemHeight + MenuItem.SmallItemHeight / 3); for (int j = 3; j < 6; j++) { x = (int)SpaceGame.GetScaleX(350) + (j - 3) * MenuItem.SmallItemWidth * 2; MenuItem item = new MenuItem(itemNames[j], new Rectangle(x, y, MenuItem.SmallItemWidth, MenuItem.SmallItemHeight), j, false); item.ItemTextSize = new Vector2(0.6f) * 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); } }
public void GenerateMap(int[,] tiles) { _tiles = tiles != null ? tiles : _tiles; Clear(); DetermineCeilSize(); _ceilSize = (int)(YnG.Width / _mapWidth * _zoomFactor); X = YnG.Width - (_mapWidth * _ceilSize); Y = 0; Rectangle rectangle = Rectangle.Empty; Color color = _groundColor; Rectangle rectanglePlayer = new Rectangle(0, 0, _ceilSize, _ceilSize); for (int y = 0; y < _mapHeight; y++) { for (int x = 0; x < _mapWidth; x++) { rectangle = new Rectangle((int)X + x * _ceilSize, (int)Y + y * _ceilSize, _ceilSize, _ceilSize); YnSprite ceil = null; switch (_tiles[x, y]) { case 1: color = _groundColor; break; case 2: color = _wallColor; break; case 5: color = GameConfiguration.EnabledMinimapItems ? Color.Blue : _groundColor; break; case 6: color = GameConfiguration.EnabledMinimapItems ? Color.Orange : _groundColor; break; case 8: color = Color.Red; break; case 9: rectanglePlayer.X = x; rectanglePlayer.Y = y; color = _groundColor; break; } ceil = new YnSprite(rectangle, color); Add(ceil); } } _player = new YnSprite(rectanglePlayer, Color.Green); Add(_player); foreach (YnEntity sceneObject in Members) { sceneObject.Alpha = 0.6f; } }
private YnSprite createPlanet(string asset, Vector2 position) { YnSprite planet = new YnSprite(asset); planet.Position = position; planet.Viewport = new Rectangle(0, 0, YnG.Width, YnG.Height * 12); planet.AllowAcrossScreen = true; planet.Velocity = new Vector2(0.1f, 1.0f); planet.Scale = new Vector2(1.5f, 1.5f); return(planet); }
/// <summary> /// Action when a button is released /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void Pad_Released(object sender, MouseReleaseEntityEventArgs e) { YnSprite button = sender as YnSprite; if (button != null) { PadButtons direction = GetDirection(button.Name); VirtualPadPressedEventArgs vpEvent = new VirtualPadPressedEventArgs(direction); OnReleased(vpEvent); } }
public MessageBox(int width, int height) { _alpha = 0.6f; _rectangle = new Rectangle(0, 0, width, height); _container = new YnSprite("UI/MessageBox"); _container.LoadContent(); Add(_container); CenterToScreen(width, height); }
public override void Initialize() { base.Initialize(); Random rand = new Random(DateTime.Now.Millisecond); for (int i = 0; i < _numStars; i++) { Color color = Color.Gray; Rectangle rectangle = new Rectangle(0, 0, 2, 2); switch (rand.Next(6)) { case 0: rectangle = new Rectangle(0, 0, 1, 1); color = Color.Yellow; break; case 1: rectangle = new Rectangle(0, 0, 2, 2); color = Color.Yellow; break; case 2: rectangle = new Rectangle(0, 0, 1, 1); color = Color.DarkGray; break; case 3: rectangle = new Rectangle(0, 0, 2, 2); color = Color.DarkGray; break; case 4: rectangle = new Rectangle(0, 0, 1, 1); color = Color.AntiqueWhite; break; case 5: rectangle = new Rectangle(0, 0, 2, 2); color = Color.AntiqueWhite; break; } YnSprite star = new YnSprite(rectangle, color); star.Position = new Vector2(rand.Next(YnG.Width), rand.Next(YnG.Height)); star.Velocity = new Vector2(0, (float)(rand.NextDouble() * 1.5)); star.AllowAcrossScreen = true; Add(star); } }
// TODO ajouter un PlayerBundle ou un PlayerInfo ou un truc dans ce genre public SpacePlayer(PlayerIndex playerIndex, SpaceShipDescription description) : base() { AssetName = description.AssetName; _playerIndex = playerIndex; _shipSpeed = description.ShipSpeed; _playerProfile = new PlayerProfile(String.Format("Player {0}", ((int)playerIndex) + 1), (int)playerIndex); _firstWeaponType = (WeaponType)description.PrimaryWeaponId; _secondWeaponType = (WeaponType)description.SecondaryWeaponId; _bonusLevel = BonusLevel.None; VelocityMax = 0.95f; ForceInsideScreen = true; _live = 3; // TODO : case _shields = new YnSprite("Ship/Shield/Shields"); _weaponManager = new WeaponManager(this); _weaponManager.Initialized = true; _weaponManager.AssetsLoaded = true; LayerDepth = 0.4f; _playerTouchedTimer = new YnTimer(1500, 0); _playerTouchedTimer.Completed += _playerTouchedTimer_Completed; #if COMPLETE kinect = KinectSensorController.Instance; if (_playerIndex == PlayerIndex.One) { _kinectPlayerIndex = KinectPlayerIndex.One; } else if (_playerIndex == PlayerIndex.Two) { _kinectPlayerIndex = KinectPlayerIndex.Two; } #endif LoadContent(); }
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 InteriorBackground() : base() { position = 0; borderSize = 75; borderLeft = new YnSprite(new Rectangle(0, 0, borderSize, YnG.Height), new Color(64, 64, 64)); borderRight = new YnSprite(new Rectangle(YnG.Width - borderSize, 0, borderSize, YnG.Height), new Color(64, 64, 64)); angularLeft = new YnSprite(new Rectangle(borderSize, 0, borderSize, YnG.Height), new Color(48, 48, 48)); angularRight = new YnSprite(new Rectangle(YnG.Width - (2 * borderSize), 0, borderSize, YnG.Height), new Color(48, 48, 48)); center = new YnSprite(new Rectangle((2 * borderSize), 0, YnG.Width - (4 * borderSize), YnG.Height), new Color(32, 32, 32)); _playableViewport = new Rectangle((int)angularLeft.X + angularLeft.Width / 2, 0, (int)angularRight.X + angularRight.Width / 2, YnG.Height); }
/// <summary> /// Initialize with default generated textures /// </summary> protected void InitializeWithoutTextures() { Color normal = Color.LightSteelBlue; Color strafe = Color.LightSlateGray; _upPad = new YnSprite(_inputRectangle, normal); _downPad = new YnSprite(_inputRectangle, normal); _leftPad = new YnSprite(_inputRectangle, strafe); _rightPad = new YnSprite(_inputRectangle, strafe); _strafeLeftPad = new YnSprite(_inputRectangle, normal); _strafeRightPad = new YnSprite(_inputRectangle, normal); _buttonActionA = new YnSprite(_inputRectangle, Color.Crimson); _buttonActionB = new YnSprite(_inputRectangle, Color.SpringGreen); _buttonPause = new YnSprite(_inputRectangle, Color.SlateBlue); }
public VirtualPad() { _margin = new Vector2(3, 2); string path = String.Format("{0}/{1}/", "Misc/Pad", (GameConfiguration.VirtualPadStyle == VirtualPadStyle.Modern) ? "Modern" : "Normal"); _upPad = new YnSprite(path + "kbup"); _upPad.Name = "Button_" + ((int)ControlDirection.Up).ToString(); Add(_upPad); _downPad = new YnSprite(path + "kbdown"); _downPad.Name = "Button_" + ((int)ControlDirection.Down).ToString(); Add(_downPad); _strafeLeftPad = new YnSprite(path + "kbstrleft"); _strafeLeftPad.Name = "Button_" + ((int)ControlDirection.StrafeLeft).ToString(); Add(_strafeLeftPad); _strafeRightPad = new YnSprite(path + "kbstrright"); _strafeRightPad.Name = "Button_" + ((int)ControlDirection.StrafeRight).ToString(); Add(_strafeRightPad); _leftPad = new YnSprite(path + "kbleft"); _leftPad.Name = "Button_" + ((int)ControlDirection.Left).ToString(); Add(_leftPad); _rightPad = new YnSprite(path + "kbright"); _rightPad.Name = "Button_" + ((int)ControlDirection.Right).ToString(); Add(_rightPad); foreach (YnSprite sprite in this) { sprite.Parent = null; if (GameConfiguration.ControlMode == ControlMode.New) { sprite.MouseClick += new EventHandler <MouseClickEntityEventArgs>(Pad_Click); } else { sprite.MouseClicked += new EventHandler <MouseClickEntityEventArgs>(Pad_Click); } sprite.Alpha = 0.7f; } }
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 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); }
private void Pad_Click(object sender, MouseClickEntityEventArgs e) { YnSprite button = sender as YnSprite; if (button != null) { string [] temp = button.Name.Split(new char [] { '_' }); int index = int.Parse(temp [1].ToString()); ControlDirection direction = (ControlDirection)index; VirtualPadPressedEventArgs vpEvent = new VirtualPadPressedEventArgs(direction); if (e.JustClicked) { OnJustPressed(vpEvent); } else { OnPressed(vpEvent); } } }
public void AddExplosion(Rectangle rectangle) { YnSprite explode; int recycledSize = _recycled.Count; if (recycledSize > 0) { explode = Members.ElementAt(_recycled.Pop()) as YnSprite; explode.Position = new Vector2( (rectangle.X + rectangle.Width / 2) - (explode.Width / 5) / 2, (rectangle.Y + rectangle.Height / 2) - explode.Height / 2); explode.Revive(); } else { explode = new YnSprite("SFX/Fx_Fireball"); explode.LoadContent(); explode.PrepareAnimation(94, 94); explode.AddAnimation("0", new int[] { 0, 1, 2, 3, 4 }, 50, false); explode.Scale = new Vector2(0.75f); explode.Position = new Vector2( (rectangle.X + rectangle.Width / 2) - (explode.Width / 5) / 2, (rectangle.Y + rectangle.Height / 2) - explode.Height / 2); // On supprime l'animation quand elle est terminée explode.GetAnimation("0").AnimationComplete += (sender, e) => { explode.Kill(); _recycled.Push(Members.IndexOf(explode)); }; Add(explode); } }