我想讓一個精靈在pygame中投擲手榴彈。我想讓它向前移動一點,然後停下來。我的問題是讓手榴彈順利前進。下面的代碼所做的是讓它立即移動到intrest點,而不是順利移動。在Python中循環
[手榴彈類]
#Grenade Class
class Explosive(pygame.sprite.Sprite):
def __init__(self, location):
pygame.sprite.Sprite.__init__(self)
self.pos = location
self.image = Nade
self.rect = self.image.get_rect()
self.rect.right = self.image.get_rect().right
self.rect.left = self.image.get_rect().left
self.rect.top = self.image.get_rect().top
self.rect.bottom = self.image.get_rect().bottom
self.rect.center = location
def move(self):
if Player.direction == 0:
self.rect.centery = self.rect.centery - 5
if Player.direction == 180:
self.rect.centery = self.rect.centery + 5
if Player.direction == 90:
self.rect.centerx = self.rect.centerx + 5
if Player.direction == 270:
self.rect.centerx = self.rect.centerx - 5
[投擲手榴彈(主迴路)
if event.key == pygame.K_e and grenadeNum > 0:
Grenade = Explosive([Player.rect.centerx, Player.rect.centery])
for i in range(1, 10)
Grenade.move()
就每秒速度而言。那麼你也會希望儘可能快的FPS。無論FPS如何,手榴彈總是會移動例如:每秒200像素。您可以根據時間使用更簡單的移動,但也可以查看[gaffer的固定時間步驟](http://gafferongames.com/game-physics/fix-your-timestep/) – ninMonkey