title: How to make an object "jump" in pygame
body: <p>I was trying to create something along the lines of mario, this is far from perfect I know. Anyways, while trying to make the "jumping" method I ran into an issue - The jumping doesn't work the way I intended it to work. Whenether I click the space bar my red square moves up and down randomly, I have to press the spacebar and hold it to complete a jump and even then its not perfect. Sometimes when I hold the space bar for too long the red square will continue to jump again. Is there any way to solve this issue? I'd be very thankful for any help, thanks.</p>
  
  <pre><code>import pygame, time, math, random, sys
  from pygame.locals import *
  
  background = pygame.image.load("assets/MarioBackground.png")
  
  def events():
      for event in pygame.event.get():
          if event.type == pygame.QUIT:
              sys.exit()
  
  W, H = 640, 400
  HW, HH = W / 2, H / 2
  AREA = W * H
  FPS = 60
  bg_x = 0
  isJump = False
  jumpCount = 10
  
  pygame.init()
  clock = pygame.time.Clock()
  screen = pygame.display.set_mode((W,H))
  pygame.display.set_caption("Mario")
  
  class Mario():
  
      def __init__(self, x, y):
          self.x = x
          self.y = y
  
      def draw(self):
          pygame.draw.rect(screen, (255,0,0), (self.x, self.y, 40, 40))
  
      def move(self):
          global bg_x
          if pressed_keys[K_RIGHT] and bg_x &gt; -920:
              if self.x &gt; 490:
                  bg_x -= 5
              else:
                  self.x += 5
          if pressed_keys[K_LEFT] and self.x &gt; 5:
              self.x -= 5
  
      def jump(self):
          global jumpCount, isJump
          if pressed_keys[K_SPACE]:
              if jumpCount &gt;= -10:
                  isJump = True
                  print(jumpCount)
                  neg = 1
                  if jumpCount &lt; 0:
                      neg = -1
                  self.y -= (jumpCount ** 2) * 0.1 * neg
                  jumpCount -= 1
              else:
                  isJump = False
                  jumpCount = 10
  
  
  
  
  mario = Mario(50, 270)
  
  while True:
      clock.tick(FPS)
      events()
      pressed_keys = pygame.key.get_pressed()
  
      screen.blit(background, (bg_x,0))
  
  
      mario.move()
      mario.draw()
      mario.jump()
  
  
  
      pygame.display.update()
  </code></pre>