def CreateObjectsForPlay(self): """Creates instances of various objects in the game""" self.__board = Board() self.__player = Player(self.__board) self.__donkeys = [] self.__donkeys.append(Donkey(self.__board, self.__player, (4,2)))
def ReInitializeForLevelUp(self): """To Reinitialise variables, objects etc for Level up and increase the number of donkeys""" self.CreateHelperVariables() self.__board.Initialize() self.__donkeys.append(Donkey(self.__board, self.__player, (4, 30))) self.__player.UpdatePosition((28, 2)) self.__board.setChar((28, 2), "P") pygame.display.flip()
def placeDonkey(self): ''' Places Donkey on the map initially ''' donkeyi = self.floor[-2:-1][0] - 1 donkeyj = 0 PLACED = False while not PLACED: donkeyj = random.randint(1, COLUMNS - 1) if self.orign[donkeyi][donkeyj] == 0 and self.orign[ donkeyi + 1][donkeyj] == 1 and self.board[donkeyi][ donkeyj] != DONKEYCHAR: PLACED = True self.board[donkeyi][donkeyj] = DONKEYCHAR self.Donkey.append(Donkey(donkeyi, donkeyj))
def __init__(self): WIDTH = 192 HEIGHT = 250 CAPTION = "Mario Game Beta 5.0" self.mario = Mario() self.kong = Donkey() self.win_condition = False self.barrels = {} ####################### self.platforms = {} for i in range(1, 24): if i < 3: name = 'platform_' + str(i) x = 16 * (i - 1) y = 242 obj = statics.Platform(x, y) self.platforms[name] = obj elif i < 14: for j in range(2): if j == 0: name = 'platform_' + str(i) + '.' + str(j + 1) x = 16 * (i - 1) y = 242 - (i - 2) obj = statics.Platform(x, y) self.platforms[name] = obj elif j == 1: name = 'platform_' + str(i) + '.' + str(j + 1) x = 16 * (i - 1) y = 140 - (i - 2) obj = statics.Platform(x, y) self.platforms[name] = obj elif i > 13: if i == 16: name = 'platform_' + str(i) x = 16 * (i - 15) y = 180 + 1 obj = statics.Platform(x, y) self.platforms[name] = obj else: name = 'platform_' + str(i) x = 16 * (i - 15) y = 180 + (i - 15) obj = statics.Platform(x, y) self.platforms[name] = obj for i in range(10): if i < 3: name = 'platform' + str(100 + i) x = 16 * i y = 70 obj = statics.Platform(x, y) self.platforms[name] = obj else: name = 'platform' + str(100 + i) x = 16 * i y = 70 + (i - 2) obj = statics.Platform(x, y) self.platforms[name] = obj for i in range(6): name = 'platform' + str(200 + i) x = 100 + 16 * i y = 40 obj = statics.Platform(x, y) self.platforms[name] = obj ################ self.invisiplats = {} name = 'inv_1' x = 145 y = 188 obj = statics.InvisiPlat(x, y) self.invisiplats[name] = obj name = 'inv_2' x = 160 y = 77 obj = statics.InvisiPlat(x, y) self.invisiplats[name] = obj name = 'inv_3' x = 32 y = 139 obj = statics.InvisiPlat(x, y) self.invisiplats[name] = obj ################ self.ladders = {} name = 'ladder_1' x = 118 yl = 229 yh = 187 obj = statics.Ladder(x, yh, yl) self.ladders[name] = obj name = 'ladder_2' x = 50 yl = 176 yh = 138 obj = statics.Ladder(x, yh, yl) self.ladders[name] = obj name = 'ladder_3' x = 130 yl = 126 yh = 76 obj = statics.Ladder(x, yh, yl) self.ladders[name] = obj name = 'ladder_4' x = 101 yl = 67 yh = 41 obj = statics.Ladder(x, yh, yl) self.ladders[name] = obj ################## self.scores_path = 'highscores.txt' try: with open(self.scores_path, "r") as file: self.highscores = eval(file.readline()) except: self.highscores = [] for i in range(5): self.highscores.append(0) with open(self.scores_path, "w") as file: file.write(str(self.highscores)) ################## """ We thought at first that ladders could be iterably generated, but soon changed our mind. self.ladders = {} for i in range(1,9): name = 'ladder_' + str(i) x = 117 y = 236-6*i obj = classes.Ladder(x,y) self.ladders[name] = obj """ pyxel.init(WIDTH, HEIGHT) pyxel.load("opjects.pyxres") pyxel.playm(0, loop=True) pyxel.run(self.update, self.draw)
def main(): l = 1 # variable to store the present level score = 0 #initialising pygame pygame.init() # declaring game objects for the first time size = [constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT] screen = pygame.display.set_mode(size) pygame.display.set_caption("Donkey Kong") # declaring player object player = Player() # donkey object donkey = Donkey() donkey.rect.x = random.randrange(100, 280) donkey.rect.y = 89 donkey_list = pygame.sprite.Group() donkey_list.add(donkey) # fireball instance fireball_list = pygame.sprite.Group() fireball = Fireball() fireball.rect.x = donkey.rect.x + 40 fireball.rect.y = donkey.rect.y fireball_list.add(fireball) level_list = [] level_list.append(level.Board(player)) current_level_no = 0 current_level = level_list[current_level_no] active_sprite_list = pygame.sprite.Group() player.level = current_level player.rect.x = 40 player.rect.y = constants.SCREEN_HEIGHT - player.rect.height active_sprite_list.add(player) active_sprite_list.add(donkey) done = False background_image = pygame.image.load("./images/background2.jpg").convert() background_image = pygame.transform.scale(background_image, [1000, 700]) clock = pygame.time.Clock() restart = False # Main loop where all the updation takes place while not done: f = 0 # flag variable # to check which keys are pressed for event in pygame.event.get(): if event.type == pygame.QUIT: done = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: done = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_a: player.go_left() if event.key == pygame.K_d: player.go_right() if event.key == pygame.K_SPACE: player.jump() if event.key == pygame.K_w and len( pygame.sprite.spritecollide( player, player.level.ladder_list, False)) > 0: f = 1 player.go_up() if event.key == pygame.K_s and len( pygame.sprite.spritecollide( player, player.level.ladder_list, False)) > 0: f = 1 player.go_down() if event.type == pygame.KEYUP: if event.key == pygame.K_a and player.change_x < 0: player.stop() if event.key == pygame.K_d and player.change_x > 0: player.stop() if event.key == pygame.K_w and len( pygame.sprite.spritecollide( player, player.level.ladder_list, False)) > 0: player.stop2() if event.key == pygame.K_s and len( pygame.sprite.spritecollide( player, player.level.ladder_list, False)) > 0: player.stop2() #checking for collisions if len( pygame.sprite.spritecollide(player, player.level.ladder_list, False)) > 0: f = 1 if len(pygame.sprite.spritecollide(player, donkey_list, False)) > 0: done = True if len(pygame.sprite.spritecollide(player, fireball_list, False)) > 0: player.lives -= 1 player.score -= 25 player.reset() if player.lives == 0: done = True if len( pygame.sprite.spritecollide(player, player.level.queen_list, False)) > 0: restart = True ######### Restarts game when queen is rescued ########## if restart == True: l += 1 score += player.score player = Player() donkey = Donkey() donkey.rect.x = random.randrange(100, 280) donkey.rect.y = 89 donkey_list = pygame.sprite.Group() donkey_list.add(donkey) # fireball instance fireball_list = pygame.sprite.Group() fireball = Fireball() fireball.rect.x = donkey.rect.x + 40 fireball.rect.y = donkey.rect.y fireball.speed = l fireball_list.add(fireball) level_list = [] level_list.append(level.Board(player)) current_level_no = 0 current_level = level_list[current_level_no] active_sprite_list = pygame.sprite.Group() player.level = current_level player.rect.x = 40 player.rect.y = constants.SCREEN_HEIGHT - player.rect.height active_sprite_list.add(player) active_sprite_list.add(donkey) player.score = score restart = False # updating all game objects fireball_list.update() active_sprite_list.update(f) current_level.update() if player.rect.right > constants.SCREEN_WIDTH: player.rect.right = constants.SCREEN_WIDTH if player.rect.left < 0: player.rect.left = 0 screen.blit(background_image, [0, 0]) # generating fireballs if donkey.count == 0: fireball = Fireball() p = getPosition(donkey) fireball.speed = l fireball.rect.x = p[0] + 40 fireball.rect.y = p[1] fireball_list.add(fireball) for j in fireball_list: hit_platform = pygame.sprite.spritecollide( j, player.level.platform_list, False) if len(hit_platform) > 0: j.rect.bottom = hit_platform[0].rect.top if done: font = pygame.font.SysFont("serif", 25) text = font.render("Game Over :( , Now we are going to exit", True, constants.RED) center_x = (constants.SCREEN_WIDTH // 2) - (text.get_width() // 2) center_y = (constants.SCREEN_HEIGHT // 2) - (text.get_height() // 2) screen.blit(text, [center_x, center_y]) ########## Dispaying the game score, no of lives left and present Level ############# if not done: current_level.draw(screen) active_sprite_list.draw(screen) fireball_list.draw(screen) font = pygame.font.SysFont("serif", 25) text = font.render("Game Score %s" % player.score, True, constants.WHITE) center_x = 0 center_y = (constants.SCREEN_HEIGHT - 25) screen.blit(text, [center_x, center_y]) font = pygame.font.SysFont("serif", 25) text = font.render("Lives Left : %s" % player.lives, True, constants.WHITE) center_x = 700 center_y = (constants.SCREEN_HEIGHT - 25) screen.blit(text, [center_x, center_y]) font = pygame.font.SysFont("serif", 25) text = font.render("LEVEL %s" % l, True, constants.WHITE) center_x = 850 center_y = (constants.SCREEN_HEIGHT - 25) screen.blit(text, [center_x, center_y]) clock.tick(60) pygame.display.update() pygame.quit()
def main(): pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("DonkeyKong") # Initialize level lifes = 3 score = 0 COINS = 20 times = 0 done = False donkey = Donkey() donkey_group = pygame.sprite.GroupSingle(donkey.makeDonkey()) hero = Player() hero_group = pygame.sprite.GroupSingle(hero.makePlayer(lifes)) fireball_group = pygame.sprite.OrderedUpdates() Fireballs = [] fireballS = Fireball() fireSource = pygame.sprite.GroupSingle(fireballS.makeFireSource()) coinGroup = comLevels.genCoins(COINS) pygame.key.set_repeat(8, 10) FIRETIME = pygame.USEREVENT + 1 pygame.time.set_timer(pygame.USEREVENT, 150) pygame.time.set_timer(FIRETIME, 2000) while done == False: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_q or event.key == pygame.K_ESCAPE: done = True elif event.key == pygame.K_SPACE: hero.setState("JUMPING") elif event.key == pygame.K_w or event.key == pygame.K_UP: hero.moveUP(screen, hero_group, level.getStairGroup()) elif event.key == pygame.K_s or event.key == pygame.K_DOWN: hero.moveDown(screen, hero_group, level.getStairGroup()) elif event.key == pygame.K_a or event.key == pygame.K_LEFT: if hero.getState == ("JUMPING"): hero.allowLeft(True) hero.moveLeft(screen) elif event.key == pygame.K_d or event.key == pygame.K_RIGHT: if hero.getState() == "JUMPING": hero.allowRight(True) hero.moveRigth(screen) elif event.key == pygame.K_f: for ball in Fireballs: ball.setSpeedP() elif event.key == pygame.K_b: for ball in Fireballs: ball.setSpeedN() if event.type == pygame.USEREVENT: donkey.move() donkey.chgSpeed() if event.type == FIRETIME: fireball = Fireball() fireball_group.add(fireball.makeFireball()) Fireballs.append(fireball) for ball in Fireballs: ball.moveBalls() ball.gravity() ball.onBarless() ball.killFireball() collDon = pygame.sprite.groupcollide(donkey_group, hero_group, False, True) collFire = pygame.sprite.groupcollide(fireball_group, hero_group, False, True) if len(collDon) > 0 or len(collFire) > 0: if score >= 25: score -= 25 else: score = 0 print "player: D " + str(hero.getPosition("D")) print "player: L " + str(hero.getPosition("L")) print "donkey: D " + str(donkey.getPosition("D")) print "donkey: L " + str(donkey.getPosition("L")) lifes = hero.playerDied(screen) pygame.display.update() hero_group = pygame.sprite.GroupSingle(hero.makePlayer(lifes)) try: time.sleep(3) except: print "key" collCoin = pygame.sprite.groupcollide(coinGroup, hero_group, True, False) if len(collCoin) > 0: score += 20 if hero.getState() == "JUMPING": hero.printPos() print "--------" times = hero.jump(times) if times == 4: hero.setState("STANDING") hero.allowLeft(False) hero.allowRight(False) times = 0 level.selectLevel(screen, 1) coinGroup.draw(screen) hero_group.draw(screen) fireSource.draw(screen) fireball_group.draw(screen) donkey_group.draw(screen) comLevels.updateLife(lifes, screen) comLevels.updateScore(score, screen) pygame.display.update() if lifes == 0: break pygame.quit() sys.exit()