public L2Intro(Texture2D playertxture, Texture2D playerattack, Texture2D portaltxture, Song song, SpriteFont font, Texture2D buttontx2d, Texture2D buttontx2dhover, Texture2D tshirt) : base(playertxture, portaltxture, song) { button = new Button(buttontx2d, buttontx2dhover, font, "Continue", new Vector2(120, 270)); this.font = font; this.tshirt = tshirt; player = new Player(playermove, playerattack, new Vector2(0, 0)); }
public virtual void Update(GameTime gameTime, Player p) { timer += gameTime.ElapsedGameTime; if (speedoffset == Vector2.Zero) { deathtimer -= gameTime.ElapsedGameTime; } if (deathtimer <= TimeSpan.Zero) { if (draw) { draw = false; deathtimer = new TimeSpan(0, 0, 5); } else { try { Game1.levellist[Game1.level - 1].enemies.Remove(this); } catch(NullReferenceException e) { e.ToString(); } } } if (!isAngry) { if (timer > randomtime) { random = Game1.rand.Next(8); randomtime = new TimeSpan(0, 0, Game1.rand.Next(1, 3)); timer = TimeSpan.Zero; count++; if (pos.X < 300) { if (pos.X > 10) { if (pos.Y > 10) { if(pos.Y < 300) { if (random == 1) { dir = Vector2.Zero; dir.X = .7f; } else if (random == 2) { dir = Vector2.Zero; dir.X = -.7f; } else if (random == 3 && !firsttime) { dir = Vector2.Zero; dir.Y = .7f; } else if (random == 4) { dir = Vector2.Zero; dir.Y = -.7f; } else { dir = Vector2.Zero; } if (count > 2) { firsttime = false; } } else { dir = Vector2.Zero; dir.Y = -.7f; } } else { dir = Vector2.Zero; dir.Y = .7f; } } else { dir = Vector2.Zero; dir.X = .7f; } } else { dir = Vector2.Zero; dir.X = -.7f; } } rotation = (float)Math.Atan2(dir.Y, dir.X); } if (speedoffset != Vector2.Zero && isAngry) { if (p._position.X - 2 > pos.X) { dir.X = 1; } else if (p._position.X - 2 < pos.X) { dir.X = -1; } if (p._position.Y + 5 > pos.Y) { dir.Y = 1; } else if (p._position.Y + 5 < pos.Y) { dir.Y = -1; } Vector2 distance = p._position - pos; rotation = (float)Math.Atan2(distance.Y, distance.X); } rotation *= (float)(180 / Math.PI); while (rotation > 360) { rotation -= 360; } if (rotation <= 45 && rotation >= -45) { direction = Direction.Right; source = sources[0]; effect = SpriteEffects.None; } else if (rotation >= 45 && rotation <= 135) { direction = Direction.Up; source = sources[2]; effect = SpriteEffects.FlipVertically; } else if (rotation >= 135 || rotation <= -135) { direction = Direction.Left; source = sources[0]; effect = SpriteEffects.FlipHorizontally; } else if (rotation >= -135 && rotation <= -45) { direction = Direction.Down; source = sources[2]; effect = SpriteEffects.None; } speed = Vector2.Lerp(speed, dir, 0.05f); if (p.Hitbox.Intersects(Hitbox) && p.State != PlayerState.Interacting && speedoffset != Vector2.Zero) { Vector2 temp = new Vector2(p.speedx * p.speed * 2f, p.speedy * p.speed * 2f); p.speedx = dir.X * 2f; p.speedy = dir.Y * 2f; speed = temp; p.resetspeed = false; p.State = PlayerState.Interacting; Game1.healthManager.health -= damage / Game1.inventory.armour.defence; isAngry = true; } Hitbox.X = (int)((pos.X - (ori.X / 2))); Hitbox.Y = (int)((pos.Y - (ori.Y / 2))); pos += speed * speedoffset * Game1.deathspeed; pos.X = MathHelper.Clamp(pos.X, 10, 300); pos.Y = MathHelper.Clamp(pos.Y, 10, 300); deadparticles.Update(gameTime); }
public L1(Texture2D playermove, Texture2D playerattack, Texture2D grass, Texture2D grassbarrier, Texture2D foamsword, Texture2D portal, Song song, Texture2D tooltiptxture, SpriteFont font, Texture2D keytxture, Texture2D keydown) : base(playermove, portal, song) { _grassbarrier = grassbarrier; _grass = grass; _foamsword = foamsword; sword = new ItemOnFloor(Items.GetItem("Foam Sword"), new Vector2(150, 30), 0.5f); particleSystems = new ParticleSystem(sword.item.texture, 0f, 1f, Color.White, new Vector2(-1, 1), new Vector2(-1, 1), new TimeSpan(0, 0, 3), 1f, 1f, 1f, 1f, new Vector2(150, 30), new TimeSpan(1000, 0, 1, 0, 0), true, 0.00002f); int dy = 50; float layerDepth = .2f; for (int i = 0; i < 8; i++) { grassBarriers.Add(new Sprite(_grassbarrier, new Vector2(75, dy), null, 0f, Vector2.Zero, 0.5f, SpriteEffects.None, layerDepth, Color.White, _grassbarrier.Width/2, _grassbarrier.Height/2)); dy += 25; layerDepth += .001f; } dy = 50; layerDepth = .2f; for (int i = 0; i < 8; i++) { grassBarriers.Add(new Sprite(_grassbarrier, new Vector2(200, dy), null, 0f, Vector2.Zero, 0.5f, SpriteEffects.None, layerDepth, Color.White, _grassbarrier.Width/2, _grassbarrier.Height/2)); dy += 25; layerDepth += .001f; } background = new Background(_grass); player = new Player(playermove, playerattack, new Vector2(145, 250)); portalobj = new Portal(portal, new Vector2(155, 250)); spinning = false; //movetip\\ List<ToolTipObj> objects = new List<ToolTipObj>(); objects.Add(new Text(.3f, new Vector2(110, 17), .91f, font, "Use WASD to move")); List<Key> keys = new List<Key>(); keys.Add(new Key(.3f, new Vector2(50, 25), .911f, font, 'W', keytxture, keydown)); keys.Add(new Key(.3f, new Vector2(50, 25), .91f, font, 'A', keytxture, keydown)); keys.Add(new Key(.3f, new Vector2(50, 25), .91f, font, 'S', keytxture, keydown)); keys.Add(new Key(.3f, new Vector2(50, 25), .91f, font, 'D', keytxture, keydown)); ToolTipPlayer tooltipPlayer = new ToolTipPlayer(playermove, playerattack, new Vector2(80, 25), .91f, 1f/5.5f, Direction.Down); objects.Add(tooltipPlayer); movetipkeyanim = new KeyAnimation(keys, tooltipPlayer); foreach (Key thekey in keys) { objects.Add(thekey); } movetip = new ToolTip(tooltiptxture, objects); movetip.enabled = !movetip.enabled; movetip.velocity = new Vector2(0, 0f); //pickuptip\\ List<ToolTipObj> pickupobjects = new List<ToolTipObj>(); pickupobjects.Add(new Text(.25f, new Vector2(85, 20), .91f, font, "Press K to pick up items and drops")); List<Key> pickupkeys = new List<Key>(); pickupkeys.Add(new Key(.3f, new Vector2(40, 25), .91f, font, 'K', keytxture, keydown)); pickupkeys.Add(new Key(.3f, new Vector2(40, 25), .91f, font, 'K', keytxture, keydown)); pickuptipkeyanim = new KeyAnimation(pickupkeys); foreach (Key thekey in pickupkeys) { pickupobjects.Add(thekey); } pickuptip = new ToolTip(tooltiptxture, pickupobjects); pickuptip.enabled = false; }