小甲鱼python课程pygame第1课的学习笔记
#导入库import pygame
import sys
#初始化pygame
pygame.init()
#s=设置变量
size = width, height = 600, 400#设置高和宽
speed = [-2, 1]#设置速度:列表的第一个参数是x的移动,第二个是y的移动
bg = (255, 255, 255)#设置颜色rgb
turtle = pygame.image.load(r"C:\Users\24734\Desktop\code\img\turtle.png")#导入图片
position = turtle.get_rect()#获取图片
screen = pygame.display.set_mode(size)#把窗口的大小设置为size
pygame.display.set_caption('fihc demo')#设置标题为fishc demo
#游戏循环
while True:
#获取事件
for event in pygame.event.get():
#如果pygame事件为quit,那么久退出
if event.type == pygame.QUIT:
sys.exit()
#让position(乌龟)移动speed
position = position.move(speed)
#碰到边缘就反弹
#X轴
if position.left < 0 or position.right > width:
turtle = pygame.transform.flip(turtle,True,False)#翻转:第一个参数是图片,第二个是是否翻转x轴,第二个是是否翻转y轴
speed = -speed
#Y轴
if position.top < 0 or position.bottom > height:
speed = -speed
#刷新
screen.fill(bg)#刷新背景
screen.blit(turtle, position)#刷新图像
pygame.display.flip()#刷新
pygame.time.delay(10)#设置延迟(不然乌龟就飞了) 根据您的学习笔记,我注意到代码中有几处需要修正的地方。以下是完善后的代码和学习要点:
主要修正点:
1. speed 变量未初始化,需要设置初始速度值
2. 边界反弹逻辑需要分别处理 X/Y 轴
3. 翻转图片时需注意参数顺序
修正后的完整代码:
import pygame
import sys
# 初始化pygame
pygame.init()
# 设置变量
size = width, height = 600, 400
speed = #
bg = (255, 255, 255)# 白色背景
turtle = pygame.image.load("turtle.png")# 图片路径
position = turtle.get_rect()
screen = pygame.display.set_mode(size)
pygame.display.set_caption('FishC Demo')# 修正标题
# 游戏主循环
while True:
# 事件处理
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 移动位置
position = position.move(speed)
# X轴边界检测
if position.left < 0 or position.right > width:
# 水平翻转图片(左右翻转)
turtle = pygame.transform.flip(turtle, True, False)
speed = -speed# 反转X方向速度
# Y轴边界检测
if position.top < 0 or position.bottom > height:
speed = -speed# 反转Y方向速度
# 刷新画面
screen.fill(bg)
screen.blit(turtle, position)
pygame.display.flip()
pygame.time.delay(10)
关键知识点:
1. 速度设置:使用列表 分别控制XY方向移动
2. 边界反弹原理:
o X轴:碰到左右边界时反转水平速度并翻转图片
o Y轴:碰到上下边界时仅反转垂直速度
3. 图片翻转:
pygame.transform.flip(图片, 水平翻转, 垂直翻转)
o 水平翻转:True=镜像翻转,False=不翻转
o 垂直翻转:True=上下翻转,False=不翻转
4. 矩形边界检测:
o left/right:矩形左右边界位置
o top/bottom:矩形上下边界位置
常见问题解决:
1. 图片加载失败:检查文件路径,建议将图片放在同目录下
2. 移动速度过快:调整 speed 数值和 delay 值
3. 反弹方向错误:确保只翻转速度的对应分量(X轴改,Y轴改)
这个程序会创建一个小乌龟在窗口内弹跳的动画效果,碰到边界会自动反弹并翻转图像方向。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]