Pygame Sprite мерцает при движенииPython

Программы на Python
Ответить
Anonymous
 Pygame Sprite мерцает при движении

Сообщение Anonymous »

Я новичок в pygame, и у меня возникли проблемы с мерцанием/перетаскиванием изображения спрайта при перемещении по экрану. Я читал здесь другие ответы о получении определенных пикселей/с, где вам следует изменить частоту кадров и уменьшить количество пикселей/кадра, но это решение не помогло, поэтому мне было интересно, не реализую ли я его правильно, и это единственное решение или я что-то упускаю. Ниже приведен код игры, работающей с постоянной частотой кадров. Спасибо!

pygame.init()
display=pygame.display.set_mode((screen_width,screen_height), pygame.RESIZABLE)
background=pygame.Surface((screen_width, screen_height))
background.fill(background_color)

class Ship(pygame.sprite.Sprite):
def __init__(self, image_file):
pygame.sprite.Sprite.__init__(self)
self.original_image_unscaled=pygame.image.load(image_file)
self.original_image=pygame.transform.smoothscale(self.original_image_unscaled, (56,70))
self.image=self.original_image
self.rect=self.image.get_rect()
self.xpos=0
self.ypos=0
self.rect.centerx=self.xpos
self.rect.centery=self.ypos
self.vel=0
self.acc=.05
self.brake=.2
self.turn_brake=1.5
self.angle=0
self.max_speed=5

def getShipPos(self):
return (self.xpos, self.ypos)

def getShipVel(self):
return self.vel

def getShipAcc(self):
return self.acc

def getShipRect(self):
return self.rect

def update(self):
self.rect.centerx=self.xpos
self.rect.centery=self.ypos

def rotateShip(self, angle):
#this rotates the ship by a specified angle
self.image, self.rect = pygameRotateImage2(self.original_image, self.rect, angle-self.angle)
self.angle+=angle

def simpleMove(self, x_final, y_final):
self.xpos=x_final
self.ypos=y_final

def moveShip(self):
keys=pygame.key.get_pressed()
xpos_i=self.xpos
ypos_i=self.ypos
if keys[K_w]:
if self.vel>self.max_speed:
self.vel=self.max_speed
else:
self.vel+=self.acc
elif keys[K_s]:
self.vel-=self.brake
if self.vel

Подробнее здесь: https://stackoverflow.com/questions/318 ... hen-moving
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»