def __init__(self, screen): # Game variables self.level = 1 self.time = 200 * constants.TICK_RATE self.score = 0 self.level_score = 0 # Canvas-related variables self.screen = screen self.screen_buffor = pygame.Surface( (constants.FIELD_WIDTH, constants.FIELD_HEIGHT)).convert() # In-game objects variables self.player = pygame.sprite.GroupSingle(characters.Player(0, 0)) self.player_copy = None # Hardblocks (every "#" in gamemap), which remain the same through all levels self.hard_blocks = pygame.sprite.Group([ characters.HardBlock((x, y)) for (x, y, cell) in assets.Assets.get_tiles() if cell == "#" ]) self.soft_blocks = pygame.sprite.Group() self.bombs = pygame.sprite.Group() self.blasts = pygame.sprite.Group() self.bonuses = pygame.sprite.Group() self.monsters = pygame.sprite.Group() self.events = pygame.event.get()
def __init__(self, row, col): self.pTurn = True #True if it is the Player's turn, false otherwise self.gameRunning = True #True if the Game is running, false it has reached a state where it should stop. self.player = characters.Player() #The user's avatar in the game. self.player.add_observer(self) #The Game observes the Player. self.neighborhood = world.Neighborhood( row, col) #The world where the game takes place. self.neighborhood.add_observer( self) #The Game observes the Neighborhood. for house in self.neighborhood.getHouseList(): house.add_observer(self)
def load(self): super().load() blockWidth = blocks.Block.width blockHeight = blocks.Block.height self.gameArea = Rect(Game.curGame.width - blockWidth, Game.curGame.height - Hud.height, 0, 0) playerStartX = blockWidth playerStartY = blockHeight # If there are playerSpawn blocks if (self.hasAny(blocks.PlayerSpawn)): # Get the location of the block playerSpawn = self.getGameObjectsByType(blocks.PlayerSpawn) # Create a player if there is not one already if not (self.player): self.player = characters.Player(playerStartX, playerStartY) # Spawn the player on the block self.player.x = playerSpawn[0].x self.player.y = playerSpawn[0].y self.removeGameObjectsByType(blocks.PlayerSpawn) self.addGameObject(self.player) # If there are not Player Objects create one elif (not self.hasAny(characters.Player)): if not (self.player): self.player = characters.Player(0, 0) self.player.x = playerStartX self.player.y = playerStartY self.addGameObject(self.player) # If there are Player Objects elif (self.hasAny(characters.Player)): self.player = self.getGameObjectsByType(characters.Player)[0] self.addGameObject(Hud(blockWidth, self.gameArea.height + blockHeight)) self.originalGos = self.gameObjects
def newgame(): """Get player name and create new world""" global worldmap global player print "\n" while True: playername = raw_input("Enter your name: ") if len(playername) < 2: print "Name must be at least two characters long." else: player = characters.Player(playername) break worldmap = world.Map() print "Prepare to begin your journey..." raw_input("Press \"Enter\" to continue...")
def __init__(self, game_map, boss_room_key, enemies=None, castle_items=None): # Set attributes self._map = game_map self._boss_room_key = boss_room_key # Store key of boss room self._parent = None # Stores tkinter parent object self._gui = None # Stores GUI object self._player_name = tk.StringVar() self._player_age = tk.IntVar() self._player = characters.Player("Player", game_map) # Initialise the player self._control_state = True # Stores the state of the controls # Set boss room key callback self._boss_room_key.set_callback(self.unlock_boss_room) # Default values for player name/age self._player_name.set("Player") self._player_age.set(18) # Add boss room key to items castle_items.append(self._boss_room_key) # For every item for item in castle_items: # Randomly select a room and add the item row = random.choice(self._map.grid()) room = random.choice(row) room.inventory().add_item(item) # For every enemy for enemy in enemies: # Randomly select a room and add the enemy row = random.choice(self._map.grid()) room = random.choice(row) room.add_enemy(enemy)
def initialize_level(self, next_level): """Initializing level after player death or to advance to new level""" player_x, player_y = self.MAP.get_coordinates('s') blinky_x, blinky_y = self.MAP.get_coordinates('b') pinky_x, pinky_y = self.MAP.get_coordinates('p') inky_x, inky_y = self.MAP.get_coordinates('i') clyde_x, clyde_y = self.MAP.get_coordinates('c') self.player = characters.Player(player_x, player_y) self.ghosts = { "blinky": characters.Blinky(blinky_x, blinky_y), "pinky": characters.Pinky(pinky_x, pinky_y), "inky": characters.Inky(inky_x, inky_y), "clyde": characters.Clyde(clyde_x, clyde_y), } self.combo = 1 self.fruit = 0 self.update_caption() self.wait = 1 if next_level: self.pellets = list(self.MAP.get_pellets()) self.draw_walls() self.draw_pellets() self.level += 1 self.tick = 0 else: for ghost in self.ghosts.values(): ghost.state = self.previous_ghosts_state self.lives -= 1 if self.lives == 0: drawhelper.draw_text("GAME OVER!") pygame.display.update() while True: events = pygame.event.get() for event in events: if event.type == pygame.KEYDOWN: return
white = (255,255,255) black = (0,0,0) red = (255, 0, 0) text = pygame.font.SysFont("Comic Sans MS", 60) textsurface = text.render("GAME OVER", False, white) gameover = False # initialize graph that that the characters and bullets use # to keep track of their coordinates vset, elist = graph.create_grid() graph = graph.Graph(vset, elist) # initialize the player class that will keep track of the player's # coordinates player = characters.Player((7,7)) playerXCoord = 7 playerYCoord = 7 #initialize zombie list zombielist = [] while not gameover: # game runs at 30 ticks per second clock.tick(30) screen.fill(black) #draw triangle onto screen screen.blit(triangle,(triangle_left,triangle_top)) # if there are no more zombies that exist in the game, respawn the 4 zombies
black = (0, 0, 0) white = (255, 255, 255) green = (100, 200, 100) red = (200, 0, 0) hoverred = (220, 0, 0) yellow = (180, 180, 0) hoveryellow = (200, 200, 0) display_width, display_height = 2000, 1000 # initializing pygame modules clock = pygame.time.Clock() gameDisplay = pygame.display.set_mode((display_width, display_height)) # creating sprite groups all_sprites = pygame.sprite.Group() player = characters.Player() all_sprites.add(player) tutorialGroup = pygame.sprite.Group() tutorialPlayer = characters.tutorialGuy() tutorialGroup.add(tutorialPlayer) bulletGroup = pygame.sprite.Group() # importing and rescaling images background = pygame.image.load('../images/game_background.jpg') background = pygame.transform.scale(background, (2000, 1000)) # arrow keys found from: # https://www.google.ca/url?sa=i&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwiW2srr2ozfAhWZ14MKHScGAB8Qj # Rx6BAgBEAU&url=https%3A%2F%2Ffr.m.wikipedia.org%2Fwiki%2FFichier%3ACursor-key-arrangements-according-to # -isoiec-9995-5.png&psig=AOvVaw2cPzXvj-MVtkDN-L8rudkL&ust=1544237414005703 left_key = pygame.image.load('../images/left_key.png') left_key = pygame.transform.scale(left_key, (125, 125))
def __init__(self): # -- INITIALIZATION -- pygame.init() # -- COLORS -- self.black = (0, 0, 0) self.green = (0, 255, 0) # -- TIME -- self.g_clock = pygame.time.Clock() self.delta_time = 0 # -- DISPLAY -- # screen self.scr_w = 1024 self.scr_h = 768 self.screen = pygame.display.set_mode((self.scr_w, self.scr_h)) pygame.display.set_caption("Smol Game / Lab 5 / ETGG1802 / Prof: Jason / Team: Lane - Tanim - Evan | FPS: " + str(int(self.g_clock.get_fps()))) img1 = pygame.image.load("Sprites\\BATS.png") img2 = pygame.image.load("Sprites\\Asteroid Brown.png") # background self.background = pygame.Surface(self.screen.get_size()) self.background.fill(self.black) self.background.convert() # -- IMAGES / SPRITES -- # -- TEXT FONTS -- self.font_type = pygame.font.get_default_font() # -- CLASS INSTANCES -- # camera class instance self.camera = Camera(self.scr_w, self.scr_h, self) # player class instance self.player = characters.Player(300, 300, ((self.scr_w / 2) - 32), ((self.scr_h / 2) - 32), 50, 32, img1, self.camera.x, self.camera.y, 1, 0) # enemy class instance self.enemy = characters.Enemy(800, 800, 0, 0, 10, 160, img2, self.camera.x, self.camera.y, 0, 0) # map class instance self.map = Map("smol_map1.tmx") # -- GAME LOOP -- self.run = True while self.run: # - UPDATES # Time in seconds since the last update self.delta_time = self.g_clock.tick(100) / 1000 self.enemy.update(self.delta_time) self.player.update(self.delta_time) self.enemy.hit_detection(self.player.x, self.player.y, self.player.sprite, self.delta_time) # - USER INPUT # event handling self.evt = pygame.event.poll() if self.evt.type == pygame.QUIT: self.run = False elif self.evt.type == pygame.KEYDOWN: if self.evt.key == pygame.K_ESCAPE: self.run = False # - DRAW self.player.draw(self.background, self.map.getMapSize()[0], self.map.getMapSize()[1], self.camera.x, self.camera.y) self.enemy.draw(self.background, self.map.getMapSize()[0], self.map.getMapSize()[1], self.camera.x, self.camera.y) # screen self.screen.blit(self.background, (0, 0)) self.map.render(self.background, (self.camera.x,self.camera.y), self.scr_w, self.scr_h) # game objects # text # camera self.camera.update(self.player, self.player.sprite, self.player.sprite) # - UPDATE DISPLAY pygame.display.flip() # -- EXIT GAME -- pygame.quit()
def create_player(self): self.player = characters.Player( backpack=items.Backpack(name='backpack'), equipment=items.Equipment())
def __init__(self): self.player = characters.Player(0, 10)