|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
操作键盘使图片翻转,为什么直接在对应的判断里调用翻转的方法会每一次点击就翻转一次,而调用橘黄色部分的方法多次点击只有第一次生效啊
两个方法都是一样来的
- l_head = turtle
- [color=Orange]r_head = pygame.transform.flip(turtle, True, False)[/color]
- 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
- # [color=Lime]turtle = pygame.transform.flip(turtle, True, False)[/color]
- 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)
复制代码
也会出现同样的问题
欢迎继续提问
有帮助的话请设置最佳吧
|
|