|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
操作键盘使图片翻转,为什么直接在对应的判断里调用翻转的方法会每一次点击就翻转一次,而调用橘黄色部分的方法多次点击只有第一次生效啊
两个方法都是一样来的l_head = turtle
r_head = pygame.transform.flip(turtle, True, False)
while True:
# 获取用户当前动作的事件列表
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if event.type == KEYDOWN:
# print(str(event.key))
if event.key == K_LEFT:
speed = [-1, 0]
turtle = l_head
if event.key == K_RIGHT:
speed = [1, 0]
turtle = r_head
# turtle = pygame.transform.flip(turtle, True, False)
if event.key == K_UP:
speed = [0, -1]
if event.key == K_DOWN:
speed = [0, 1]
本帖最后由 小伤口 于 2021-3-24 14:56 编辑
r_head = pygame.transform.flip(turtle, True, False)
这个表明r_head已经是翻转的图片
他并没有进入while循环里
也就表明r_head只是单纯的一张原来图片再翻过来的图片
而在while循环加入turtle = pygame.transform.flip(turtle, True, False)
意思就表明每点击右键就反转一次
所以两者是有差别的
当然你也可以把r_head = pygame.transform.flip(turtle, True, False)
加入while循环里面
也就是这样import pygame
import sys
import os
from pygame.locals import *
# 初始化Pygame
pygame.init()
# 设置帧率
clock = pygame.time.Clock()
size = width, height = 500, 600
# 每次移动的位置
speed = [2, 1]
bg = (255, 255, 255)
data = os.path.dirname(os.path.realpath(__file__))
data_image = os.path.join(data, "image\优领108.png")
# 创建指定大小的窗口
screen = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption("(ノ◑ ◑)ノ(。•́︿•̀。)")
# 加载图片
turtle = pygame.image.load(data_image)
# 获取图片矩形位置
position = turtle.get_rect()
l_head = turtle
while True:
r_head = pygame.transform.flip(turtle, True, False)
# 获取用户当前动作的事件列表
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if event.type == KEYDOWN:
# print(str(event.key))
if event.key == K_LEFT:
speed = [-1, 0]
turtle = l_head
if event.key == K_RIGHT:
speed = [1, 0]
turtle = r_head
#turtle = pygame.transform.flip(turtle, True, False)
if event.key == K_UP:
speed = [0, -1]
if event.key == K_DOWN:
speed = [0, 1]
# 移动图像
position = position.move(speed)
if position.left < 0 or position.right > width:
# 翻转图像
# 需要翻转的图像, 水平翻转的Boolean值, 垂直翻转的Boolean值
turtle = pygame.transform.flip(turtle, True, False)
# 反向移动
speed[0] = -speed[0]
if position.top < 0 or position.bottom > height:
speed[1] = -speed[1]
# 填充背景
screen.fill(bg)
# 更新图像
screen.blit(turtle, position)
# 更新界面
pygame.display.flip()
# 延迟10毫秒
# pygame.time.delay(0)
clock.tick(40)
也会出现同样的问题
欢迎继续提问
有帮助的话请设置最佳吧
|
|