1

我一直在谷歌搜索这个问题的答案,但我不知道如何用关键字来表达我想要的东西。我想做的是为 pygame 圈子设置动画。不只是在 x 或 y 方向上移动它,而是动画它的绘图,就像我正在追踪它一样。如果你看到的只是屏幕上绘制的红色部分,并且红色部分的形状是一个圆圈,它会很像这个 gif 。圆圈将不得不多次执行此动画(它表示重新装填枪支),因此每当用户按下“r”时,它都必须自行重置并重新绘制动画。圆圈在一个静止的地方。有任何想法吗?

4

2 回答 2

4

您可以使用精灵动画,或者一个接一个地对多个图像进行 blit 以创建一个小动画

尝试这个:

https://github.com/ankur0890/Pygame-Examples-For-Learning/blob/master/fireSprite.png?raw=true

如果您拍摄该图像并运行此代码:

import pygame
from pygame.locals import *
from sys import exit

counter=0
def Update():
 global counter
 counter=(counter+1)%7

def sprite(w, h):
    a=[]
    clock=pygame.time.Clock()
    screen=pygame.display.set_mode((200,200),0,24)
    image = pygame.image.load("fireSprite.png").convert_alpha()
    width,height=image.get_size()
    for i in xrange(int(width/w)):
        a.append(image.subsurface((i*w,0,w,h)))
    while True:
        for i in pygame.event.get():
            if i.type==QUIT:
                exit()
        screen.fill((0,0,0)) 
        screen.blit(a[counter],(100,100))
        Update()
        pygame.display.update()
        clock.tick(5)

   sprite(20,20)

此代码将播放我在动画中链接的图像

这是图像fireSprite.png

于 2013-06-19T02:14:47.867 回答
1

画一条弧线,为开始/停止角度设置动画(例如,将开始角度设置为0并将停止角度设置为从0的动画)。

pygame.draw.arc()

绘制椭圆的部分截面

arc(Surface, color, Rect, start_angle, stop_angle, width=1) -> Rect

在 Surface 上绘制椭圆弧。rect 参数是椭圆将填充的区域。两个角度参数是以弧度为单位的初始角度和最终角度,右侧为零。width 参数是绘制外边缘的厚度。

于 2013-06-19T02:11:39.233 回答