2015-05-19 6 views
0

У меня есть собственный чертеж, загруженный на экран и масштабированный до размера, который я хочу, но фон программы, которую я использовал для создания чертежа, все еще находится на образ. Я заметил, что когда я перемещаю изображение, фон не перемещается с изображением, но на самом деле он выглядит так, как будто он растягивается, и он будет охватывать все, куда я перемещаю изображение. Я думаю, что это связано с тем, что я использовал функцию .blit при получении картинки на экране, но я не могу найти достаточно ясный ответ о том, как получить изображение на экране любым другим способом. Может кто-нибудь указать мне в правильном направлении, пожалуйста?Получение моего рисунка в pygame без .blit()

+0

* но фон программы, которую я использовал, чтобы сделать рисунок по-прежнему на изображении * это похоже на то, что вы хотите использовать изображение с прозрачностью (альфа-канал a.k.a.), возможно, png вместо jpeg/bmp. * фон не перемещается с изображением, но на самом деле он выглядит так, будто он растягивается, и он будет охватывать везде, где я перемещаю изображение на *, это звучит так, будто вы не перерисовываете свой фон, прежде чем смещать изображение на экран. – sloth

+0

Спасибо, перерисовывая фон, решили проблему. Когда я сделал рисунок, я использовал FreshPaint, приложение ASUS в моей книге трансформаторов, и когда я пошел, чтобы сохранить его под картинками, он сказал, что это может привести к тому, что я потеряю прозрачность изображения. Я не знаю, как это исправить, потому что я сохранил его как файл png. –

ответ

0

Не уверен, что это проблема, но растяжка может быть вызвана не перерисованием фона. Blitting - это как живопись, вы не можете стереть материал. Когда вы хотите что-то переместить, вам нужно перекрасить все места, которые были изменены - также фон, который не отображается после движения.

Самый быстрый способ сделать это - перерисовать весь фон.

0

screen.blit Используется для рисования изображения на экране. Альтернативным способом является получение каждого цвета каждого пикселя с помощью программы изображения, а затем рисование каждого пикселя с использованием pygame.draw.rect, но если вы хотите нарисовать изображение, то единственным вариантом является screen.blit.

Смежные вопросы