gpt4 book ai didi

python - pygame 不会 blit 内部函数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:34 24 4
gpt4 key购买 nike

我有一段代码可以在函数外部运行,但不能在函数内部运行。

我还确保必要的变量是全局的。

我可以在函数内部使用 chair.get_width() 获取表面的宽度,它工作正常,但我无法执行 screen.blit(chair, (10,10) ) 出于某种原因。我没有收到错误,它只是什么也没做...

这是我的脚本(它创建一个窗口,然后每 100 毫秒调用一个函数来获取鼠标位置,将图像旋转 x 度,然后将图像 blit(或应该 blit)到窗口):

    cif = "images/chair3.png"

import pygame, sys
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((640,480),0,32)

chair = pygame.image.load(cif).convert_alpha()

pygame.time.set_timer(USEREVENT + 1, 100)

def cursor(speed):
global i
global chair
global screen
x,y = pygame.mouse.get_pos()
x -= chair.get_width()/2
y -= chair.get_height()/2

if i < 360:
i = i + 360/(1000/speed)
else:
i = 0

orig_chair_rect = chair.get_rect()
chair1 = pygame.transform.rotate(chair, i);
rot_chair_rect = orig_chair_rect.copy()
rot_chair_rect.center = chair1.get_rect().center
chair1 = chair1.subsurface(rot_chair_rect).copy()

print chair.get_width()

screen.blit(chair1,(x,y))

while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == USEREVENT + 1:
cursor(50)

最佳答案

您确实需要使用 pygame.display.flip()pygame.display.update(),否则屏幕永远不会更新,并且因此你的椅子不会被 blit 到屏幕上。

试过了,有效。如果它对您不起作用,请重新安装 Pygame,然后重试。

关于python - pygame 不会 blit 内部函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9895515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com