我有下面的类移动精灵:如何Pygame的
class Enemy(pygame.sprite.Sprite):
def __init__(self):
pygame.init()
pygame.sprite.Sprite.__init__(self)
# Basic variables
self.speed = [2,2]
# Sets up the image and Rect
self.bitmap = pygame.image.load("badguy.png")
self.bitmap.set_colorkey((0,0,0))
self.shipRect = self.bitmap.get_rect()
self.shipRect.topleft = [100,200]
def move(self, x, y):
self.shipRect.center = (x,y)
def render(self):
screen.blit(self.bitmap, (self.shipRect))
现在,我想把它移到每当我打箭头键。但是,我的移动功能存在一个很大的问题。它只是将船的中心移动到馈入该函数的坐标。如果您没有看到这个问题,那就是我想这样称呼它:
if event.key == K_RIGHT:
enemy.x += 5
if event.key == K_LEFT:
enemy.move(-5,0)
if event.key == K_UP:
enemy.move(0,5)
if event.key == K_DOWN:
enemy.move(0,-5)
我期待它移到我的五个在我命中关键的方向。但是,它会拍摄到屏幕的左上角,因为我将一个轴的中心设置为零,而另一个轴的中心设置为+ - 5。
可以使用什么方法使其在正确的方向上移动,并使我能够将精灵放置在我选择的屏幕上的起始位置。
任何帮助,非常感谢。
做笔记,转让必须是'self.shipRect.centerx + = x'和'self.shipRect.centery + = y'。中心本身就是一个不能被索引的元组。 – Linell 2012-04-04 17:29:15