今天我们用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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月19日
2024年11月19日
- 黑鸭子2008-男人女人[首版][WAV+CUE]
- 张佳佳 《FOLK SONG Ⅱ Impromptus OP.23(即兴曲7首)》[320K/MP3][98.71MB]
- 祖海 《我家在中国 (维也纳金色大厅独唱音乐会)》[320K/MP3][118.55MB]
- 祖海 《我家在中国 (维也纳金色大厅独唱音乐会)》[FLAC/分轨][268.08MB]
- 张信哲.1996-思念【EMI百代】【WAV+CUE】
- 江美琪.2024-圆的?圆的>华纳】【FLAC分轨】
- 许巍.2018-无尽光芒【和雅弘嘉】【WAV+CUE】
- 庆怜 CAELAN《THE HALF-BLOOD PRINCE 半血王子》[320K/MP3][65.72MB]
- 庆怜 CAELAN《THE HALF-BLOOD PRINCE 半血王子》[FLAC/分轨][378.53MB]
- Fine乐团《废墟游乐》[320K/MP3][105.13MB]
- 万山红.2009-花开原野万山红Vol.1-2【柏菲】2CD【WAV+CUE】
- 曾庆瑜1992-18首中英文经典全集[台湾派森][WAV整轨]
- 【上扬爱乐】群星-TheSoundsofLS35AVol.4情迷4【低速原抓WAV分轨】
- Fine乐团《废墟游乐》[Hi-Res][24bit 48kHz][FLAC/分轨][767.04MB]
- Cicada《回返 (十五周年自选集)》[320K/MP3][93.87MB]