У меня есть блок кода, который работал вне функции, но не внутри.
Я также удостоверился, что необходимые переменные были глобальными.
Я могу получить ширину поверхностииспользуя chair.get_width()
внутри функции, и она работает нормально, но я не могу выполнить screen.blit(chair, (10,10))
по какой-то причине.Я не получаю сообщение об ошибке, он просто ничего не делает ...
Вот мой сценарий (он создает окно, затем каждые 100 миллисекунд вызывает функцию, которая определяет положение мыши, поворачивает изображениеx градусов, а затем перетаскивает (или должно мигать) изображение в окно):
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)