目录
一 pygame最小框架
做pygame游戏必写的代码,有了这些才能初步的运行起来。
import pygame
#pygame初始化
pygame.init()
# 设置窗口大小
screen_width = 400
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
running = True
while running:
#遍历所有事件,包括鼠标、键盘的操作等
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
#背景设为白色
screen.fill(255,255,255)
#刷新
pygame.display.flip()
二 做个小弹球
本部分用pygame做个弹球,效果图如下:
1 导入随机库
先在开头导入随机库
import random
2 设置弹球的几个变量
在while
循环的前面加入代码
# 定义白色
white = 255,255,255
# 定义红色
red = 255,0,0
# 定义弹球的半径
ball_radius = 10
# 定义球出现的坐标位置
# x为0+球的半径 到 窗口大小-半径,高度为0
ball_pos = [random.randint(ball_radius, screen_width - ball_radius), 0]
# 球的速度
ball_speed = 0.1
3 弹球的运动
在循环内部、窗口刷新的前面加入
# 球的坐标列表
ball_pos[1] += ball_speed
# 在屏幕上画弹球
# 参数分别为:窗体名称、颜色、球的坐标、球的半径
pygame.draw.circle(screen, red, ball_pos, ball_radius)
三 球弹起来
让弹球遇到窗口的边缘弹起来,本部分的效果
1 更改球的速度变量
上部分定义的速度变量主要是控制球的向下落,也就是y坐标
让球弹起来的过程,我们也要x的坐标加入,也就是向下落的过程中随机向左或向右移动
ball_speed = [random.uniform(-0.1,0.1), 0.1]
2 刷新过程的变更的变更
将上面 第二部分做弹球的第3步“3 弹球的运动”代码全部改为下面这样
#更改球的坐标
#列表的0位表示x坐标,向左或向右移动
#列表的1位表示y坐标,向下落
ball_pos[0] += ball_speed[0]
ball_pos[1] += ball_speed[1]
#如果球的y坐标超过窗口高度,
#或者球的y坐标超过窗口的最顶部
#将y的增量速度加个负号,改为相反值
if ball_radius+ball_pos[1]>screen_height or ball_pos[1]-ball_radius<0:
ball_speed[1] = -ball_speed[1]
#同理改x坐标
if ball_radius+ball_pos[0]>screen_width or ball_pos[0]-ball_radius<0:
ball_speed[0] = -ball_speed[0]
pygame.draw.circle(screen, red, ball_pos, ball_radius)
四 加入档板
加入一个挡板来接小球
1 挡板的变量定义
这里和弹球的变量定义基本一样
paddle_width = 80 #板宽度
paddle_height = 10 #板厚度
# 板的坐标,x位于屏幕中间,y为窗口底-板厚度-20
paddle_pos = [(screen_width - paddle_width)/2,
screen_height - paddle_height-20]
# 板的移动速度
paddle_speed = 1
2 挡板的刷新
以下为画矩形有代码,放入循环中
#下面这是一行
#画矩形有参数:窗口、颜色、矩形位置坐标和尺寸
pygame.draw.rect(screen, red,
(paddle_pos[0], paddle_pos[1], paddle_width, paddle_height))
五 挡板移动
1 变量定义
定义两个变量判断是否按下向左或向右键
paddle_bool_right = False
paddle_bool_left = False
2 方向键按下的判断
在while循环的if后加入elif
#如果当前的事件类型为按下键盘
elif event.type == pygame.KEYDOWN:
#如果按下右键,更改两个变量的值
if event.key==pygame.K_RIGHT:
paddle_bool_left= False
paddle_bool_right = True
elif event.key==pygame.K_LEFT:
paddle_bool_left = True
paddle_bool_right = False
3 按下方向键的优化
如果只有上面的代码,会出现bug:按下后一直向某个方向移动
elif event.type == pygame.KEYUP:
if event.key==pygame.K_RIGHT:
paddle_bool_right = False
if event.key==pygame.K_LEFT:
paddle_bool_left= False
六 pygame弹球游戏代码全部下载
pygame弹球游戏,我把整个流程都做了,包括文字显示、游戏结束的判断、按回车重新开始游戏等,过程全写在这里就太多了,就不赘述了,可以把全部代码下载细看
因为是为pygame初学者而写,所以程序是白色背景的,没有加入图片,你可以试着加入图片背景等,让程序看着更好看
下载方法:
关注本号之后,后台发送消息:弹球游戏
本文结束
如有疑问,请直接留言!必回!
如有帮助,请点赞转发!感谢!
关注Python入门速学,
带你实战快速学Python
原文始发于微信公众号(Python入门速学):初学pygame必做的小游戏:python弹球游戏
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/236368.html