python钻石和玻璃球游戏_python使用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()

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

总结

1、通过上述代码,功能基本实现

2、可以有很多改进,如通过键盘来操控球拍,如给游戏加上背景音乐,其中加音乐的方法是

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

pop.play()

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值