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]
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)
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()
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)
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()
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
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()
#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)
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)
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()
def update(): em.update() player.update() bm.update(player) stars.update()
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)
def update(): ball.update(player, cpu) player.update(ball) cpu.update(ball)
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()
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)
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)
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()
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 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()
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)
def keys_check(player): keys = pygame.key.get_pressed() player.update(keys, MOUSE_SENSITIVITY)
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()
def update_players(self): for player in self.player_list: player.update()
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))
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
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()
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)
def update(dt): player.update(dt) world.update(dt)