public MapBuilder(Game1 useForLoadingContent, int screenWidth, int screenHeight, GraphicsDeviceManager graphics, int tileSize, Player thisPlayer, SpriteBatch spriteBatch, Dictionary<long, Player> players) { this.useForLoadingContent = useForLoadingContent; this.screenWidth = screenWidth; this.screenHeight = screenHeight; this.graphics = graphics; this.tileSize = tileSize; this.thisPlayer = thisPlayer; this.spriteBatch = spriteBatch; this.players = players; }
public Npc(AnimatedTexture animatedTexture, AnimatedTexture deathTexture, Dictionary<long, Player> players, Player thisPlayer, Vector2 position, int life, int damage, int bounty) { this.animatedTexture = animatedTexture; this.deathTexture = deathTexture; this.players = players; this.thisPlayer = thisPlayer; this.Position = position; this.Life = life; this.damage = damage; this.Bounty = bounty; }
public StartScreen(SpriteBatch spriteBatch, PlayerCard humanCard, PlayerCard alienCard, Player thisPlayer, MapBuilder mapBuilder, Texture2D checkedTexture, Texture2D unCheckedTexture, SpriteFont font) { this.spriteBatch = spriteBatch; this.humanCard = humanCard; this.alienCard = alienCard; this.thisPlayer = thisPlayer; this.mapBuilder = mapBuilder; this.checkedTexture = checkedTexture; this.unCheckedTexture = unCheckedTexture; //clientCheckBox = new CheckBox(unCheckedTexture, checkedTexture, "Client", new Rectangle(20, 300, 50, 50), spriteBatch, font); //clientCheckBox.IsChecked = true; serverCheckBox = new CheckBox(unCheckedTexture, checkedTexture, "Server", new Rectangle(20, 360, 50, 50), spriteBatch, font); }
protected override void LoadContent() { BGM = Content.Load<Song>("Super Mario World Overworld"); MediaPlayer.Play(BGM); MediaPlayer.IsRepeating = true; tornadoSE = Content.Load<SoundEffect>("TornadoSE"); gunShotSE = Content.Load<SoundEffect>("GunShotSE"); pumpkinCollideSE = Content.Load<SoundEffect>("pumpkinCollideSE"); chickenCollideSE = Content.Load<SoundEffect>("chickenCollideSE"); popSE = Content.Load<SoundEffect>("popSE"); HomerSE = Content.Load<SoundEffect>("HomerSE"); PeterSE = Content.Load<SoundEffect>("PeterSE"); bossDieExplosionSE = Content.Load<SoundEffect>("bossDieExplosion"); spriteBatch = new SpriteBatch(GraphicsDevice); whiteTexture2D = Content.Load<Texture2D>("whitePic"); //used to draw collision rectangle greenTexture2D = Content.Load<Texture2D>("greenPic"); //used to draw collision rectangle winMessage1 = Content.Load<Texture2D>("WinMessage1"); winMessage2 = Content.Load<Texture2D>("WinMessage2"); winMessage3 = Content.Load<Texture2D>("WinMessage3"); loseMessage = Content.Load<Texture2D>("LoseMessage"); #region Menu && Screens Gamestate = GameState.MAIN; Main = new GameObject(Content.Load<Texture2D>("MainMenu"), graphics); Main.Scale = 1.0f; Main.position = new Vector2(640, 360); Main.visible = false; Control = new GameObject(Content.Load<Texture2D>("Controls"), graphics); Control.Scale = 1.0f; Control.position = new Vector2(640, 360); Control.visible = false; End = new GameObject(Content.Load<Texture2D>("End Screen"), graphics); End.Scale = 1.0f; End.position = new Vector2(640, 360); End.visible = false; Upgrade = new GameObject(Content.Load<Texture2D>("UpgradeScreen"), graphics); Upgrade.Scale = 0.75f; Upgrade.position = new Vector2(640, 350); Upgrade.visible = false; #endregion #region Scrolling scrolling1 = new Scrolling(Content.Load<Texture2D>("Springfield1"), new Rectangle(0, 0, 1000, 720)); scrolling2 = new Scrolling(Content.Load<Texture2D>("Springfield2"), new Rectangle(1000, 0, 1000, 720)); scrolling3 = new Scrolling(Content.Load<Texture2D>("Springfield3"), new Rectangle(2000, 0, 1000, 720)); #endregion #region Players Homer1 = new Player(Content.Load<Texture2D>("Homer"), Content.Load<Texture2D>("Bullet"), Content.Load<SpriteFont>("SpriteFont1"), graphics); Homer1.bulletScale = 0.75f; Peter1 = new Player2(Content.Load<Texture2D>("PeterSpriteSheetFull"), Content.Load<Texture2D>("Bullet"), Content.Load<SpriteFont>("SpriteFont1"), graphics); Peter1.bulletScale = 0.75f; #endregion #region Enemies totalNumOfPumpkins = 10; pumpkin = new GameObject[totalNumOfPumpkins]; for (int i = 0; i < totalNumOfPumpkins; i++) { pumpkin[i] = new GameObject(Content.Load<Texture2D>("Pumpkin"), graphics); pumpkin[i].Scale = 0.35f; pumpkin[i].position = new Vector2(nextValue = r.Next(800, 2950), nextValue = r.Next(425, 700)); pumpkin[i].visible = true; pumpkin[i].speed = 2f; } totalNumOfWhiteChickens = 10; whiteChicken = new WhiteChicken[totalNumOfWhiteChickens]; for (int i = 0; i < totalNumOfWhiteChickens; i++) { whiteChicken[i] = new WhiteChicken(Content.Load<Texture2D>("WhiteChicken"), Content.Load<Texture2D>("HealthBar2"), graphics); whiteChicken[i].Scale = 1f; whiteChicken[i].position.X = (r.Next(800, 2950)); whiteChicken[i].position.Y = (r.Next(275, 550)); whiteChicken[i].spriteVisible = true; //whiteChicken[i].speed = 2f; //by default speed is 2f in WhiteChicken.cs } ExplodeSprite = new GameObject(Content.Load<Texture2D>("Explode"), graphics); ExplodeSprite.visible = false; ExplodeSprite.Scale = 0.75f; ExplodeSprite.position = new Vector2(); totalNumOfEggCrackStages = 3; BossEgg = new GameObject[totalNumOfEggCrackStages]; for (int i = 0; i < totalNumOfEggCrackStages; i++) { BossEgg[i] = new GameObject(Content.Load<Texture2D>("Egg" + i), graphics); BossEgg[i].Scale = 1.5f; BossEgg[i].position = new Vector2(2850, 550); BossEgg[i].visible = false; BossEgg[i].speed = 2f; } EggCrackStage = 0; //will start at stage 0 and cause BossEgg[0].visible = true; loopInt = 0; Boss = new GiantChicken(Content.Load<Texture2D>("GiantChicken"), Content.Load<Texture2D>("Tornado"), Content.Load<Texture2D>("HealthBar2"), graphics); Boss.position.X = 2850; Boss.position.Y = 400; Boss.spriteVisible = false; #endregion }
public void GetFire(Dictionary<Int64, Player> players, List<Weapon> weaponDefinitions, Player thisPlayer, PlayerBase bloodNpc, AnimatedTexture bloodTexture, List<Bomb> bombs) { long who = msg.ReadInt64(); Int64 playerId = msg.ReadInt64(); byte weaponId = msg.ReadByte(); byte angle = msg.ReadByte(); int x = msg.ReadInt32(); int y = msg.ReadInt32(); Weapon weaponDefinition = weaponDefinitions[weaponId]; Weapon weapon = players[who].primaryWeapons.SingleOrDefault(w => w.Name == weaponDefinition.Name) ?? players[who].secondaryWeapons.SingleOrDefault(w => w.Name == weaponDefinition.Name); if (weapon == null) { weapon = weaponDefinition.Clone(); players[who].AddWeapon(weapon); } players[who].SelectWeapon(weapon); if (weapon.IsPrimary) { if (players[who].SelectedPrimaryWeapon.UserTexture.IsDone) players[who].SelectedPrimaryWeapon.UserTexture.Start(); if (players[who].SelectedPrimaryWeapon.EffectTexture.IsDone) players[who].SelectedPrimaryWeapon.EffectTexture.Start(); thisPlayer.TakeDamage(players[who].SelectedPrimaryWeapon.Damage, new Vector2((float)-Math.Sin(((double)angle) / 40), (float)Math.Cos(((double)angle) / 40)), players[who].SelectedPrimaryWeapon.Push); thisPlayer.Life -= weapon.Damage; thisPlayer.Position = thisPlayer.Position - new Vector2((float)-Math.Sin(((double)angle) / 40), (float)Math.Cos(((double)angle) / 40)) * 50; bloodNpc = thisPlayer; bloodTexture.Start(); } else { Vector2 vel = new Vector2(x, y) - thisPlayer.ScreenCenter; vel.Normalize(); vel *= 10; if (weapon.Name == "grenade") { bombs.Add(new Bomb(players[who].SelectedSecondaryWeapon.UserTexture, players[who].SelectedSecondaryWeapon.EffectTexture, 30, 35, 10, new Vector2(players[who].Position.X + thisPlayer.ScreenCenter.X, players[who].Position.Y + thisPlayer.ScreenCenter.Y), vel, 500, 500, 100, true, new Vector2(x, y) + players[who].Position)); } else { if (players[who].SelectedSecondaryWeapon.Bomb == null) { Bomb bomb = new Bomb(players[who].SelectedSecondaryWeapon.UserTexture, players[who].SelectedSecondaryWeapon.EffectTexture, 30, 35, 10, new Vector2(players[who].Position.X + thisPlayer.ScreenCenter.X, players[who].Position.Y + thisPlayer.ScreenCenter.Y), Vector2.Zero, 50, 500, 500, false, Vector2.Zero); players[who].SelectedSecondaryWeapon.Bomb = bomb; bombs.Add(bomb); } else { players[who].SelectedSecondaryWeapon.Bomb.Explode(); players[who].SelectedSecondaryWeapon.Bomb = null; } } } }
public void SendShoting(Player thisPlayer, Int64 shotPlayerId, List<Weapon> weaponDefinitions, Weapon weapon, int x, int y) { NetOutgoingMessage om = client.CreateMessage(); om.Write((byte)MessageRouts.Fire); om.Write((Int64)shotPlayerId); om.Write((byte)weaponDefinitions.IndexOf(weaponDefinitions.SingleOrDefault(w => w.Name == weapon.Name))); om.Write((byte)((-Math.Atan2(thisPlayer.Direction.X, thisPlayer.Direction.Y) * 40))); om.Write((int)x); om.Write((int)y); client.SendMessage(om, NetDeliveryMethod.Unreliable); }
public void SendPosition(Player player) { NetOutgoingMessage om = client.CreateMessage(); om.Write((byte)0); om.Write((int)player.Position.X); om.Write((int)player.Position.Y); om.Write((int)(-Math.Atan2(player.Direction.X, player.Direction.Y) * 1000)); om.Write(!player.SelectedPrimaryWeapon.UserTexture.IsDone); om.Write(player.IsHuman); client.SendMessage(om, NetDeliveryMethod.Unreliable); }
public void GetPosition(Dictionary<Int64, Player> players, List<Weapon> weaponDefinitions, Game1 forLoadingContent, SpriteBatch spriteBatch) { long who = msg.ReadInt64(); int x = msg.ReadInt32(); int y = msg.ReadInt32(); int angle = msg.ReadInt32(); bool isShooting = msg.ReadBoolean(); bool isHuman = msg.ReadBoolean(); if (players.ContainsKey(who)) { players[who].Position = new Vector2(x, y); players[who].Direction = new Vector2(-(float)Math.Sin(((float)angle) / 1000), (float)Math.Cos(((float)angle) / 1000)); } else { players[who] = new Player { PlayerType = isHuman ? Player.PlayerTypes.human : Player.PlayerTypes.alien, AnimatedTexture = new AnimatedTexture(isHuman ? forLoadingContent.Content.Load<Texture2D>("PlayerSprites/dudespritesheet") : forLoadingContent.Content.Load<Texture2D>("PlayerSprites/alienspritesheet"), 4, 4, true, 20, spriteBatch, 50, 50, new Vector2(25, 25), null), Id = who }; Weapon weaponDefinition = weaponDefinitions.SingleOrDefault(w => w.Name == "gun"); players[who].AddWeapon(weaponDefinition.Clone()); } }