簡體   English   中英

Pygame-以不同速度移動精靈

[英]Pygame - Moving Sprites at Different Speeds

我正在研究正在使用的幾種精靈的機制。 我正在從事涉及收集硬幣的游戲。 我有一個旋轉硬幣的精靈圖像。 我為硬幣精靈創建了一個類,並編寫了一個更新功能,該功能可以從一個圖像精靈切換到下一個圖像精靈。 硬幣在旋轉,但我遇到的問題是旋轉太快。 我如何緩慢放慢硬幣的旋轉速度? 任何幫助將不勝感激。 謝謝!

這是硬幣類:

class coins (pygame.sprite.Sprite):
coin_spin_frames = []
def __init__(self, x, y):
    pygame.sprite.Sprite.__init__(self)
    sprite_sheet = SpriteSheet('stuff/coins_1.png')

    image = sprite_sheet.get_image(0, 0, 40, 42)
    self.coin_spin_frames.append(image)
    image = sprite_sheet.get_image(0, 42, 40, 42)
    self.coin_spin_frames.append(image)
    image = sprite_sheet.get_image(0, 84, 40, 42)
    self.coin_spin_frames.append(image)
    image = sprite_sheet.get_image(0, 130, 40, 42)
    self.coin_spin_frames.append(image)

    self.image = self.coin_spin_frames[0]

    self.rect = self.image.get_rect()

    self.rect.x = x
    self.rect.y = y
def update(self):
    if self.image == self.coin_spin_frames[0]:
        self.image = self.coin_spin_frames[1]
    elif self.image == self.coin_spin_frames[1]:
        self.image = self.coin_spin_frames[2]
    elif self.image == self.coin_spin_frames[2]:
        self.image = self.coin_spin_frames[3]
    elif self.image == self.coin_spin_frames[3]:
        self.image = self.coin_spin_frames[0]

首先,確定您希望硬幣旋轉的速度。 假設您要花費2秒來完成一個完整的循環。

update()函數可以調用time.time(),並根據時間量對其進行修改以進行循環,然后將其除以循環時間。 (123121213.2%2 = 1.2。1.2 / 2 = 0.6)。 現在,顯示通過self.coin_spin_frames列表顯示的圖像的60%。 (int(len(self.coin_spin_frames)* 0.6))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM