Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 13, 2011 16:36:03

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

PyGame, Записать в файлы

Здравствуйте!
В примерах PyGame есть файл, который создаёт в окне программы анимированное искажение изображения. Я не прилагаю исходную картинку, ибо подойдёт любая, достаточно указать путь к ней.
Мне очень хотелось бы происходящее в окнезаписать в последовательность из файлов, но как это сделать, ума не приложу, хотя возможность такая вроде как и есть, судя по документации в разделе image

import pygame, os
from pygame.locals import *
from math import sin

main_dir = os.path.split(os.path.abspath(__file__))[0]

def main():
#initialize and setup screen
pygame.init()
screen = pygame.display.set_mode((640, 480), HWSURFACE|DOUBLEBUF)

#load image and quadruple
imagename = os.path.join(main_dir, 'data', 'liquid.bmp')
bitmap = pygame.image.load(imagename)
bitmap = pygame.transform.scale2x(bitmap)
bitmap = pygame.transform.scale2x(bitmap)

#get the image and screen in the same format
if screen.get_bitsize() == 8:
screen.set_palette(bitmap.get_palette())
else:
bitmap = bitmap.convert()

#prep some variables
anim = 0.0

#mainloop
xblocks = range(0, 640, 20)
yblocks = range(0, 480, 20)
stopevents = QUIT, KEYDOWN, MOUSEBUTTONDOWN
while 1:
for e in pygame.event.get():
if e.type in stopevents:
return

anim = anim + 0.2
for x in xblocks:
xpos = (x + (sin(anim + x * .01) * 15)) + 20
for y in yblocks:
ypos = (y + (sin(anim + y * .01) * 15)) + 20
screen.blit(bitmap, (x, y), (xpos, ypos, 20, 20))

pygame.display.flip()


if __name__ == '__main__': main()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version