我有以下课程:
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。
可以使用什么方法使它朝着正确的方向移动,并且仍然可以让我将精灵放置在我选择的屏幕上的起始位置。
任何帮助深表感谢。