网络编程
位置:首页>> 网络编程>> Python编程>> python使用pygame实现笑脸乒乓球弹珠球游戏

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

作者:HelloWorld!  发布时间:2021-07-26 09:49:47 

标签:pygame,乒乓球,弹珠球

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

笑脸乒乓球游戏功能介绍

乒乓球游戏功能如下:

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

游戏设计思路

根据游戏规则,我们需要

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

代码实现


import pygame
pygame.init()
screen_width=800
screen_height=600
screen=pygame.display.set_mode([screen_width,screen_height])
pygame.display.set_caption("笑脸乒乓球")
keepGoing=True
pic=pygame.image.load("CrazySmile.bmp")
colorkey = pic.get_at((0,0))
pic.set_colorkey(colorkey)
picx=0
picy=0
BLACK=(0,0,0)
WHITE=(255,255,255)
timer=pygame.time.Clock()
paddle_width=200
paddle_height=25
paddle_x=300
paddle_y=550

speedx=5
speedy=5
#图片的高度和宽度
pic_width=pic.get_width()
pic_height=pic.get_height()
#分数和命
points=0
lives=5
font=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()

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

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

总结

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


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

来源:https://blog.csdn.net/weixin_45690272/article/details/103218445

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com