首页 > 开发 > Python > 正文

python使用pygame实现笑脸乒乓球弹珠球游戏

2020-07-28 13:55:51
字体:
来源:转载
供稿:网友

今天我们用python和pygame实现一个乒乓球的小游戏,或者叫弹珠球游戏。

笑脸乒乓球游戏功能介绍

乒乓球游戏功能如下:

乒乓球从屏幕上方落下,用鼠标来移动球拍,使其反弹回去,并获得得分,如果没有接到该球,则失去一条命。玩家有一定数量的命如5。

游戏设计思路

根据游戏规则,我们需要

1、初始化游戏环境
2、画出乒乓球,球拍等
3、设置乒乓球的运动,并监听鼠标,以移动球拍
4、判断乒乓球被接住与否
5、游戏是否结束,是否再玩。

代码实现

import pygamepygame.init()screen_width=800screen_height=600screen=pygame.display.set_mode([screen_width,screen_height])pygame.display.set_caption("笑脸乒乓球")keepGoing=Truepic=pygame.image.load("CrazySmile.bmp")colorkey = pic.get_at((0,0))pic.set_colorkey(colorkey)picx=0picy=0BLACK=(0,0,0)WHITE=(255,255,255)timer=pygame.time.Clock()paddle_width=200paddle_height=25paddle_x=300paddle_y=550speedx=5speedy=5#图片的高度和宽度pic_width=pic.get_width()pic_height=pic.get_height()#分数和命points=0lives=5font=pygame.font.SysFont("Times",24)pop = pygame.mixer.Sound("pop.wav")while keepGoing: for event in pygame.event.get(): if event.type==pygame.QUIT:  keepGoing=False if event.type == pygame.KEYDOWN:  if event.key == pygame.K_F1: # F1 = New Game  points = 0  lives = 5  picx = 0  picy = 0  speedx = 5  speedy = 5 pop.play() picx += speedx picy += speedy if picx <= 0 or picx >= 700: speedx = -speedx * 1.1 if picy <= 0: speedy = -speedy + 1 if picy >= 500: lives -= 1 speedy = -5 speedx = 5 picy = 499 # if picx <= 0 or picx + pic_width > screen_width: # speedx = -speedx # if picy <= 0: # speedy = -speedy # if picy >= 500: # lives -= 1 # speedy = -speedy screen.fill(BLACK) screen.blit(pic, (picx, picy)) # 画出球拍 paddle_x = pygame.mouse.get_pos()[0] paddle_x -= paddle_width / 2 pygame.draw.rect(screen, WHITE, (paddle_x, paddle_y, paddle_width, paddle_height)) #判断接住乒乓球 if picy + pic_width > paddle_y and picy + pic_height < paddle_y + paddle_height and speedy > 0: if picx + pic_width / 2 > paddle_x and picx + pic_width / 2 < paddle_x + paddle_width:  points += 1  speedy = -speedy # 在屏幕上画出得分 draw_string = "Lives: " + str(lives) + " Points: " + str(points) if lives<1: draw_string="Game Over. Your scores is "+str(points) draw_string+="press F1 to play again" text = font.render(draw_string, True, WHITE) text_rect = text.get_rect() text_rect.centerx = screen.get_rect().centerx text_rect.y = 10 screen.blit(text, text_rect) pygame.display.update() timer.tick(60)pygame.quit()

代码中用的乒乓球是如下图片。

总结

1、通过上述代码,功能基本实现
2、可以有很多改进,如通过键盘来操控球拍,如给游戏加上背景音乐,其中加音乐的方法是

pop = pygame.mixer.Sound("pop.wav")pop.play()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持错新网之家。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表