当前位置: 首页 > news >正文

青岛企业建站河北三河建设厅网站6

青岛企业建站,河北三河建设厅网站6,中铁集团招聘,商贸有限公司企业简介使用python pygame库实现一个双人弹球小游戏#xff0c;两人分别控制一个左右移动的挡板用来拦截小球#xff0c;小球会在两板间不停弹跳#xff0c;拦截失败的一方输掉游戏#xff0c;规则类似于简化版的乒乓球。因为是第一次用pygame写python小游戏并且只用了两三个小时两人分别控制一个左右移动的挡板用来拦截小球小球会在两板间不停弹跳拦截失败的一方输掉游戏规则类似于简化版的乒乓球。因为是第一次用pygame写python小游戏并且只用了两三个小时所以有些粗糙部分方面有些bug比如板子可以移动出屏幕外游戏结束后的提示显示不全。但是关键部分如小球的移动和基本功能等还算比较完善。代码如下运行环境为python 3.7需要安装pygame库import pygame,sys,time,randomfrom pygame.locals import *# 定义颜色变量redColour pygame.Color(255,0,0)blackColour pygame.Color(0,0,0)whiteColour pygame.Color(255,255,255)greyColour pygame.Color(150,150,150)# 定义gameOver函数def gameOver(playSurface,board):gameOverFont pygame.font.Font(C:\Windows\Fonts\consola.ttf,72)if board[0][1]0:gameOverSurf gameOverFont.render(board_2 win!, True, greyColour)if board[0][1]460:gameOverSurf gameOverFont.render(board_1 win!, True, greyColour)gameOverRect gameOverSurf.get_rect()gameOverRect.midtop (320, 10)playSurface.blit(gameOverSurf, gameOverRect)againFont pygame.font.Font(C:\Windows\Fonts\consola.ttf,24)againSurf gameOverFont.render(Do you want to try again? y/n, True, whiteColour)againRectagainSurf.get_rect()againRect.midtop(20,100)playSurface.blit(againSurf, againRect)pygame.display.flip()time.sleep(3)for event in pygame.event.get():if event.key ord(y):main()if event.keyord(n):pygame.quit()sys.exit()pygame.quit()sys.exit()# 定义main函数def main():# 初始化pygamepygame.init()fpsClock pygame.time.Clock()# 创建pygame显示层playSurface pygame.display.set_mode((640,480))pygame.display.set_caption(ping pang ball)# 初始化变量#两块板子为5块正方形组成的矩形,小球为1块正方形正方形大小为20x20board_1 [[100,0],[120,0],[140,0],[160,0],[180,0]]board_2 [[100,460],[120,460],[140,460],[160,460],[180,460]]ball [100,100]direction3 #控制小球X轴的移动方向及速度direction_x0 #判断小球沿X轴正向还是反向移动 0反向 1正向2没有速度direction_y1 #控制小球Y轴的移动方向及速度 0反向1正向# 检测例如按键等pygame事件while True:for event in pygame.event.get():if event.type QUIT:pygame.quit()sys.exit()elif event.type KEYDOWN:# 判断键盘事件控制板子移动if event.key K_RIGHT:for i in board_1:i[0]20if event.key K_LEFT:for i in board_1:i[0]-20if event.key ord(a):for i in board_2:i[0]-20if event.key ord(d):for i in board_2:i[0]20if event.key K_ESCAPE:pygame.event.post(pygame.event.Event(QUIT))# 判断小球击中board_1的位置范围为板子的左角到右角if ball[1] board_1[0][1]20 and board_1[0][0]-20ball[0]board_1[4][0]20:direction_y1 #若击中板子则Y轴方向正向移动#判断小球击中板子左角的状态如果小球击中板子左角并且移动方向为正向则if ball[0]board_1[0][0]-20 and direction_x1:direction0 #设此刻方向改为0#如果小球击中板子左数第一块则if ball[0]board_1[0][0]:direction1 #设此刻方向改为1#如果小球击中板子左数第二块则if ball[0]board_1[1][0]:direction2 #设此刻方向改为2#如果小球击中板子正中间则if ball[0]board_1[2][0]:direction3 #设此刻方向改为3#如果小球击中板子左数第四块则if ball[0]board_1[3][0]:direction4 #设此刻方向改为4#如果小球击中板子左数第五块则if ball[0]board_1[4][0]:direction5 #设此刻方向改为5#如果小球击中板子右角并且移动方向为反向if ball[0]board_1[4][0]20 and direction_x0:direction6 #设此刻方向改为6#如果小球击中板子两角但是没有速度即竖直移动if direction_x2 and (ball[0]board_1[0][0]-20 or ball[0]board_1[4][0]20):direction_y0 #设此刻Y轴方向改为0#判断小球击中board_2的位置与击中board_1时相比只改变Y轴的方向X轴不变if ball[1]board_2[0][1]-20 and board_2[0][0]-20ball[0]board_2[4][0]20:direction_y0if ball[0]board_2[0][0]-20 and direction_x1:direction0if ball[0]board_2[0][0]:direction1if ball[0]board_2[1][0]:direction2if ball[0]board_2[2][0]:direction3if ball[0]board_2[3][0]:direction4if ball[0]board_2[4][0]:direction5if ball[0]board_2[4][0]20 and direction_x0:direction6if direction_x2 and (ball[0]board_2[0][0]-20 or ball[0]board_2[4][0]20):direction_y1if ball[0]0:direction4if ball[0]620:direction2#设置小球Y轴的移动速度if direction_y0:ball[1]-20if direction_y1:ball[1]20#设置小球X轴的移动速度,X,Y轴速度的改变形成角度if direction0:ball[0]-40direction_x0if direction1:ball[0]-40direction_x0if direction2:ball[0]-20direction_x0if direction3:direction_x2if direction4:ball[0]20direction_x1if direction5:ball[0]40direction_x1if direction6:ball[0]40direction_x1# 绘制pygame显示层playSurface.fill(blackColour)pygame.draw.rect(playSurface,whiteColour,Rect(board_1[0],(100,20)))pygame.draw.rect(playSurface,whiteColour,Rect(board_2[0],(100,20)))pygame.draw.rect(playSurface,redColour,Rect(ball,(20,20)))# 刷新pygame显示层pygame.display.flip()# 判断胜利if ball[1]board_1[0][1] and (ball[0]board_1[4][0]):gameOver(playSurface,board_1)if ball[1]board_2[0][1] and (ball[0]board_2[4][0]):gameOver(playSurface,board_2)# 控制游戏速度fpsClock.tick(5)if __name__ __main__:main()运行结果如下以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持我们。时间 2019-11-23
http://www.pierceye.com/news/286066/

相关文章:

  • 宁波专业的网站搭建公司天津网站建设技术托管
  • 做水果网站特点分析报告怎样在百度上注册自己的公司
  • 800元五合一建站上海企业排行榜
  • 学校建设网站前的市场分析上海到北京火车时刻表查询
  • 科技企业网站设计网站开发费如何入账
  • 网站主体必须要与域名注册人相同网页设计尺寸标准
  • wordpress建淘宝客网站吗网站建设与维护技术浅谈论文
  • 网站建设 技术方案网站建设的指导书
  • ps网站首页怎么做google 浏览器
  • 网站建设数据库软件制作公司宣传片哪家好
  • 高端建站模版大兴模版网站建设哪家好
  • 帝国cms怎样做网站迁移西安网站设计公司排名
  • 网站建设三折页做僾网站
  • 长沙的网站建设公司上海做网站的哪家好
  • 网站开发做什么网站建设银行北京冬奥会纪念币发行时间
  • 企业怎么建设网站网站建设与管理计划
  • 域名怎么制作网站旅游线路设计方案模板
  • 专门做mmd的网站wordpress 免费商城
  • 简洁大气国内企业网站房产网签备案是什么意思
  • 海东企业网站建设公司佛山搜索引擎推广服务好
  • 建设电子商务网站策划书开发网站开发
  • 创建个人网站的流程沈阳德泰诺网站建设
  • 网站备案 接口开一个网站多少钱
  • 郑州网站制作公司哪家好公司网页怎么设计
  • 如何做好企业网站建设工作公众微信网站建设
  • 企业网站开发时间动效网站怎么做
  • 网站编辑是网页制作么表格制作excel下载
  • 网站开发 发表文章网站开发和移动开发
  • 建设银行网站的目的是什么意思展览策划
  • 没有网站如何做落地页wordpress 用户 购物