У меня есть игра с фоном из плиток, некоторые статичны (трава, грязь), но я хочу, чтобы вода текла.я создал поверхность под названием вода, затем у меня есть цикл, который повторяет серию из 10 png для кадров протекающей воды.затем я хочу обновить эту поверхность в 10 раз так же часто, как и в остальной части игры, и перетащить ее на основную поверхность со скоростью 30 кадров в секунду с другими объектами.
Однако все, чего я могу достичь, - это не двигаться или вода течет вбезумная скорость (путем обновления всего дисплея в цикле обновления воды.)
есть ли способ, которым я могу обновить только эту поверхность?
вот мой код:
#mud, grass and surface are defined earlier.
water = pygame.Surface((100,100))
#create mud tiles
for x in range(0,800,100):
for y in range(0, 500, 100):
screen.blit(mud,(x,y))
#create grass tiles
for x in range(400, 800, 100):
for y in range(0, 300, 100):
screen.blit(grass,(x,y))
#create filenames
for x in range(1,11):
if x < 10:
filename = "images\water\water1000" + str(x) + ".png "
else:
filename = "images\water\water100" + str(x) + ".png "
waterimg = pygame.image.load(filename)
#add to a surface, then tile the surface onto the game.
water.blit(waterimg,(0,0))
for x in range(100, 200, 100):
for y in range(0, 500, 100):
screen.blit(water, (x,y))
pygame.display.flip() #makes it update crazily. removing this line makes it not update at all.
allsprites.draw(screen)
pygame.display.flip()