我有下面的類移動精靈:如何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