python游戏源码博客园下载_一个python游戏源码

#finalPyPong.py

importpygame,sysclassMyBallClass(pygame.sprite.Sprite):def __init__(self,image_file,speed,location=[0,0]):

pygame.sprite.Sprite.__init__(self)

self.image=pygame.image.load(image_file)

self.rect=self.image.get_rect()

self.rect.left,self.rect.top=location

self.speed=speeddefmove(self):globalpoints,score_text

self.rect=self.rect.move(self.speed)if self.rect.left < 0 or self.rect.right >screen.get_width():

self.speed[0]= -self.speed[0]if self.rect.top

hit_wall.play()if self.rect.top <=0 :

self.speed[1] = -self.speed[1]

points= points + 1score_text= font.render(str(points),1,(0,0,0))

get_point.play()classMyPaddleClass(pygame.sprite.Sprite):def __init__(self,location=[0,0]):

pygame.sprite.Sprite.__init__(self)

image_surface= pygame.surface.Surface([100,20])

image_surface.fill([0,0,0])

self.image=image_surface.convert()

self.rect=self.image.get_rect()

self.rect.left,self.rect.top=location

pygame.init()

pygame.mixer.init()

pygame.mixer.music.load("bg_music.mp3")

pygame.mixer.music.set_volume(0.3)

pygame.mixer.music.play(-1)

hit= pygame.mixer.Sound("hit_paddle.wav")

hit.set_volume(0.4)

new_life= pygame.mixer.Sound("new_life.wav")

new_life.set_volume(0.5)

splat= pygame.mixer.Sound("splat.wav")

splat.set_volume(0.6)

hit_wall= pygame.mixer.Sound("hit_wall.wav")

hit_wall.set_volume(0.4)

get_point= pygame.mixer.Sound("get_point.wav")

get_point.set_volume(0.2)

bye= pygame.mixer.Sound("game_over.wav")

bye.set_volume(0.6)

screen= pygame.display.set_mode([640,480])

clock=pygame.time.Clock()

myBall= MyBallClass("wackyball.bmp",[12,6],[50,50])

ballGroup=pygame.sprite.Group(myBall)

paddle= MyPaddleClass([270,400])

lives= 3points=0

font= pygame.font.Font(None,50)

score_text= font.render(str(points),1,(0,0,0))

textpos= [10,10]

done=Falsewhile 1:

clock.tick(30)

screen.fill([255,255,255])for event inpygame.event.get():if event.type ==pygame.QUIT:

sys.exit()elif event.type ==pygame.MOUSEMOTION:

paddle.rect.centerx=event.pos[0]ifpygame.sprite.spritecollide(paddle,ballGroup,False):

hit.play()

myBall.speed[1] = -myBall.speed[1]

myBall.move()if notdone:

screen.blit(myBall.image,myBall.rect)

screen.blit(paddle.image,paddle.rect)

screen.blit(score_text,textpos)for i inrange(lives):

width=screen.get_width()

screen.blit(myBall.image,[width-40*i,20])

pygame.display.flip()if myBall.rect.top >=screen.get_rect().bottom:if notdone:

splat.play()

lives= lives - 1

if lives <=0:if notdone:

pygame.time.delay(1000)

bye.play()

final_text1= "Game Over"final_text2= "Your final socre is:" +str(points)

ft1_font= pygame.font.Font(None,70)

ft1_surf= font.render(final_text1,1,(0,0,0))

ft2_font= pygame.font.Font(None,50)

ft2_surf= font.render(final_text2,1,(0,0,0))

screen.blit(ft1_surf,[screen.get_width()/2 - ft1_surf.get_width()/2,100])

screen.blit(ft2_surf,[screen.get_width()/2 - ft2_surf.get_width()/2,200])

pygame.display.flip()

done=True

pygame.mixer.music.fadeout(2000)else:

pygame.time.delay(1000)

new_life.play()

myBall.rect.topleft= [50,50]

screen.blit(myBall.image,myBall.rect)

pygame.display.flip()

pygame.time.delay(1000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值