示例#1
0
        public override void Update()
        {
            GameObject coll = Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position), "obj_player");

            if (coll != null)
            {
                if (Room.FindObject("obj_fairy") == null && Room.FindObject("obj_boss") == null)
                {
                    if (!HasPlayedSound)
                    {
                        Room.Sounds.PlaySound(levelCompleteSound);
                        HasPlayedSound = true;
                    }
                    Room nextRoom = new Room(Room.Engine);
                    //find the room number
                    if (Room.CurrentFileName.Substring(0, 12).Equals("Levels/level"))
                    {
                        int    endInd = Room.CurrentFileName.IndexOf('.');
                        string numStr = Room.CurrentFileName.Substring(12, endInd - 12);
                        int    num    = Convert.ToInt32(numStr);
                        nextRoom.Load("Levels/level" + (num + 1) + ".json");
                        Room.Engine.ChangeRoom(nextRoom);
                    }
                }
            }
            base.Update();
        }
示例#2
0
        /*public void ChangeHitbox(Rectangle rect)
         * {
         *  Hitbox = rect;
         * }*/

        public override void Update()
        {
            GameObject coll = Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position), "obj_player");

            if (coll != null)
            {
                ((PlayerObject)coll).Damage(1);
            }
            base.Update();
        }
示例#3
0
        public override void Update()
        {
            if (cooldown > 0)
            {
                cooldown--;
            }
            if (animationindex == -10)
            {
                goingUp = true;
            }
            if (animationindex == 14)
            {
                goingUp = false;
            }
            if (goingUp)
            {
                animationindex++;
            }
            else
            {
                animationindex--;
            }
            Vector2      vel   = Velocity;
            PlayerObject reimu = (PlayerObject)Room.FindObject("reimu");

            if (moving)
            {
                if (facingRight)
                {
                    vel.X = MoveSpeed;
                }
                else
                {
                    vel.X = -MoveSpeed;
                }
                if ((Math.Pow(Position.X - reimu.Position.X, 2) + Math.Pow(Position.Y - reimu.Position.Y, 2)) < (400 * 400))
                {
                    if (cooldown <= 0)
                    {
                        moving = false;
                    }
                }
            }
            else
            {
                Rectangle hitbox    = reimu.GetHitbox();
                Vector2   size      = new Vector2(hitbox.Width, hitbox.Height);
                Vector2   playerPos = reimu.Position + (size / 2);
                Vector2   fairyPos  = Position + (size / 2);

                /*Vector2 fairyOnScreenPos = fairyPos - Room.ViewOffset;
                 * Vector2 playerRelativePos = playerPos - fairyOnScreenPos;*/
                float dir = (float)Math.Atan2(playerPos.Y - Position.Y, playerPos.X - Position.X);

                ProjectileObject proj = new ProjectileObject(Room, fairyPos, dir, 3, 1, "obj_player");
                proj.TimeToLive = 1000;
                proj.Sprite.Change(BulletSprite);
                proj.Sprite.Angle  = dir;
                proj.Sprite.Size   = new Vector2(16, 16);
                proj.Sprite.Origin = proj.Sprite.Size / 2;
                proj.Sprite.Offset = -(new Vector2(Sprite.Size.X / 2, Sprite.Size.Y / 2 + (Sprite.Size.Y - Sprite.Size.X) / 2));
                Room.GameObjectList.Add(proj);
                Room.Sounds.PlaySound(ShootSound);

                moving   = true;
                cooldown = 60;
            }
            Velocity = vel;
            if (Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position, new Vector2(1, 0)), "obj_block") != null)
            {
                facingRight = false;
            }
            if (Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position, new Vector2(-1, 0)), "obj_block") != null)
            {
                facingRight = true;
            }
            if (Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position, new Vector2(0, 1)), "obj_block") != null && !(Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position, new Vector2(-1, 1)), "obj_block") != null))
            {
                facingRight = true;
            }
            if (Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position, new Vector2(0, 1)), "obj_block") != null && !(Room.FindCollision(PlatformerMath.AddVectorToRect(GetHitbox(), Position, new Vector2(1, 1)), "obj_block") != null))
            {
                facingRight = false;
            }

            base.Update();
        }