예제 #1
0
 public void Draw(SpriteBatch sb, int playerY, Camera2D Camera)
 {
     // Background
     sb.Draw(SpriteLoader.GetTexture(TextureID), new Rectangle(0, 0, Width, Height), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 0.0f);
     // Objects
     foreach (Object obj in Objects)
     {
         if (Camera.IsInView(obj.Position, SpriteLoader.GetTexture(obj.TextureId)))
         {
             obj.Draw(sb, playerY);
         }
     }
     // NPCs
     foreach (NPC npc in NPCs)
     {
         if (Camera.IsInView(npc.Position, SpriteLoader.GetTexture(npc.TextureId)))
         {
             npc.Draw(sb, playerY);
         }
     }
     // Exits
     foreach (Exit ext in Exits)
     {
         if (Camera.IsInView(ext.Position, SpriteLoader.GetTexture(ext.TextureId)))
         {
             ext.Draw(sb, playerY);
         }
     }
 }
예제 #2
0
 public void Update(Player player, Camera2D Camera)
 {
     if (player.CheckIfAttackConnected)
     {
         foreach (NPC npc in NPCs)
         {
             if (Camera.IsInView(npc.Position, SpriteLoader.GetTexture(npc.TextureId)))
             {
                 if (Collision.CheckCollision(player.GetAttackBox(), new Rectangle((int)npc.Position.X, (int)npc.Position.Y, SpriteLoader.GetTexture(npc.TextureId).Width, SpriteLoader.GetTexture(npc.TextureId).Height)))
                 {
                     // SET NPC Health to whatever!
                     // Handle if below set amount
                     npc.Position = new Vector2(-1000, -1000);
                 }
             }
         }
         player.CheckIfAttackConnected = false;
     }
     if (player.CheckIfMovementCollision)
     {
         foreach (Object obj in Objects)
         {
             if (Camera.IsInView(obj.Position, SpriteLoader.GetTexture(obj.TextureId)))
             {
                 if (Collision.CheckCollision(new Rectangle((int)player.Position.X, (int)player.Position.Y, player.Width, player.Height), obj.source))
                 {
                     // Undo Player movement
                     player.ResetPosition();
                 }
             }
         }
         player.CheckIfMovementCollision = false;
     }
 }