title: Pygame// Collision On a Square isnt working well
body: <p>so the problem here with my collision is that when ever I Jumping on one of my squares when I jump on the middle its good but when I jump on the side it pushes me back??? is there a way to fix this so when I jump on my square it doesn't push me back it just lands on the square without any problems? here's a gif 
  <a href="https://gyazo.com/a5ee7bba49dc557a2a42b64808618d7b" rel="nofollow noreferrer">https://gyazo.com/a5ee7bba49dc557a2a42b64808618d7b</a>   everything is good when you jump on the middle of the square but when you jump on top of the square sides you will get pushed back but on the middle you stay there my collision is located at the bottom of the script</p>
  
  <pre><code>import pygame
  pygame.init()
  
  
  window = pygame.display.set_mode((500,500))
  pygame.display.set_caption("for test")
  
  # player1
  x = 50
  y = 340
  height = 50
  width = 50
  isJump = False
  jumpCount = 10
  speed = 5
  fall = 0
  #----------------------
  
  # Square2
  xcord = 390
  ycord = 320
  heights = 60
  widths = 60
  #-----------------------
  
  # Square2
  cordx = 300
  cordy = 390
  hts = 60
  wts = 60
  #-----------------------
  #FPS
  FPS = 60
  clock = pygame.time.Clock()
  #--------------------
  # main Loop
  
  runninggame = True
  while runninggame:
      clock.tick(FPS)
      for event in pygame.event.get():
          if event.type == pygame.QUIT:
              runninggame = False
  
      window.fill((0,0,0))
      Player = pygame.draw.rect(window, (105, 0, 105), (x,y,height,width))
      Enemy = pygame.draw.rect(window, (255, 0, 255), (xcord,ycord,heights,widths))
      Enemy2 = pygame.draw.rect(window, (155, 155, 155), (cordx,cordy,hts,wts))
  
  
      keys = pygame.key.get_pressed()
      if keys[pygame.K_LEFT]:
          x -= speed
      if keys[pygame.K_RIGHT]:
          x += speed
  
      if not isJump:
  
          y += fall
          fall += 1
  # ----------------------------------------------------- # enem1 collisio
  # both of my 2 enemy squares collisions push me back when ever I Jump on the top of them on there sides but when I jump on the middle of of both of them it seems to work if I just want it so when I jump on both of my squares I just don't get pushed back 
          Player.topleft = (x, y)
          collide = False
          if Player.colliderect(Enemy):
              collide = True
              y = Enemy.top - Player.height
              if Player.right &gt; Enemy.left and  Player.left &lt; Enemy.left:
                  x = Enemy.left - Player.width
              if Player.left &lt; Enemy.right and  Player.right &gt; Enemy.right:
                  x = Enemy.right
  
  #------------------------------------------- Enemy 2 Colision
          if Player.colliderect(Enemy2):
              collide = True
              y = Enemy2.top - Player.height
              if Player.right &gt; Enemy2.left and  Player.left &lt; Enemy2.left:
                  x = Enemy2.left - Player.width
              if Player.left &lt; Enemy2.right and  Player.right &gt; Enemy2.right:
                  x = Enemy2.right
  
          if Player.bottom &gt;= 500:
              collide = True
              y = 500 - Player.height
  
          if collide:
              if keys[pygame.K_SPACE]:
                  isJump = True
              fall = 0
  #------------------------------------------------------------------------
      else:
          if jumpCount &gt; 0:
              y -= (jumpCount * abs(jumpCount)) * 0.5
              jumpCount -= 1
          else: 
              jumpCount = 10
              isJump = False
  
      pygame.display.update()
  pygame.quit  
  </code></pre>