我一直在谷歌搜索这个问题的答案,但我不知道如何用关键字来表达我想要的东西。我想做的是为 pygame 圈子设置动画。不只是在 x 或 y 方向上移动它,而是动画它的绘图,就像我正在追踪它一样。如果你看到的只是屏幕上绘制的红色部分,并且红色部分的形状是一个圆圈,它会很像这个 gif 。圆圈将不得不多次执行此动画(它表示重新装填枪支),因此每当用户按下“r”时,它都必须自行重置并重新绘制动画。圆圈在一个静止的地方。有任何想法吗?
问问题
736 次
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到2π的动画)。
绘制椭圆的部分截面
arc(Surface, color, Rect, start_angle, stop_angle, width=1) -> Rect
在 Surface 上绘制椭圆弧。rect 参数是椭圆将填充的区域。两个角度参数是以弧度为单位的初始角度和最终角度,右侧为零。width 参数是绘制外边缘的厚度。
于 2013-06-19T02:11:39.233 回答