Ejemplo n.º 1
0
    def main(self):
        """ Runs the main loop. """
        start = time.time()
        cps = 8  # Cycles per second to run simulation. Set to None for no limit.
        cycle = 0

        starting_players = self.players[::-1]

        while len(self.players) > 0:

            # Check keyboard inputs and window closing
            events = pygame.event.get()
            self.check_globals(events)

            dead_players = set()

            # Update players
            for player in self.players[::-1]:
                player.update(events)
                if player in self.players:
                    dead_players |= player.move()
                    self.last_active_player = player
                if Game.pickle_best_agent:
                    try:
                        player.controller.agent.pop.pickle_best_agent = Game.pickle_best_agent
                    except AttributeError as a:
                        pass

            for player in dead_players:
                player.die()

            if Game.simulate and self.render_enable:
                self.display.update(Game.vis_mode)
                self.render_settings()
                pygame.display.flip()

            # Run at a fixed number of cycles per second
            if Game.simulate:
                while time.time() < start + 1 / cps:
                    pass
                start += 1 / cps
            else:
                start = time.time()

            cycle += 1

        if Game.render_enable:
            self.display.update(Game.vis_mode)
            self.render_settings()
            pygame.display.flip()

        if len(starting_players):
            winner = max(starting_players, key=lambda p: p.age)
            false_winner = False
            for item in starting_players:
                if item.age >= winner.age and item is not winner:
                    false_winner = True
            if not false_winner:
                winner.age *= 2
        return [bot.age * SURVIVAL_SCORE for bot in self.bot_list]
Ejemplo n.º 2
0
Archivo: game.py Proyecto: Ran4/comgud
 def update(self, key):
     self.gameTime += 1
     self.dt = 1/60.
     
     if self.gameTime % 30 == 0: self.blackHoleSize += 1
     elif self.gameTime % 30 == 5: self.blackHoleSize -= 1
         
     #Quicker gameplay: continously increase all player's gravityFactor
     #if self.gameTime % 15 == 0:
     #    for player in self.players:
     #        player.po.gravityFactor += 0.01
     
     if self.gameTime > 1 and self.gameTime % con.POWERUP_SPAWN_DELAY == 0:
         p = Powerup()
         p.respawn(self)
         self.powerups.append(p)
     
     for powerup in self.powerups:
         powerup.update(self, key)
     
     for bullet in self.bullets:
         bullet.update(self, key)
     
     self.bullets = filter(lambda x: not x.markedForRemoval, self.bullets)
     self.powerups = filter(lambda x: not x.markedForRemoval, self.powerups)
         
     for player in self.players:
         player.update(self, key)
     
     self.players = filter(lambda x: x.livesLeft > 0, self.players)
Ejemplo n.º 3
0
def update():
	player.update()
	current_screen.update()
	for enemy in current_screen.enemies:
		if player.rect.colliderect(enemy):
			load_screen(checkpoint[2])
			player.x = checkpoint[0]
			player.y = checkpoint[1]
	camera.update()
Ejemplo n.º 4
0
def update(event, screen):
    for grid_cols in grids:
        for grid in grid_cols:
            grid.update(event)
            grid.render(screen)
    for city in corners:
        city.update(event)
        city.render(screen)
    for player in players:
        player.update(event)
        player.render(screen)
Ejemplo n.º 5
0
class main():
    pygame.init()
    ventana = pygame.display.set_mode((1000, 600))
    pygame.display.set_caption("Ventana Principal")
    clock = pygame.time.Clock()
    clock = pygame.time.Clock()
    cursor1 = recursos.Cursor()
    imgFondo = pygame.image.load("Img/FondoP.png").convert()
    img1 = pygame.image.load("Img/spritesZ/ZCD2.png")
    botonZ = recursos.Boton(img1, 158, 450)
    img2 = pygame.image.load("Img/spritesC/CCD2.png")
    botonC = recursos.Boton(img2, 358, 450)
    img3 = pygame.image.load("Img/spritesN/NCD2.png")
    botonN = recursos.Boton(img3, 558, 450)
    img4 = pygame.image.load("Img/spritesS/SCD2.png")
    botonS = recursos.Boton(img4, 718, 440)
    director = Director()
    jugando = False
    ejecutando = True

    while ejecutando == True:
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN:
                if cursor1.colliderect(botonZ.rect):
                    director.setBuilder(ConstructorZombis())
                    jugando = True
                if cursor1.colliderect(botonC.rect):
                    director.setBuilder(ConstructorCaballeros())
                    jugando = True
                if cursor1.colliderect(botonN.rect):
                    director.setBuilder(ConstructorNinjas())
                    jugando = True
                if cursor1.colliderect(botonS.rect):
                    director.setBuilder(ConstructorSatiros())
                    jugando = True
                player = director.getHeroe()
            if event.type == pygame.QUIT:
                ejecutando = False

        if jugando:
            pygame.mouse.set_visible(False)
            ventana.blit(imgFondo, [0, 0])
            player.dibujar(ventana)
            player.update()
            clock.tick(25)

        else:
            ventana.blit(imgFondo, [0, 0])
            cursor1.actualizar()
            botonZ.actualizar(ventana)
            botonC.actualizar(ventana)
            botonN.actualizar(ventana)
            botonS.actualizar(ventana)

        pygame.display.flip()

    pygame.quit()
Ejemplo n.º 6
0
def game(level):
    #######################################################################################
    # Programmer Name: Alec
    # Date: 5/20/17
    # Purpose: handles the logic for in-game needs
    # Input: level
    # Output: updated attributes and information on elements, player, and rays inside level
    #######################################################################################
    # localize attributes from current level
    player = level.player  # the player
    element_list = level.element_list  # all elements
    # determine active elements
    level.active_element_list = []  # clear the list of active elements
    for element in element_list:
        if element.is_active(player):
            level.active_element_list.append(element)
    # update the player
    player.update(element_list)  # the player's collisions and rays
Ejemplo n.º 7
0
def main():
	pygame.init()
	
	size= [constants.SCREEN_WIDTH,constants.SCREEN_HEIGHT]
	screen = pygame.display.set_mode(size)

	pygame.display.set_caption("Punks R Us")
	
	# Different pieces!
	map = Map()
	scene = Scene()
	npc_list = pygame.sprite.Group()
	item_list = pygame.sprite.Group()
	text_box = TextBox(self)
	
	character = charselect.CharSelect()
	
	# Getting the player character
	if character == "Quit":
		done = True
	else:
		# Create the player
		player = Player(character)
	
		player.rect.x = constants.SCREEN_WIDTH/2 - player.rect.width/2
		player.rect.y = constants.SCREEN_HEIGHT-45 - player.rect.height
	
	
	
	# Loop until the user clicks the close button.
	done = False
 
	# Used to manage how fast the screen updates
	clock = pygame.time.Clock()
	 
	# -------- Main Program Loop -----------
	while not done:
		# --- Main event loop
		for event in pygame.event.get(): # User did something
			if event.type == pygame.QUIT: # If user clicked close
				done = True # Flag that we are done so we exit this loop
				
			# Call event check function
			check_event(event,map,scene,player,npc_list,item_list)
	 
		# --- Game logic should go here
		map.update()
		npc_list.update()
		item_list.update()
		player.update()
		scene.update()
	 
		# --- Drawing code should go here
	 
		# First, clear the screen to white. Don't put other drawing commands
		# above this, or they will be erased with this command.
		screen.fill(constants.BLACK)
		map.draw(screen)
		npc_list.draw(screen)
		player.draw(screen)
		item_list.draw(screen)
		if dialogue == True:
			for npc in npc_list:
				if npc.is_talk() == True:
					text = font.render(npc.current_text(player.who()),True,constants.WHITE)
					textsize = font.size(npc.current_text(player.who()))
					text_box.draw(screen,npc.what_box())
					textheight = text_box.rect.y + text_box.rect.height/2 - textsize[1]/2
					screen.blit(text, [constants.SCREEN_WIDTH/2-textsize[0]/2, textheight])
	 
		# --- Go ahead and update the screen with what we've drawn.
		pygame.display.flip()
	 
		# --- Limit to 60 frames per second
		clock.tick(60)
		
	pygame.quit()
Ejemplo n.º 8
0
#exit manager
running = True
clock = pygame.time.Clock()

while running:
    # for loop through the event queue
    for event in pygame.event.get():
        # Check for KEYDOWN event; KEYDOWN is a constant defined in pygame.locals, which we imported earlier
        if event.type == KEYDOWN:
            # If the Esc key has been pressed set running to false to exit the main loop
            if event.key == K_ESCAPE:
                running = False
        # Check for QUIT event; if QUIT, set running to false
        elif event.type == QUIT:
            running = False

    board.blitBoard(window)
    board.blitBreakableWalls(window)
    pressed_keys = pygame.key.get_pressed()
    if pressed_keys[pygame.K_SPACE] and bomb is None:
        x = player.x()
        y = player.y()
        bomb = bombe.Bomb(x, y, window)
    elif bomb is not None:
        bomb.draw(window)
    player.update(pressed_keys)
    player.draw(window)
    pygame.display.update()
    clock.tick(40)

Ejemplo n.º 9
0
            player.event_handle(event)

        # Update and draw everything on screen
        screen.blit(bg, (0, 0))

        for piece in basemap:
            piece.draw(screen)

        for piece in ornaments:
            if player.lives <= 0:
                piece.speed = 0
            piece.update()
            piece.draw(screen)

        if lose_counter >= 256:
            player.update(ornaments)
            player.draw(screen)

        if player.lives <= 0 and lose_counter:
            if lose_counter > 256:
                lose_counter -= 64
                lose_screen.set_alpha(256 - lose_counter % 256)
            else:
                lose_counter -= 1
                lose_screen.set_alpha(lose_counter % 256)

        if player.lives <= 0:
            if lose_counter <= 256:
                # TODO: You lost screen
                screen.blit(lose, (SCREEN[0] / 2 - 100, SCREEN[1] / 2 - 100))
            lose_screen.fill(WHITE)
Ejemplo n.º 10
0
moveX, moveY = 0, 0
gameLoop = True

while gameLoop:
    for event in pygame.event.get():
        if (event.type == pygame.KEYDOWN):
            if (event.key == pygame.K_d):
                moveX = 5
            elif (event.key == pygame.K_a):
                moveX = -5
            elif (event.key == pygame.K_w):
                player.jump()
        if (event.type == pygame.KEYUP):
            if (event.key == pygame.K_d):
                moveX = 0
            elif (event.key == pygame.K_a):
                moveX = 0

    window.fill((0, 0, 150))

    for block in blockList:
        block.render(window)

    player.x += moveX

    player.update(gravity, blockList)
    player.render(window)

    clock.tick(60)
    pygame.display.flip()
Ejemplo n.º 11
0
def update():
    em.update()
    player.update()
    bm.update(player)
    stars.update()
Ejemplo n.º 12
0
                        projectiles.projectiles(player, chosenElement, enemies,
                                                player.rect.center))

        screen.fill((0, 0, 0))  #reset screen, for clean animation

        background.makeBackground(screen, img, wallDown, sFloor, floor, tFloor,
                                  cFloor)

        allSprites.update(pygame.key.get_pressed())
        allSprites.draw(screen)
        for x in range(0, player.health):
            screen.blit(heart, (0 + (16 * x), 0))  #Display HP.
        screen.blit(pygame.image.load(element[tabCount]).convert(),
                    (0, 16))  #Display element.
        #Now service player after everything else.
        player.update(pygame.key.get_pressed())  #Update player
        if (player.health > 0 and player.invinc % 2 == 0):
            screen.blit(player.image, player.rect)  #Draw them if necessary
        #------Flashing invincibility------- created by Steven Goodchild
        pygame.display.flip()  #ACTUALLY display all the images
        clock.tick(
            60)  #all animation and timing is based on this 60fps counter

#--------------BOSS ROOM (LVL 2)-------------------
    startBossRoom = True
    if startBossRoom:  #first boss, so we don't have to clear the boss group
        player.center = (width / 2, height - 50)
        player.direction = 'up'  #reset player to spawn point and facing up
        player.obstacles = []
        allSprites = pygame.sprite.Group()
        allSprites.add(boss1)
Ejemplo n.º 13
0
def update():
    ball.update(player, cpu)
    player.update(ball)
    cpu.update(ball)
Ejemplo n.º 14
0
def update(dt):
  """
  Update game. Called once per frame.
  dt is the amount of time passed since last frame.
  If you want to have constant apparent movement no matter your framerate,
  what you can do is something like
  
  x += v * dt
  
  and this will scale your velocity based on time. Extend as necessary."""
  
  # Go through events that are passed to the script by the window.

  for event in pygame.event.get():

    # We need to handle these events. Initially the only one you'll want to care
    # about is the QUIT event, because if you don't handle it, your game will crash
    # whenever someone tries to exit.
    if event.type == QUIT:
      pygame.quit() # Opposite of pygame.init
      sys.exit() # Not including this line crashes the script on Windows. Possibly
      # on other operating systems too, but I don't know for sure.
    # Handle other events as you wish.

    if event.type == KEYDOWN:
      if event.key == pygame.K_w:
        player.moveY = -player.SPEED
      if event.key == pygame.K_s:
        player.moveY = player.SPEED
      if event.key == pygame.K_a:
        player.moveX = -player.SPEED
      if event.key == pygame.K_d:
        player.moveX = player.SPEED
      if event.key == pygame.K_e:
        if player.choppable and player.wood < 5:
          if player.thirsty or player.hungry:
            if "Oof" not in player.speech:
              player.speech.append("Oof")
          else:
            if world.trees[player.closestTree].length > 1:
              world.trees[player.closestTree].length -= 1
              player.wood += 1
              player.hunger += 5
              player.thirst += 5
      if event.key == pygame.K_j:
        if not player.hasJacket:
          if player.leather >= 2:
            player.hasJacket = True
            player.leather -= 2
      if event.key == pygame.K_h:
        if player.shelterValid():          
          if not world.shelterBuilt:
            if player.wood >= 3:
              world.createShelter()
              player.wood -= 3
            else:
              if "Not enough wood" not in player.speech:
                player.speech.append("Not enough wood")
          else:
            if "Cannot build here" not in player.speech:
              player.speech.append("Cannot build here")
        else:
          if "Cannot build here" not in player.speech:
            player.speech.append("Cannot build here")
      if event.key == pygame.K_f:
        if player.campfireValid():
          if player.wood >= 1:
            world.createFire()
            player.wood -= 1
      if event.key == pygame.K_1:
        player.eat()
      if event.key == pygame.K_2:
        player.drank()
      if event.key == pygame.K_SPACE and player.combatValid:
        if player.thirst > 70 or player.hunger > 70 or player.comfort < 30:
          if "Oof" not in player.speech:
            player.speech.append("Oof")
        else:
          if not world.animals[player.combatIndex].dead:
            world.animals[player.combatIndex].health -= 20 
            player.hunger += 10
            player.thirst += 10
          else:
            player.leather += 1
            world.animals.pop(player.combatIndex)

    if event.type == KEYUP:
      if event.key == pygame.K_w:
        player.moveY = 0
      elif event.key == pygame.K_s:
        player.moveY = 0
      elif event.key == pygame.K_a:
        player.moveX = 0
      elif event.key == pygame.K_d:
        player.moveX = 0
  # Has player nommed?
  if len(player.noms) > 0:
    player.nomTime += 1
    if player.nomTime >= 60:
      player.noms.pop(0)
      player.nomTime = 0
  if not player.gameOver:
    player.talk()
    player.gotWood()
    world.updateWorld()
    player.update()
    for animal in world.animals:
      animal.update()
Ejemplo n.º 15
0
        core.update(dt,boulders,sounds['explosion'])
        if core.hp <= 0 or player.died:
            score_text = 'last score : ' + str(score)
            gameover_text = "Game Over"
            game_state = GAME_STATES['Menu']
            pygame.mixer.music.stop()
            print('done')
            continue
        if(shooting):
            if player.can_shoot():
                bullets.append(player.shoot(scroll,display,sounds['shoot']))
        if move > 0:
            player.translate([player.speed*dt*1.5,0])
        elif move < 0:
            player.translate([-player.speed*dt,0])
        player.update(dt,sounds['jump'],boulders)
        for blt in bullets:
            blt.update(dt,boulders,tiles,sounds['hit'])
        for bder in boulders:
            bder.set_tiles(tiles)
            bder.update(dt)

    #---------------------------------------rendering---------------------------------------
        bg.render(display,scroll)
        #render_map(game_map_bg,display,bg_tileset,scroll,[],16)
        core.render(display,scroll)
        tiles = render_map(game_map,display,tileset,scroll,['1','2'])
        for bder in boulders:
            bder.render(display,scroll)
        for bullet in bullets:
            bullet.render(display,scroll)
Ejemplo n.º 16
0
def start_game(maze_template, player, delay=0, output=False):
    game_end = False
    display_grids = []

    player_position = [
        random.randint(1, MAP_SIZE - 2),
        random.randint(1, MAP_SIZE - 2)
    ]
    goal_position = [
        random.randint(1, MAP_SIZE - 2),
        random.randint(1, MAP_SIZE - 2)
    ]
    # player_position = [1,1]
    # goal_position = [1,3]
    while maze_template[player_position[0], player_position[1]] == 3:
        player_position = [
            random.randint(1, MAP_SIZE - 2),
            random.randint(1, MAP_SIZE - 2),
        ]
    while maze_template[goal_position[0], goal_position[1]] != 0:
        goal_position = [
            random.randint(1, MAP_SIZE - 2),
            random.randint(1, MAP_SIZE - 2),
        ]

    maze_display = np.copy(maze_template)

    maze_display[goal_position[0], goal_position[1]] = 2
    maze_display[player_position[0], player_position[1]] = 1

    player.new_game()
    if output:
        for j in range(10):
            display_grids.append(maze_display)
    i = 0
    while not game_end:
        i += 1
        new_goal_position = [0, 0]
        new_goal_position[0] = goal_position[0] + random.choice([-1, 1, 0])
        new_goal_position[1] = goal_position[1] + random.choice([-1, 1, 0])
        # goal_position[0] += 1
        # goal_position[1] += 1
        if (maze_template[new_goal_position[0], new_goal_position[1]] != 3
                and goal_position != player_position):
            goal_position = new_goal_position
        maze_display = np.copy(maze_template)
        maze_display[goal_position[0], goal_position[1]] = 2
        maze_display[player_position[0], player_position[1]] = 1
        if output:
            display_grids.append(maze_display)

        action = player.update(maze_template, player_position, goal_position)
        if i > 100:
            if output:
                a = 1 / 0
            else:
                action = "end"
        if action == "left":
            player_position[1] -= 1
        elif action == "right":
            player_position[1] += 1
        elif action == "up":
            player_position[0] -= 1
        elif action == "down":
            player_position[0] += 1
        elif action == "end":
            game_end = True
            if output:
                display(display_grids)
            break
        # Prep maze to be displayed to the observer
        maze_display = np.copy(maze_template)
        maze_display[goal_position[0], goal_position[1]] = 2
        maze_display[player_position[0], player_position[1]] = 1
        if output:
            display_grids.append(maze_display)
Ejemplo n.º 17
0
def run_level(level):
	player = level.player
	triggers = level.triggers
	entities = level.entities
	background_entities = level.background_entities
	camera = level.camera
	barbers = level.barbers

	while True:
		CLOCK.tick(FPS)

		key_presses = pygame.event.get(pygame.KEYDOWN)
		key_states = pygame.key.get_pressed()

		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				return 'quit'

		if key_states[pygame.K_r]:
			return 'restart'

		if key_states[pygame.K_ESCAPE]:
			return 'quit'

		if player.life_lost == True:
			display_life_lost_screen()
			player.life_lost = False

		player.update(key_presses, key_states, level)
		player.mustache.update()
		camera.update(player)

		if player.dead == True:
			display_death_screen()
			return 'dead'

		if player.mustache_numb == 4 and player.completed == False:
			display_sequence_screens(SCREENS_COMPLETED)
			player.completed = True


		# draw the background
		for y in range(26):
			for x in range(20):
				SCREEN.blit(IMAGES['bg_wall'], (x * TILESIZE, y * TILESIZE))

		for entity in background_entities:
			entity.update()
			if entity.image.get_rect().colliderect(SCREEN.get_rect()):
				SCREEN.blit(entity.image, camera.apply(entity))

		for entity in triggers:
			SCREEN.blit(entity.image, camera.apply(entity))

		for barber in barbers:
			barber.update(level)

		for entity in entities:
			if entity.image.get_rect().colliderect(SCREEN.get_rect()):
				SCREEN.blit(entity.image, camera.apply(entity))
				SCREEN.blit(player.mustache.image, camera.apply(player))

		pygame.display.update()
Ejemplo n.º 18
0
                player.changespeed((3 * speedFactor), 0)
            if event.key == pygame.K_d:
                player.changespeed((-3 * speedFactor), 0)
            if event.key == pygame.K_w:
                player.changespeed(0, (3 * speedFactor))
            if event.key == pygame.K_s:
                player.changespeed(0, (-3 * speedFactor))
            if event.key == pygame.K_RCTRL:
                shot = False

    # ALL EVENT PROCESSING SHOLD GO ABOVE THIS COMMENT

    # ALL GAME LOGIC SHOULD GO BELOW THIS COMMENT

    # ALL GAME LOGIC SHOULD GO ABOVE THIS COMMENT
    player.update(wall_list)

    for bullet in bullet_list:
        bullet.update()

        wall_hit_list = pygame.sprite.spritecollide(bullet, wall_list, False)

        for wall in wall_hit_list:
            bullet_list.remove(bullet)
            all_sprites_list.remove(bullet)

        if bullet.rect.y < -10 or bullet.rect.x > 1080:
            bullet_list.remove(bullet)
            all_sprites_list.remove(bullet)

    # ALL CODE TO DRAW SHOULD GO BELOW THIS COMMENT
Ejemplo n.º 19
0
Archivo: main.py Proyecto: th28/RPG
def main():
    pygame.mixer.pre_init(44100,-16,2,2048)
    pygame.mixer.init()
    pygame.init()
    screen = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT),pygame.FULLSCREEN)
    players = pygame.sprite.Group()
   
    npcs = pygame.sprite.Group()
    
    player = Player(960,0,"1.png",100,"Tom","elf")
    players.add(player)
    
    myStates = StateMachine()

    clock = pygame.time.Clock()
    #1920,960
    camera = Camera(complex_camera,1920,960)
    
    
    myWorld = World(players,npcs,screen,player,camera)
    diag = None
  
    interface = Interface(screen,player,myQuests)
    
    npcs.add(milton)
    npcs.add(jwood)
    myStates.addState("WORLD_STATE",myWorld)
    myStates.addState("INTF_STATE",interface)
    myStates.addState("DIAG_STATE",diag)
    
    keepGoing = True
    counter = 0
    
    currentState = "WORLD_STATE"

    manager = StateChangeManager(currentState,player)


    pygame.joystick.init()
    mypad = pygame.joystick.Joystick(0)
    mypad.init()
    
    
    
    while keepGoing:
        
        clock.tick(30)
        #print clock.get_fps()
        player.update(myWorld,dialog,manager,npcs,myStates)
        myStates.renderState(manager.getCurrentState(),manager)
        
        q1.update()
        myQuests.update()

        
        
        if mypad.get_axis(0) < -.8:
            
            player.go_down_left()
 
        elif player.change_x < 0 or player.change_y > 0:

            player.stop('xy')
            
        
           
        if mypad.get_axis(0) > .8:

            player.go_up_right()

            
        elif player.change_x > 0 or player.change_y < 0:
            player.stop('xy')
        
        #------------------------#
        
        if mypad.get_axis(1) < -.8:

            player.go_up_left()
        
        if mypad.get_axis(1) > .8:

            player.go_down_right()

        
                        
        
        if mypad.get_axis(0) > .7 and mypad.get_axis(1) > .7:
            print "fork"
            player.stop('xy')
            player.go_right()

        if mypad.get_axis(0) < -.7 and mypad.get_axis(1) > .7:
            print "fork"
            player.stop('xy')
            player.go_down()

        if mypad.get_axis(0) < -.7 and mypad.get_axis(1) < -.7:
            player.stop('xy')
            player.go_left()

        if mypad.get_axis(0) > .7 and mypad.get_axis(1) < -.7:
            player.stop('xy')
            player.go_up()
        
        
            
        for event in pygame.event.get():
            if event.type == KEYDOWN:
                if manager.getCurrentState() == "WORLD_STATE":
                    
                    if (event.key == K_a):
                        
                            
                        player.go_left()
                    
                    if (event.key == K_d):
                        
                    
                        player.go_right()
                    
                    if (event.key == K_s):
                        
                    
                        player.go_down()
                    
                    if (event.key == K_w):
                        
                    
                        player.go_up()
                        
                    if (event.key == K_e):

                        player.interact()

                if (event.key == K_m):
                    if manager.getCurrentState() == "WORLD_STATE":
                        manager.changeState("INTF_STATE")
                    
            if event.type == KEYUP:
                if event.key == pygame.K_a and player.change_x < 0:
                    player.stop("x")
                   
                if event.key == pygame.K_d and player.change_x > 0:
                    player.stop("x")
                    
                if event.key == pygame.K_w and player.change_y < 0:
                    player.stop("y")
                    
                if event.key == pygame.K_s and player.change_y > 0:
                    player.stop("y")
                    
                if event.key == pygame.K_e:
     
                    player.uninteract()
                    
            if event.type == QUIT:
                pygame.quit()
                sys.exit(0)
        
            
        pygame.display.update()
Ejemplo n.º 20
0
			DISPLAYSURF.fill(backgroundColor)
			DISPLAYSURF.blit(background,(0,0))
			# DISPLAYSURF.blit(title,((WIDTH//2)-title.get_width()//2,0))
			# Text overlays
			demandsStr = ""
			# for i in range(len(demand.goods)):
			# 	demandsStr += str(demand.goods[i])+": "+str(demand.price[i])+" | "
			demands = textFont.render(demandsStr, True, (fontBlk))
			dateUI = textFont.render(calendar.getDate(), True, (fontBlk))
			capital = textFont.render(("Capital: "+str(player.capital)), True, (fontBlk))
			DISPLAYSURF.blit(demands,(0+20,HEIGHT//2))
			DISPLAYSURF.blit(dateUI,(0,(HEIGHT-dateUI.get_height())))
			DISPLAYSURF.blit(capital,((WIDTH-capital.get_width()-20),(HEIGHT-capital.get_height())))
			# DISPLAYSURF.blit(dateUI,(((WIDTH//2)-dateUI.get_width()//2,((HEIGHT/)-dateUI.get_height()//2))
			# Objects
			for count, i in enumerate(goodsList):
				DISPLAYSURF.blit(i.sprite,(((70*count)+100),490))

			# This needs sorting as it's quite inefficient
			for count, i in enumerate(characterList):
				for j in settlementList:
					if j.getName() is characterList[count].getCurrentLocation():
						DISPLAYSURF.blit(i.sprite,(j.getX(),j.getY()))
			pygame.display.update()
			calendar.update()
			player.update()

			frameCount = 0
		else:
			frameCount += 1
		clock.tick(60)
Ejemplo n.º 21
0
def keys_check(player):
    keys = pygame.key.get_pressed()
    player.update(keys, MOUSE_SENSITIVITY)
Ejemplo n.º 22
0
                elif event.key == pygame.K_RIGHT:
                    player.move("right")
                elif event.key == pygame.K_UP:
                    player.move("up")
                elif event.key == pygame.K_DOWN:
                    player.move("down")
                elif event.key == pygame.K_p:
                    menus.pause()
                elif event.key == pygame.K_w:
                    done = True

            if event.type == pygame.KEYUP:
                if event.key == pygame.K_LEFT:
                    player.stop("left")
                elif event.key == pygame.K_RIGHT:
                    player.stop("right")
                elif event.key == pygame.K_UP:
                    player.stop("up")
                elif event.key == pygame.K_DOWN:
                    player.stop("down")

        temp.update(constants.display_surface)
        player.update()

    if state == 1:
        pass

    constants.clock.tick(constants.FPS)
    pygame.display.update()

pygame.quit()
Ejemplo n.º 23
0
 def update_players(self):
     for player in self.player_list:
         player.update()
Ejemplo n.º 24
0
async def nextTurn(current_game):
    new = current_game.turn

    #Loop until its a player that hasn't folded or all in'd
    while (True):

        # If this is the last player on the list
        if (new == current_game.capacity - 1):
            # Turn goes to the first player in the list
            new = 0
        else:
            # Increment turn
            new += 1
        if ((current_game.players[new].status != "Folded"
             and current_game.players[new].status != "Allin")
                or current_game.round == 99):
            current_game.turn = new
            break

    if (not current_game.canCheck):
        current_game.turn_count += 1

    # check for new round
    if (current_game.turn_count == current_game.round_players
            or current_game.checkCount == current_game.round_players
            or current_game.round == 99):
        current_game.round += 1
        #reset turn count and check ability
        current_game.turn_count = 0
        current_game.checkCount = 0
        current_game.canCheck = True
        current_game.bet = 0

        #Reset the turn to the starting player
        if (current_game.round < 98):
            current_game.turn = current_game.playerNames.index(
                current_game.starting_player.display_name)

        #Reset player bets
        for player in current_game.players:
            player.bet = 0
            player.first_turn = True

        #Flop
        if (current_game.round == 2):
            embed = discord.Embed(title="The Flop",
                                  description="{0} | {1} | {2}".format(
                                      current_game.deal(), current_game.deal(),
                                      current_game.deal()),
                                  color=0xDCDCDC)
            await client.send_message(current_game.channel, embed=embed)
            for player in current_game.players:
                embed.add_field(name="Your Hand",
                                value="{} | {}".format(player.hand[0],
                                                       player.hand[1]))
                await client.send_message(player.user, embed=embed)
                await client.send_message(
                    player.user, "Your best hand: {}".format(
                        pokereval.besthand(current_game.tableCards, player)))
                embed.remove_field(0)
        #Turn
        elif (current_game.round == 3):
            embed = discord.Embed(title="The Turn",
                                  description="{0} | {1} | {2} | {3}".format(
                                      current_game.tableCards[0],
                                      current_game.tableCards[1],
                                      current_game.tableCards[2],
                                      current_game.deal()),
                                  color=0xDCDCDC)
            await client.send_message(current_game.channel, embed=embed)
            for player in current_game.players:
                embed.add_field(name="Your Hand",
                                value="{} | {}".format(player.hand[0],
                                                       player.hand[1]))
                await client.send_message(player.user, embed=embed)
                await client.send_message(
                    player.user, "Your best hand: {}".format(
                        pokereval.besthand(current_game.tableCards, player)))
                embed.remove_field(0)
        #River
        elif (current_game.round == 4 or current_game.round == 100):
            embed = discord.Embed(
                title="The River",
                description="{0} | {1} | {2} | {3} | {4}".format(
                    current_game.tableCards[0], current_game.tableCards[1],
                    current_game.tableCards[2], current_game.tableCards[3],
                    current_game.deal()),
                color=0xDCDCDC)
            current_game.river_shown = True
            await client.send_message(current_game.channel, embed=embed)
            if (current_game.round != 100):
                for player in current_game.players:
                    embed.add_field(name="Your Hand",
                                    value="{} | {}".format(
                                        player.hand[0], player.hand[1]))
                    await client.send_message(player.user, embed=embed)
                    await client.send_message(
                        player.user, "Your best hand: {}".format(
                            pokereval.besthand(current_game.tableCards,
                                               player)))
                    embed.remove_field(0)
        #End of game, card reveals and winner
        if (current_game.round == 5 or current_game.round == 100):
            if not current_game.river_shown:
                embed = discord.Embed(
                    title="The River",
                    description="{0} | {1} | {2} | {3} | {4}".format(
                        current_game.tableCards[0], current_game.tableCards[1],
                        current_game.tableCards[2], current_game.tableCards[3],
                        current_game.tableCards[4]),
                    color=0xDCDCDC)
                await client.send_message(current_game.channel, embed=embed)

            activeplayers = []
            embed = discord.Embed(title="Card Reveal",
                                  description="",
                                  color=0xDCDCDC)
            for player in current_game.players:
                if player.status == "Active" or player.status == "Allin":
                    embed.add_field(name=player.display_name,
                                    value="{0} | {1}".format(
                                        player.hand[0], player.hand[1]),
                                    inline=False)
                    activeplayers.append(player)

            #Calculate winner
            win_data = pokereval.winner(current_game.tableCards, activeplayers)
            winner = win_data[0]
            embed.add_field(name="FINAL",
                            value="{0} wins with: {1}".format(
                                winner.display_name, win_data[1]),
                            inline=False)
            embed.add_field(name="EARNINGS",
                            value=":moneybag: {0} wins ${1}".format(
                                winner.display_name, current_game.pot))
            await client.send_message(current_game.channel, embed=embed)

            #Add winnings
            winner.money += current_game.pot
            winner.won = True

            #Update player data into json file
            for player in current_game.players:
                player.update()

            #Remove game
            games.pop(current_game.channel.name, None)

    if current_game.round != 5 and current_game.round != 100:
        await client.send_message(
            current_game.channel, "{} It's your turn!".format(
                current_game.players[current_game.turn].user.mention))
Ejemplo n.º 25
0
def start():
    ### First Room Stuff
    gemtype = ''
    hp = player.health
    tabCount = 0
    chosenElement = element[0]      #defualt to fire

    while not title.isFinished():
        screen.fill((0,0,0))
        title.startTitle(screen)
        pygame.display.flip()

    ### Room Loop
    while not level1.isComplete(exitGroup):

        pygame.event.pump()
        xCounter = yCounter = 0
        for event in pygame.event.get():    #event handler, checks for key presses (not holds)
            if level1.isComplete(heroGroup):
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_TAB:
                        lifeAfterdeath()

            if event.type == pygame.QUIT:
                exit()
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_TAB:
                    tabCount+=1
                    if tabCount >= len(element):
                        tabCount = 0
                    chosenElement = element[tabCount]
                elif event.key == pygame.K_SPACE and player.alive():
                    allSprites.add(projectiles.projectiles(player, chosenElement, enemies,chests, player.rect.center,gemtype))
                    magic.add(projectiles.projectiles(player, chosenElement, enemies,chests, player.rect.center,gemtype))

        screen.fill((0,0,0))                #reset screen, for clean animation

        ### On-Screen Text
        background.makeBackground(screen, img, wallDown, sFloor, floor, tFloor, cFloor)
        myfont = pygame.font.SysFont('Comic Sans MS', 50)
        for x in range(0,player.health):
            screen.blit(heart, (0+(16*x), 0)) #Display HP.
        screen.blit(pygame.image.load(element[tabCount]).convert(), (0,16)) #Display element.
        #Now service player after everything else.
        player.update(pygame.key.get_pressed()) #Update player
        if (player.health>0 and player.invinc%2==0):
            screen.blit(player.image, player.rect) #Draw them if necessary
        myfont = pygame.font.SysFont('Comic Sans MS', 35)
        textsurface = myfont.render('Level 1 - Room 1', False, (255, 255, 255))
        screen.blit(textsurface,(425,0))
        myfont = pygame.font.SysFont('Comic Sans MS', 25)
        textsurface = myfont.render('Welcome to the dungeon', False, (255, 255, 255))
        screen.blit(textsurface,(425,25))
        if level1.isComplete(heroGroup):
            myfont = pygame.font.SysFont('Comic Sans MS', 30)
            textsurface = myfont.render('Dead already?! Press TAB to continue...', False, (255, 255, 255))
            screen.blit(textsurface,(100,350))
        ### Exit Portal
        if level1.isComplete(enemyGroup):
            for sp in por:
                sp.target = player
                sp.rect.center = (300,300)
                allSprites.add(sp)
                textsurface = myfont.render('Exit has appeared!', False, (255, 255, 255))
                screen.blit(textsurface,(200,350))

        for spr in level1.boxes:
            threading.Timer(0.1 , spr.torchup).start()

        ### Keeps room running
        allSprites.update(pygame.key.get_pressed())
        allSprites.draw(screen)
        pygame.display.flip()   #ACTUALLY display all the images
        clock.tick(60)      #all animation and timing is based on this 60fps counte
Ejemplo n.º 26
0
def main():

	walk = False
	a_shot = False
	numzomb = 10 
	cont_zomb = 10
	end = False
	pygame.mixer.init()
	level = 1
	bala = pygame.rect.Rect((0,0), (5,5))
	zsound = pygame.mixer.Sound("sound_data/zombies.wav")
	
	while not end:
		vx,vy = 0,0

		for event in pygame.event.get():
			
			if event.type == pygame.QUIT:sys.exit(0)

			keys = pygame.key.get_pressed()

			if keys[K_ESCAPE]:sys.exit(0)
			if keys[K_w]:vy = -speed
			if keys[K_s]:vy = speed
			if keys[K_a]:vx = -speed
			if keys[K_d]:vx = speed

			if keys[K_SPACE]:
				pygame.mixer.music.load("sound_data/shot.wav")
				pygame.mixer.music.play()
				pos = player.pos()
				a_shot = True
				for i in range (0,20):
					bala = pygame.rect.Rect((0,0), (5,5))
					bala.left = pos[2] - 10
					bala.top = pos[1] - 10
					bala.right = pos[3] - 10

		player.move(vx,vy)
		background = load("background.png",0,0)
		vel = { }
		for i in range(0,numzomb):
			vel[i] = random.randrange(0,2)
			screen.blit(zombie_img, cantzomb[i])
			if player.col(cantzomb[i]):
				handle('lose', level, numzomb)
				end = True
			if bala.colliderect(cantzomb[i]):
				cantzomb[i].inflate_ip(-99999,-999999)
				cont_zomb -= 1
			if cantzomb[i].bottom >= HEIGHT:
				handle('lose', level, numzomb)
				end = True
			if cont_zomb <= 0:
				handle('win', level, numzomb)
				level += 1			
				numzomb += 2
				add_zombies(cantzomb,zombie_img, numzomb)
				cont_zomb = numzomb
			cantzomb[i].move_ip(0, vel[i])
		
		if numzomb > 0:	zsound.play()

   		if a_shot:
			bala.top -= 15
			pygame.draw.rect(screen, (255,255,255), bala)
		

		kills = numzomb - cont_zomb
		fps = str(clock.get_time())
		time = fps.split(".")[0]
		player.hud(screen,kills,level,time,numzomb)
		player.update(screen,walk)
		pygame.display.flip()
		clock.tick(70)
		pos = player.pos()

	sys.exit()
Ejemplo n.º 27
0
def levelgen(screen,layout,title,sub_title,conditions,L):
    ### RoomS Design
    L2 = layout
    bulletLoops = 0
    skip = 0
    bossBulletTarget = [player]
        #--------------Create some sprite variables--------------
    allSprites = pygame.sprite.Group()
    enemies = []
    gems = []
    chests = []
    chest1 = []
    chest2 = []
    chest3 = []
    hp = player.health
    por = []
    levelgen = level.level(L2, enemies,chests,por,screen)
    levelgen.makeLevel()
    element = ['projectiles/fireProj.png', 'projectiles/iceProj.png', 'projectiles/lightProj.png']
    magic = pygame.sprite.Group()
    obstacles = levelgen.boxes
    obstacleGroup = pygame.sprite.Group()
    for spr in levelgen.boxes:
        allSprites.add(spr)
        obstacleGroup.add(spr)
        player.obstacles.append(spr)
    #allSprites.add(player) Removed -- already updates
    heroGroup = pygame.sprite.Group(player)
    for chest in chests:
        if (chest.type != 'red' and chest.type != 'blue'):
            chest.target = player
        if (chest.type=='portal'):
            chest1.append(chest)
        if (chest.type=='item'):
            chest2.append(chest)
        if (chest.type=='dmg'):
            chest3.append(chest)
        if (chest.type=='red'):
            gems.append(chest)
        if (chest.type=='blue'):
            gems.append(chest)
        allSprites.add(chest)
    for sp in por:
        sp.target = player
        allSprites.add(sp)
    for enemy in enemies:
        enemy.target = player
        enemy.enemies = enemies #For them to check collision with one another.
        allSprites.add(enemy)
    exitGroup = pygame.sprite.Group(por)
    chest1Group = pygame.sprite.Group(chest1)
    chest2Group = pygame.sprite.Group(chest2)
    chest3Group = pygame.sprite.Group(chest3)
    enemyGroup = pygame.sprite.Group(enemies)
    gemsGroup = pygame.sprite.Group(gems)

    tabCount = 0
    chosenElement = element[0]      #defualt to fire
    gemtype = 'red'
    ### Room Loop
    while not levelgen.isComplete(exitGroup):
        pygame.event.pump()
        xCounter = yCounter = 0
        for event in pygame.event.get():    #event handler, checks for key presses (not holds)
            if levelgen.isComplete(heroGroup):
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_TAB:
                        lifeAfterdeath()

            if event.type == pygame.QUIT:
                exit()
            elif event.type == pygame.K_0:
                skip = 1
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_TAB:
                    tabCount+=1
                    if tabCount >= len(element):
                        tabCount = 0
                    gemtype = elements[tabCount]
                    chosenElement = element[tabCount]
                elif event.key == pygame.K_SPACE and player.alive():
                    allSprites.add(projectiles.projectiles(player, chosenElement, enemies,chests, player.rect.center,gemtype))
                    magic.add(projectiles.projectiles(player, chosenElement, enemies,chests, player.rect.center,gemtype))
        screen.fill((0,0,0))                #reset screen, for clean animation
        background.makeBackground(screen, img, wallDown, sFloor, floor, tFloor, cFloor)
        if skip == 1:
            for sp in por:
                sp.target = player
                sp.rect.center = (300,350)
                allSprites.add(sp)
                sp.kill()
        ### Exit Portal
        if conditions == 'chest':
            if levelgen.isComplete(chest1Group):
                for sp in por:
                    sp.target = player
                    sp.rect.center = (300,350)
                    allSprites.add(sp)
                    myfont = pygame.font.SysFont('Comic Sans MS', 50)
                    textsurface = myfont.render('Exit has appeared!', False, (255, 255, 255))
                    screen.blit(textsurface,(150,50))

        if conditions == 'kill-all':
            if levelgen.isComplete(enemyGroup):
                for sp in por:
                    sp.target = player
                    if (L==9):
                        sp.rect.center = (150,400)
                        allSprites.add(sp)
                        myfont = pygame.font.SysFont('Comic Sans MS', 25)
                        textsurface = myfont.render('C Ya!', False, (255, 255, 255))
                        screen.blit(textsurface,(30,400))
                    elif (L==5):
                        sp.rect.center = (150,350)
                        allSprites.add(sp)
                        myfont = pygame.font.SysFont('Comic Sans MS', 25)
                        textsurface = myfont.render('Did you order an exit?', False, (255, 255, 255))
                        screen.blit(textsurface,(30,300))
                    elif (L==3):
                        sp.rect.center = (200,350)
                        allSprites.add(sp)
                        myfont = pygame.font.SysFont('Comic Sans MS', 25)
                        textsurface = myfont.render('Not an exit', False, (255, 255, 255))
                        screen.blit(textsurface,(50,400))
                    else :
                        sp.rect.center = (300,350)
                        allSprites.add(sp)
                        myfont = pygame.font.SysFont('Comic Sans MS', 50)
                        textsurface = myfont.render('Exit has appeared!', False, (255, 255, 255))
                        screen.blit(textsurface,(100,300))

        if conditions == 'gems':
            if levelgen.isComplete(gemsGroup):
                for sp in por:
                    sp.target = player
                    sp.rect.center = (300,350)
                    allSprites.add(sp)
                    myfont = pygame.font.SysFont('Comic Sans MS', 50)
                    textsurface = myfont.render('The gods have been honored', False, (255, 255, 255))
                    screen.blit(textsurface,(100,300))
        for enemy in enemies:
            if hasattr(enemy, "boss_health"):
                if enemy.boss_health > 0:
                    bar = pygame.draw.rect(screen, (255, 0, 0), (220, 440, enemy.boss_health*10, 15))
                    if enemy.isType == "Orc":
                        if bulletLoops % 80 == 0:
                            allSprites.add(projectiles.projectiles(enemy, 'projectiles/boss_bullet.png', bossBulletTarget,chests, enemy.rect.center,'orc'))
                            enemy.direction = 'up'
                            allSprites.add(projectiles.projectiles(enemy, 'projectiles/boss_bullet.png', bossBulletTarget,chests, enemy.rect.center,'orc'))
                            enemy.direction = 'left'
                            allSprites.add(projectiles.projectiles(enemy, 'projectiles/boss_bullet.png', bossBulletTarget,chests, enemy.rect.center,'orc'))
                            enemy.direction = 'right'
                            allSprites.add(projectiles.projectiles(enemy, 'projectiles/boss_bullet.png', bossBulletTarget,chests, enemy.rect.center,'orc'))
                            enemy.direction = 'down'
                            bulletLoops = 0
                    elif enemy.isType == "Tenta":
                        if bulletLoops % 40 == 0:
                            enemy.direction = 'right'
                            allSprites.add(projectiles.projectiles(enemy, 'projectiles/flame_projectile.png', bossBulletTarget, chests, enemy.rect.center, 'orc'))
                            enemy.direction = 'left'
                            allSprites.add(projectiles.projectiles(enemy, 'projectiles/flame_projectile.png', bossBulletTarget, chests, enemy.rect.center, 'orc'))
                            enemy.direction = 'right'
                    elif enemy.isType == "Cat_Staff":
                        cloop = 0
                        if bulletLoops % 180 == 0:
                            enemy.currentAnim = enemy.catThrow
                        if enemy.currentAnim == enemy.catThrow:
                            enemy.catloop += 1
                            if enemy.catloop % 24 == 0:
                                enemy.direction = "targeting"
                                allSprites.add(projectiles.projectiles(enemy, 'projectiles/cat_projectile.png', bossBulletTarget, chests, enemy.rect.center, 'cat_staff'))
                            if enemy.catloop % 48 == 0:
                                enemy.currentAnim = enemy.catIdle
                                enemy.catloop = 0
                else:
                    bar = ""
        ### On-Screen Text
        if levelgen.isComplete(heroGroup):
            myfont = pygame.font.SysFont('Comic Sans MS', 25)
            textsurface = myfont.render('Dead already?! Press TAB to continue...', False, (255, 255, 255))
            screen.blit(textsurface,(100,400))

        if conditions == 'chest' and levelgen.isComplete(chest3Group):
            myfont = pygame.font.SysFont('Comic Sans MS', 20)
            textsurface = myfont.render('Radiation Effects : -2 HP', False, (255, 255, 255))
            screen.blit(textsurface,(50,30))
        if conditions != 'gems' and L != 5 and levelgen.isComplete(chest2Group):
            myfont = pygame.font.SysFont('Comic Sans MS', 20)
            textsurface = myfont.render('Health Bonus : +1 HP', False, (255, 255, 255))
            screen.blit(textsurface,(50,40))
        myfont = pygame.font.SysFont('Comic Sans MS', 50)
        for x in range(0,player.health):
            screen.blit(heart, (0+(16*x), 0)) #Display HP.
        screen.blit(pygame.image.load(element[tabCount]).convert(), (0,16)) #Display element.
        #Now service player after everything else.
        player.update(pygame.key.get_pressed()) #Update player
        if (player.health>0 and player.invinc%2==0):
            screen.blit(player.image, player.rect) #Draw them if necessary
        myfont = pygame.font.SysFont('Comic Sans MS', 35)
        textsurface = myfont.render(title, False, (255, 255, 255))
        screen.blit(textsurface,(425,0))
        myfont = pygame.font.SysFont('Comic Sans MS', 25)
        textsurface = myfont.render(sub_title, False, (255, 255, 255))
        screen.blit(textsurface,(405,25))

        for spr in levelgen.boxes:
            threading.Timer(0.1 , spr.torchup).start()

        ### Loop Stuff
        allSprites.update(pygame.key.get_pressed())
        allSprites.draw(screen)
        pygame.display.flip()   #ACTUALLY display all the images
        bulletLoops = bulletLoops + 1
        clock.tick(60)      #all animation and timing is based on this 60fps counter
    for x in obstacleGroup.sprites():
        x.kill()
        x.rect.center = (-55,-55) #Put self out-of-bounds -- but not (-5,-5)
Ejemplo n.º 28
0
                player.changespeed((3 * speedFactor), 0)
            if event.key == pygame.K_d:
                player.changespeed((-3 * speedFactor), 0)
            if event.key == pygame.K_w:
                player.changespeed(0, (3 * speedFactor))
            if event.key == pygame.K_s:
                player.changespeed(0, (-3 * speedFactor))
            if event.key == pygame.K_RCTRL:
                shot = False

    # ALL EVENT PROCESSING SHOLD GO ABOVE THIS COMMENT

    # ALL GAME LOGIC SHOULD GO BELOW THIS COMMENT

    # ALL GAME LOGIC SHOULD GO ABOVE THIS COMMENT
    player.update(wall_list)

    for bullet in bullet_list:
        bullet.update()

        wall_hit_list = pygame.sprite.spritecollide(bullet, wall_list, False)

        for wall in wall_hit_list:
            bullet_list.remove(bullet)
            all_sprites_list.remove(bullet)

        if bullet.rect.y < -10 or bullet.rect.x > 1080:
            bullet_list.remove(bullet)
            all_sprites_list.remove(bullet)

    # ALL CODE TO DRAW SHOULD GO BELOW THIS COMMENT
def update(dt):
    player.update(dt)
    world.update(dt)