Анимация вращающегося спрайта с Python - PullRequest
0 голосов
/ 02 мая 2020

Итак, я практикую свою python и создаю игру Wheel of Fortune, используя Pygame. Я получил хороший кусок. Я застрял на данный момент, хотя. У меня есть кнопка «Вращение», которая при нажатии приводит вас к экрану, который вращает колесо. Моя единственная проблема в том, что я не могу придумать, как заставить вращающееся колесо постепенно замедляться и, в конце концов, остановиться, чтобы в конечном итоге показать цену, которую стоит ожидать. Любые идеи? Вот код для спиновой части:

import pygame
import sys



def load_image(name):
    image = pygame.image.load(name)
    return image



class WheelSprite(pygame.sprite.Sprite):
    def __init__(self):
        super(WheelSprite, self).__init__()
        self.images = []
        self.images.append(load_image('images/w1.png'))
        self.images.append(load_image('images/w2.png'))
        self.images.append(load_image('images/w3.png'))
        self.images.append(load_image('images/w4.png'))
        self.images.append(load_image('images/w5.png'))


        self.index = 0
        self.image = self.images[self.index]
        self.rect = pygame.Rect(300, 120, 600, 600)




    def update(self):
        self.index += 1
        if self.index >= len(self.images):
            self.index = 0
        self.image = self.images[self.index]
        self.counter += 1



def main():
    pygame.init()
    win = pygame.display.set_mode((1200, 800))
    wheelbg = pygame.image.load("images/wheelbg.png")
    win.blit(wheelbg, (0, 0))
    my_sprite = WheelSprite()
    my_group = pygame.sprite.Group(my_sprite)
    pointlist_3 = [(570, 30), (585, 150), (600, 30)]


    while True:
        event = pygame.event.poll()
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit(0)

        my_group.update()
        my_group.draw(win)
        pygame.draw.polygon(win, (255, 255, 255), pointlist_3, 0)
        pygame.display.flip()

if __name__ == '__main__':
    main()
...