def addball(self): if self.level==1: level01=level1.level() else: level01=level2.level() layout=level01.getlayout() img_list=level01.getsprites() x_offset=BLOCK_SIZE/2 y_offset=BLOCK_SIZE/2 centerpoint=[(2*BLOCK_SIZE)+x_offset,(3*BLOCK_SIZE)+y_offset] ball=fireball(centerpoint,img_list[level01.FIREBALL]) self.fireball_sprites.add(ball)
def addball(self): if self.level == 1: level01 = level1.level() else: level01 = level2.level() layout = level01.getlayout() img_list = level01.getsprites() x_offset = BLOCK_SIZE / 2 y_offset = BLOCK_SIZE / 2 centerpoint = [(2 * BLOCK_SIZE) + x_offset, (3 * BLOCK_SIZE) + y_offset] ball = fireball(centerpoint, img_list[level01.FIREBALL]) self.fireball_sprites.add(ball)
def LoadSprites(self): x_offset = BLOCK_SIZE / 2 y_offset = BLOCK_SIZE / 2 if self.level == 1: level01 = level1.level() else: level01 = level2.level() layout = level01.getlayout() img_list = level01.getsprites() self.coin_sprites = pygame.sprite.RenderUpdates() self.queen_sprites = pygame.sprite.RenderUpdates() self.wall_sprites = pygame.sprite.RenderUpdates() self.ladder_sprites = pygame.sprite.RenderUpdates() self.fireball_sprites = pygame.sprite.RenderUpdates() for y in xrange(len(layout)): """Select the layout based on 2-d matrix in the level file""" for x in xrange(len(layout[y])): centerpoint = [(x * BLOCK_SIZE) + x_offset, (y * BLOCK_SIZE) + y_offset] if layout[y][x] == level01.WALL: wall = basicsprite.sprite(centerpoint, img_list[level01.WALL]) self.wall_sprites.add(wall) elif layout[y][x] == level01.PLAYER: self.player = player(centerpoint, img_list[level01.PLAYER]) elif layout[y][x] == level01.COIN: coin = basicsprite.sprite(centerpoint, img_list[level01.COIN]) self.coin_sprites.add(coin) elif layout[y][x] == level01.LADDER: ladder = basicsprite.sprite(centerpoint, img_list[level01.LADDER]) self.ladder_sprites.add(ladder) elif layout[y][x] == level01.DONKEY: self.donkey = donkey(centerpoint, img_list[level01.DONKEY]) elif layout[y][x] == level01.FIREBALL: ball = fireball(centerpoint, img_list[level01.FIREBALL]) self.fireball_sprites.add(ball) elif layout[y][x] == level01.QUEEN: queen = basicsprite.sprite(centerpoint, img_list[level01.QUEEN]) self.queen_sprites.add(queen) self.player_sprites = pygame.sprite.RenderUpdates((self.player)) self.donkey_sprites = pygame.sprite.RenderPlain((self.donkey))
def LoadSprites(self): x_offset=BLOCK_SIZE/2 y_offset=BLOCK_SIZE/2 if self.level==1: level01=level1.level() else: level01=level2.level() layout=level01.getlayout() img_list=level01.getsprites() self.coin_sprites=pygame.sprite.RenderUpdates() self.queen_sprites=pygame.sprite.RenderUpdates() self.wall_sprites=pygame.sprite.RenderUpdates() self.ladder_sprites=pygame.sprite.RenderUpdates() self.fireball_sprites=pygame.sprite.RenderUpdates() for y in xrange(len(layout)): """Select the layout based on 2-d matrix in the level file""" for x in xrange(len(layout[y])): centerpoint=[(x*BLOCK_SIZE)+x_offset,(y*BLOCK_SIZE)+y_offset] if layout[y][x]==level01.WALL: wall=basicsprite.sprite(centerpoint,img_list[level01.WALL]) self.wall_sprites.add(wall) elif layout[y][x]==level01.PLAYER: self.player=player(centerpoint,img_list[level01.PLAYER]) elif layout[y][x]==level01.COIN: coin=basicsprite.sprite(centerpoint,img_list[level01.COIN]) self.coin_sprites.add(coin) elif layout[y][x]==level01.LADDER: ladder=basicsprite.sprite(centerpoint,img_list[level01.LADDER]) self.ladder_sprites.add(ladder) elif layout[y][x]==level01.DONKEY: self.donkey=donkey(centerpoint,img_list[level01.DONKEY]) elif layout[y][x]==level01.FIREBALL: ball=fireball(centerpoint,img_list[level01.FIREBALL]) self.fireball_sprites.add(ball) elif layout[y][x]==level01.QUEEN: queen=basicsprite.sprite(centerpoint,img_list[level01.QUEEN]) self.queen_sprites.add(queen) self.player_sprites=pygame.sprite.RenderUpdates((self.player)) self.donkey_sprites=pygame.sprite.RenderPlain((self.donkey))
def _fireballLoader(self, xy, floor): """Loads fireballs from a donkey""" ball = fireball(xy[0] + xy[2] + 1, xy[1], self._level, floor) self._fireballList.add(ball)
def main(): screen = Screen() flag = 0 i = 0 j = 0 pm = player(28, 1) fb = [fireball(4, 2)] screen.printfb(4, 2, 'O', fb[0], 0) screen.printpm(28, 1, 'P', pm) d = Ghost(4, 1) screen.printg(4, 1, 'D', d) os.system("clear") screen.genCoins() screen.printScreen() count = 0 while (1): if (count % 20 == 0 and count != 0): fb = fb + [fireball(d.getX(), d.getY())] print "Enter your Move :", ch = getchar() if (ch == ' '): ch1 = getchar() i = 1 for i in range(5): pm.jump(ch1, screen, pm, i) os.system("clear") screen.printScreen() time.sleep(0.1) i += 1 i = 0 if (ch == 'q'): break pm.move(ch, screen, pm) i = 0 rand1 = randint(3, 4) prevX = d.getX() prevY = d.getY() d.move(rand1, screen, d) nextX = d.getX() nextY = d.getY() while (prevX == nextX and prevY == nextY): rand1 = randint(3, 4) d.move(rand1, screen, d) nextX = d.getX() nextY = d.getY() for i in range(len(fb)): rand2 = randint(2, 3) fb[i].move(screen, fb[i], rand2, i) i += 1 print "" os.system("clear") screen.printScreen() print "Score :", print screen.getScore() check1 = screen.checkGhost(pm, d, ch, rand1) i = 0 for i in range(len(fb)): check2 = screen.checkCollision(pm, fb[i], ch, i) i += 1 if (check2 == 'q'): break if (check1 == 'q' or check2 == 'q'): break elif (pm.getX() == 1 and pm.getY() == 31): flag = 1 break else: flag = 0 count += 1 print "" print "Game Over!!! Your Final Score is:", if (flag == 0): print screen.getScore() else: print screen.getScore() + 50
def listen(self): game_over = False dead = False P = self.P FB = [] jump = 0 self.pause_status = False while not game_over: D = self.D for evt in pygame.event.get(): if evt.type == pygame.QUIT: game_over = True if not self.pause_status: if len(FB) < 3 and D.j == self.opening and (D.di, D.dj) == (0, 1): FB.append(fireball(self, (D.i, D.j + 1), "F")) for fb in FB: # ToDo, slow down this rate(?) mv = fb.move() if not mv: self.update_cell(fb.i, fb.j, " ") FB.remove(fb) D.move() pygame.display.update() dead = dead or self.checkCollision(P, D, FB) jump = P.tryJump(jump) if P.nothing_beneath() and not P.jumping: P.move(move_d[pygame.K_DOWN]) dead = dead or self.checkCollision(P, D, FB) if evt.type == pygame.KEYDOWN: if self.pause_status == True: if evt.key == pygame.K_c: self.pause_status = False self.update_status(" ") else: try: P.move(move_d[evt.key]) except (KeyError): if evt.key == pygame.K_SPACE and P.on_ground(): P.jumping = True jump = P.jump_h elif evt.key == pygame.K_ESCAPE: self.pause_status = True self.update_status("Game Paused. Press C to continue") if self.board[P.i][P.j] == "Q": P.score += 50 self.set_game() FB = [] self.level += 1 if dead: P.score = 0 P.lives = 3 self.set_game() self.update_status("New Game. Press C to start") self.update_score(P.score) self.update_lives(P.lives) dead = False self.pause_status = True pygame.display.update() self.clock.tick(20 + self.level)
def main(): screen=Screen() flag=0 i=0 j=0 pm=player(28,1) fb=[fireball(4,2)] screen.printfb(4,2,'O',fb[0],0) screen.printpm(28,1,'P',pm) d=Ghost(4,1) screen.printg(4,1,'D',d) os.system("clear") screen.genCoins() screen.printScreen() count=0 while(1): if(count%20==0 and count!=0): fb=fb+[fireball(d.getX(),d.getY())] print "Enter your Move :", ch=getchar() if(ch==' '): ch1=getchar() i=1 for i in range(5): pm.jump(ch1,screen,pm,i) os.system("clear") screen.printScreen() time.sleep(0.1) i+=1 i=0 if(ch=='q'): break pm.move(ch,screen,pm) i=0 rand1=randint(3,4) prevX=d.getX() prevY=d.getY() d.move(rand1,screen,d) nextX=d.getX() nextY=d.getY() while(prevX==nextX and prevY==nextY): rand1=randint(3,4) d.move(rand1,screen,d) nextX=d.getX() nextY=d.getY() for i in range(len(fb)): rand2=randint(2,3) fb[i].move(screen,fb[i],rand2,i) i+=1 print "" os.system("clear") screen.printScreen() print "Score :", print screen.getScore() check1=screen.checkGhost(pm,d,ch,rand1) i=0 for i in range(len(fb)): check2=screen.checkCollision(pm,fb[i],ch,i) i+=1 if(check2=='q'): break if(check1=='q' or check2=='q'): break elif( pm.getX()==1 and pm.getY()==31): flag=1 break else: flag=0 count+=1 print "" print "Game Over!!! Your Final Score is:", if(flag==0): print screen.getScore() else: print screen.getScore()+50
def main_loop(self): while self.done == False: #for event in pygame.event.get(): ## DISPLAY SCORE AND LIFE ##### FIREBALLS if self.firecount == 225: self.fireballs=fireball(self.plyboard.donk.rect.x,self.plyboard.donk.rect.y,25,25) self.fball.add(self.fireballs) self.firecount=0 else: self.firecount+=1 for manyballs in self.fball: if manyballs.rect.x<200 and manyballs.rect.y >800: self.fball.remove(manyballs) manyballs.move(self.plyboard.wall_list,self.plyboard.platform_list) if manyballs.collide(self.plyboard.player,self.fball) ==1: self.end=-1 break if self.end==-1: break ####### PLAYER MOVEMENT for self.event in pygame.event.get(): if self.event.type == pygame.QUIT : self.done= True ###### REACHING THE QUEEN if self.plyboard.queen.rect.bottom >= self.plyboard.player.rect.bottom: self.score+=50 self.end=1 break #### donkey player collsion if self.plyboard.donk.checkplayer(self.plyboard.gamer_list) == 1: self.end=-1 break self.plyboard.screen.fill(white) if self.event.type==pygame.KEYDOWN: if self.event.key == pygame.K_q: self.done= True self.grav=0 # to switch gravity on/off if self.plyboard.ladder.touch_check(self.plyboard.player,self.plyboard.ladder_list) > 0 and self.event.key != pygame.K_w and self.event.key!=pygame.K_SPACE : self.plyboard.player.change_y=0 self.grav=1 if self.event.key==pygame.K_a: self.plyboard.player.movlr(-self.block_size,0,1,0) elif self.event.key==pygame.K_d: self.plyboard.player.movlr(self.block_size,0,1,0) elif self.event.key==pygame.K_w and self.plyboard.ladder.touch_check(self.plyboard.player,self.plyboard.ladder_list) > 0: self.plyboard.player.movlr(0,-self.block_size,0,1) self.grav=1 elif self.event.key==pygame.K_SPACE : if self.plyboard.player.jump(self.plyboard.collide_list) == 0: if self.plyboard.ladder.touch_check(self.plyboard.player,self.plyboard.ladder_list) > 0: self.grav=1 self.plyboard.player.movlr(0,0,0,1) elif self.event.key==pygame.K_s: self.plyboard.player.movlr(0,self.block_size,0,1) if self.plyboard.ladder.touch_check(self.plyboard.player,self.plyboard.ladder_list) > 0: self.grav=1 if self.event.type==pygame.KEYUP: if self.plyboard.ladder.touch_check(self.plyboard.player,self.plyboard.ladder_list) > 0 : self.plyboard.player.change_y=0 self.grav=1 if self.event.key==pygame.K_a or self.event.key==pygame.K_d : #or self.plyboard.player.movlr(0,0,1,0) if self.event.key==pygame.K_w or self.event.key==pygame.K_s: self.plyboard.player.movlr(0,0,1,1) if self.plyboard.ladder.touch_check(self.plyboard.player,self.plyboard.ladder_list) == 0 : self.grav=0 self.flag=0 elif self.plyboard.ladder.touch_check(self.plyboard.player,self.plyboard.ladder_list) > 0 and self.flag==0 : self.plyboard.player.change_y=0 self.grav=1 self.flag=1 if self.end ==1 or self.end==-1: break #moving the donkey self.plyboard.donk.rand_move(self.plyboard.wall_list) ## Collecting coins self.score+=self.plyboard.player.collectCoin(self.plyboard.coin_list) self.plyboard.player.checkCollision(self.plyboard.collide_list,self.grav) self.plyboard.donk.checkCollision(self.plyboard.collide_list,0) self.plyboard.queen.checkCollision(self.plyboard.collide_list,0) for coin in self.plyboard.coin_list: coin.update(self.plyboard.platform_list) self.plyboard.screen.fill(white) self.plyboard.all_sprite_list.draw(self.plyboard.screen) self.plyboard.platform_list.draw(self.plyboard.screen) self.plyboard.ladder_list.draw(self.plyboard.screen) self.plyboard.coin_list.draw(self.plyboard.screen) self.fball.draw(self.plyboard.screen) self.plyboard.person_list.draw(self.plyboard.screen) self.plyboard.wall_list.draw(self.plyboard.screen) self.plyboard.display_score(self.score,self.life) pygame.display.update() self.clock.tick(100) #Sending score update if self.end ==- 1: return -self.score elif self.end ==1: return self.score else : return 3.14