» Помогите написать скрипт.
11 ноября 2011 в 19:35Рейтинг: 0
0
0
Не могу вникнуть.
PyGame
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()
Далее есть инструкции:
Вопрос:
Как мне screen записать в файл?
11 ноября 2011 в 19:46Рейтинг: 0
0
0
Был бы у меня линукс, помог бы...
11 ноября 2011 в 19:54Рейтинг: 0
0
0
А виндовс чем тебе не подходит? И где твои 50 линуксов подевались?
Качай вот отсюда и помоги мне, пожалуйста. Нужно мне для мультика.
11 ноября 2011 в 22:52Рейтинг: 0
0
0
Сегодня поставил убунту на виртуалку. Тормозит, но пользовать можно. Завтра помучаю
11 ноября 2011 в 23:01Рейтинг: 0
0
0
AndreyMal, я в винде устанавливал PyGame и
PyScripter:
И безо всяких тормозов ковырял.
И wxPython и pyGTK этим скриптером ковырял. Обалденная вещь, как Geany в линуксе.
11 ноября 2011 в 23:08Рейтинг: 0
0
0
Поясняю, чего я хочу добиться. Там происходит циклическое искажение картинки в окне. Мне нужно каждое изменение в цикле записать в файл. Если бы это была библиотека Cairo, у меня вопросов бы не было.
Кстати, завтра я поковыряю Cairo, проскочила у меня одна мысля
12 ноября 2011 в 14:10Рейтинг: 0
0
0
> как Geany в линуксе.
Чем тебя не устроил Geany в виндовзе?
>>>а мне просто лень пигаму на винду ставить...
12 ноября 2011 в 14:45Рейтинг: 0
0
0
> Чем тебя не устроил Geany в виндовзе?
А я не знал про него, когда виндовз юзал. Я захаживал на портал Питон-программистов и там узнал про PyScripter. Знал бы, юзал Geany.
Однако, почему то ты тоже непонятно запостился:
> Был бы у меня линукс, помог бы...
12 ноября 2011 в 16:36Рейтинг: 0
0
0
Пишу с убунты 10.10 с установленным сверху xubuntu-desktop, чтоб не так сильно тормозило на виртуалке.)
File "pygama.py", line 14, in main
bitmap = pygame.image.load(imagename)
pygame.error: Couldn't open /home/andreymal/data/liquid.bmp
Дай
12 ноября 2011 в 18:50Рейтинг: 0
0
0
Любая картинка катит, сейчас проверил png, jpg, gif, tiff...
13 ноября 2011 в 14:01Рейтинг: 0
0
0
AndreyMal, сидишь на сайте и молчишь про скрипт. Есть какие-нибудь сдвиги или нет? Может хоть можешь разобраться в самом процессе? Что там задаёт деформацию и чего деформацию? Я заменил картинку на две линии по диагоналям. Наблюдается вращение концов верхних по и нижних против часовой стрелки, ну или наоборот. Думаю про getpixel и setpixel - ничего на ум не приходит.
22 мая 2012 в 10:14Рейтинг: 0
0
0
никаких трудностей записать screen в файл не вижу.
в pygame есть такая функция как pygame.image.save - сохраняет картинку указаной поверхности в нужном вам формате.
очень проста в использовании
pygame.image.save(Surface, filename)
Surface - это наша поверхность которую мы хотим сохранить
filename - имя файла в который мы хотим сохранить
тоесть будет выглядеть примерно так:
filename = "image_xxx.png" (где xxx это целые числа 1..999)
dx = 0while 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()
dx += 1
filename = "image%3d.png" % (dx)
pygame.image.save(screen, filename)пы. сы. незнаю как форматировать тут текст, так что звиняйте за отступы
22 мая 2012 в 12:45Рейтинг: 0
0
0
Может и мне под шумок кто поможет!? Кстати, это нужно для всех пользователей Блендера!
Как создать через скрипт в редакторе программы логическую связь между двумя величинами, но разных свойств и объектов?
Например, чем больше масштаб одного объекта, тем ярче сила света у источника света(Scale<=>Energy). Или, чем быстрее вращается один объект, тем видимей становитса материал у другого объекта(Rotate<=>Color!)
Очень удобно, когда нельзя через настройки в панели инструментов создать зависимость и связи!
такое есть во Fusion(кстати на Питоне) и есть у AfterEffect.
А я обещаю с таким скриптом урок интересный сделать, что-то в этом роде https://vimeo.com/38444234
И еще объявлю всем, кому мы благодарны такому удобному скрипту!