今天我们用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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
pygame,乒乓球,弹珠球
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。