python3 pygame实现接小球游戏
作者:Higashino_Keigo 发布时间:2023-07-28 18:04:21
标签: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() #更新
来源:https://blog.csdn.net/Higashino_Keigo/article/details/80276141
0
投稿
猜你喜欢
- 像素误差看自己设计好上线的网站,偶尔会发觉像素行间出现了弹性空间,总在不经意间蹦出一定的差距。有些页面很难发现,比如活动类页面,这类页面多呈
- 今天在写PHP程序的时候总是出现这样的错误:Parse error: syntax error, unexpected end of fil
- MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维
- 以前跟同事开玩笑时说过,我们遇到的用户在访谈测试过程中的表现基本上就三种类型,发泄型,赞美型和实话实说型。发泄型用户通常是在产品的使用过程中
- python3中str默认为Unicode的编码格式Unicode是一32位编码格式,不适合用来传输和存储,所以必须转换成utf-8,gbk
- 在设计网页之前,客户或产品经理会提出对网页视觉风格设计的期望:活跃、大气、稳重、信赖、都市化….. 设计师一听到关键词或许很自然地在心里蹦出
- 前面说到最近在写python的一些东西,然后和另外一位小伙伴定义了协议,然后昨天我有一部分东西没理解对,昨天上午我自己重写了一遍接收和发送的
- 今天在看实验室的项目时,碰到了一个让我“棘手”的问题,其实也是自己太笨了。先把 sql 语句扔出来// 这条语句在id没有1时,不能得到正确
- 是因工作需要做的一个批量修改代码的小东西,拿出来与大家分享。 目前可以处理的文件类型:.asp .inc .htm .html
- 我就废话不多说了,大家还是直接看代码吧!cmd.py# -*- coding: utf-8 -*-from PySide import Qt
- 在程序设计过程中,经常需要对输入的数据格式进行检查,这时就会用到正则表达式,匹配正则表达式则数据格式正确,否则格式错误。为了检查输入的数据是
- 科学设计你的网站网页:来自 Eye-Tracking研究的23节必修课 ——Christina Laun在网络设计领域关于Eye-
- 迭代器什么是迭代迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代&
- 前言: 在 MySQL 运维过程中,锁等待和死锁问题是令各位 DBA 及开发同学非常头痛的事。出现此类问题会造成业务回滚、卡顿等故
- 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip
- 一.Array在Go语言中,数组是一个值类型(value type)所有的值类型变量在赋值和作为参数传递时都将产生一个复制动作如果作为函数的
- Chrome 浏览器的书签如果可以导出,并转换为我们需要的格式时,我们就可以编写各种插件来配合书签的使用。答案显然是可以的,接下来我们以 P
- 本文只考虑模板中的字符串,不考虑字符串中带标签的情况。模板中的字符串文字不会自动转义,因为这里默认模板的作者已经正确书写模板的内容。{{ d
- 一、base64模块base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括 RFC3548中定义的Base16, Ba
- 代码如下:using System; using System.Data; using System.Configuration; usin