python3 pygame实现接小球游戏


Posted in Python onMay 14, 2019

本文实例为大家分享了python3 pygame接小球游戏的具体代码,供大家参考,具体内容如下

操作方法:鼠标操作

截图:

python3 pygame实现接小球游戏

python3 pygame实现接小球游戏

直接放代码:

# -*- coding:utf-8 -*-
import sys,pygame,random #导入库
from pygame.locals import *
 
def print_text(font,x,y,text,color=(255,255,255)):
 imgText = font.render(text,True,color) # 创建字体,三个参数是文本.抗锯齿.颜色
 screen.blit(imgText,(x,y)) #built screen 创建文本窗口
 
pygame.init() #init 初始化
 
#窗口设置
screen = pygame.display.set_mode((600,500))#screen-size 窗口大小设置
pygame.display.set_caption('BallFall') #title 窗口标题
font1 = pygame.font.Font(None,24) #font,size 字体类型(None为pygame默认字体).字体大小
pygame.mouse.set_visible(False) #mouse-visible 光标可视
 
#颜色设置
white = 255,255,255 #rgb 
red = 220,50,50
yellow = 230,230,50
blue = 0,0,100
 
#计数设置
lives = 3 #初始生命
score = 0 #初始分数
 
#初始化设置
game_over = True #游戏结束判断
mouse_x = mouse_y = 0 #光标初始化
pos_x = 300 #挡板位置初始化
pos_y = 460 
bomb_x = random.randint(0,500) #小球位置随机初始化
bomb_y = -50 #小球下落高度初始化
vel_y = 0.3 #小球下落速度
 
while True:
 for event in pygame.event.get(): #事件判断
 if event.type == QUIT:
 pygame.quit()
 sys.exit()
 elif event.type == MOUSEMOTION: #鼠标运动
 mouse_x,mouse_y = event.pos 
 elif event.type == MOUSEBUTTONUP: #鼠标抬起
 if game_over:
 game_over = False
 lives = 3
 score = 0
 
 keys = pygame.key.get_pressed() #获取键盘
 if keys[K_ESCAPE]: #键盘右上角esc键
 pygame.quit()
 sys.exit()
 
 screen.fill(blue) #背景颜色
 
 if game_over:
 print_text(font1,100,200,'click to play')
 else: #判断小球运行轨迹
 bomb_y += vel_y
 if bomb_y > 500: #fallen
 bomb_x = random.randint(0,500) #小球随机出现
 bomb_y = -50
 lives -= 1
 if lives == 0:
 game_over = True
 elif bomb_y > pos_y:
 if bomb_x > pos_x and bomb_x < pos_x + 120:
 score += 1
 bomb_x = random.randint(0,500)
 bomb_y = -50 
 
 pygame.draw.circle(screen,yellow,(bomb_x,int(bomb_y)),30,0) #绘制圆形 五个参数为屏幕.颜色.位置.实心半径.空心半径
 
 pos_x = mouse_x #挡板位置变化设置
 if pos_x < 0:
 pos_x = 0
 elif pos_x > 500:
 pos_x = 500
 
 pygame.draw.rect(screen,red,(pos_x,pos_y,120,40),0) #绘制矩形 参数跟圆形一样
 
 print_text(font1,0,0,'Lives:' + str(lives)) #文字显示
 print_text(font1,500,0,'Score:' + str(score))
 
 pygame.display.update() #更新

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

Python 相关文章推荐
python在windows和linux下获得本机本地ip地址方法小结
Mar 20 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
python一键升级所有pip package的方法
Jan 16 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
对python_discover方法遍历所有执行的用例详解
Feb 13 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
哪些是python中web开发框架
Jun 17 Python
python爬虫请求头的使用
Dec 01 Python
python使用pygame创建精灵Sprite
Apr 06 Python
pytorch 如何使用amp进行混合精度训练
May 24 Python
Django 多环境配置详解
May 14 #Python
python仿evething的文件搜索器实例代码
May 13 #Python
python爬虫租房信息在地图上显示的方法
May 13 #Python
详解如何设置Python环境变量?
May 13 #Python
详解python运行三种方式
May 13 #Python
OpenCV图像颜色反转算法详解
May 13 #Python
搞清楚 Python traceback的具体使用方法
May 13 #Python
You might like
PHP的变量总结 新手推荐
2011/04/18 PHP
PHP使用递归生成文章树
2015/04/21 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
node后端服务保活的实现
2019/11/10 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
JavaScript canvas实现文字时钟
2021/01/10 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
Python面向对象之Web静态服务器
2019/09/03 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
如何安装ruby on rails
2014/02/09 面试题
Delphi笔试题
2016/11/14 面试题
九年级科学教学反思
2014/01/29 职场文书
安全生产宣传标语
2014/06/06 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
公司给客户的感谢信
2015/01/23 职场文书
2015年体育部工作总结
2015/04/02 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
学校就业保障协议书
2019/06/24 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
mysql联合索引的使用规则
2021/06/23 MySQL
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技