Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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))
Пример #4
0
 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))
Пример #5
0
 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)
Пример #6
0
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
Пример #7
0
    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)
Пример #8
0
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
Пример #9
0
	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