首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Pygame中翻转img,在我的代码中有问题?

如何在Pygame中翻转img,在我的代码中有问题?
EN

Stack Overflow用户
提问于 2013-02-14 00:48:10
回答 1查看 5.7K关注 0票数 1

我在pygame中翻转一个精灵遇到了麻烦(我可以让它向右转,但我想让img在左键翻转),

我研究了如何翻转图像并找到了pygame.transform.flip,但作为pygame的初学者,我不确定如何使用它,而且教程对我来说也没有意义。

有人能帮我处理下面的代码吗(我甚至不确定我是否把翻转的self.img1放在了正确的位置)?

代码语言:javascript
复制
import pygame, sys, glob 
from pygame import *

class Player:
    def __init__(self):      
        self.x = 200     
        self.y = 300   
        self.ani_speed_init = 6
        self.ani_speed = self.ani_speed_init 
        self.ani = glob.glob("walk\Pinks_w*.png")
        self.ani.sort() 
        self.ani_pos = 0
        self.ani_max = len(self.ani)-1
        self.img = pygame.image.load(self.ani[0])
        self.img1 = pygame.transform.flip(self.ani[0], True, False)

        self.update(0)

    def update(self, pos):
        if pos != 0: 
            self.ani_speed-=1
            self.x+=pos
            if self.ani_speed == 0:
                self.img = pygame.image.load(self.ani[self.ani_pos])
                self.ani_speed = self.ani_speed_init
                if self.ani_pos == self.ani_max:
                    self.ani_pos = 0
                else:
                    self.ani_pos+=1
        screen.blit(self.img,(self.x,self.y))

h = 400
w = 800
screen = pygame.display.set_mode((w,h))
clock = pygame.time.Clock()
player1 = Player()
pos = 0

while True:
    screen.fill((0,0,0))
    clock.tick(60)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == KEYDOWN and event.key == K_RIGHT:
            pos = 1
        elif event.type == KEYUP and event.key == K_RIGHT:
            pos = 0
        elif event.type == KEYDOWN and event.key == K_LEFT:
            pos = -1
        elif event.type == KEYUP and event.key == K_LEFT:
            pos = 0

    player1.update(pos)

    pygame.display.update()
EN

回答 1

Stack Overflow用户

发布于 2013-02-14 08:16:25

要进行翻转,您将执行以下操作:

代码语言:javascript
复制
# input
if event.type == KEYDOWN:
    if event.key == K_RIGHT:
        flip_x = True
    elif event.key == K_LEFT:
        flip_x = False
    elif event.key == K_UP:
        flip_y = True
    elif event.key == K_DOWN:
        flip_y = False

# then to flip
new_image = pygame.transform.flip(original_image, flip_x, flip_y)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14858608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档