【发布时间】:2015-03-24 01:32:21
【问题描述】:
我正在努力正确移动精灵。我可以看到模糊移动而不是平滑移动,但我不知道如何解决它。 你有没有机会指出我做错了什么?
我的目标是放下比萨饼,使其落到底部并弹回,如果它击中顶部又弹回底部 -> 弹跳 -> 顶部 -> 弹跳等。
import pygame
gravity = 0.5
class PizzaSprite:
def __init__(self, image, spritepos):
self.image = image
self.spos = spritepos
(x, y) = spritepos
self.posx = x
self.posy = y
self.xvel = 1
self.yvel = 1
print "x ", x
print "y ", y
def draw(self, target_surface):
target_surface.blit(self.image, self.spos)
def update(self):
self.posy -= self.yvel
self.spos = (self.posx, self.posy)
return
def main():
pygame.init()
screen_width = 800
screen_height = 600
x = screen_width
y = screen_height
screen = pygame.display.set_mode((screen_width, screen_height))
wall_image = pygame.image.load("wall.png")
sky_image = pygame.image.load("sky.png")
pizza_image = pygame.image.load("pizza.png")
screen.blit(wall_image,(0,200))
screen.blit(sky_image,(0,0))
all_sprites = []
pizza1 = PizzaSprite(pizza_image, (x/2, y/2))
all_sprites.append(pizza1)
while True:
ev = pygame.event.poll()
if ev.type == pygame.QUIT:
break
for sprite in all_sprites:
sprite.update()
for sprite in all_sprites:
sprite.draw(screen)
pygame.display.flip()
pygame.quit()
main()
【问题讨论】:
-
我明白我做错了什么。我只是添加了一个新图像而不删除之前的图像。
-
好的,我明白是什么问题了。问题是我在“while True”循环之外对 wall_image 和 sky_image 进行了 blit。
-
有人知道如何优化它吗?