Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
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);
 }
Ejemplo n.º 3
0
        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;
        }