How to add a background image into pygame?
new to pygame just wondering how i would go about adding a background image into the game itself? this is my code so far, i’ve been using the bg as a way to import my image but the py file itself refuses to load up.
3 Answers 3
For background I always make an image the size of my game window or smaller then before all of the images are displayed, I blit that image to 0,0.
Hope this helps.
This problem can be easily solved. You will need an image the size of your screen for your background. Please remember to add pygame.init() at the beginning of your game to be able to start it and its abilities. A function for this picture can be used like this:
This will allow the program to load your image through this function when you call it like this:
And you will also need these two lines in your while loop:
This will fill your screen white and put the background image over it but under your other sprites and objects.
Suggestions: You should make another class for your other sprite (maybe the reason why the image is not appearing). An example could be like:
You could then «activate» it like this:
Select the coordinates for a and b . You can then blit the image on to the screen like this but after your background blit statement:
Создание игр на Python 3 и Pygame: Часть 2
Во второй из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame, мы рассмотрим класс TextObject , используемый для рендеринга текста на экране. Мы создадим основное окно, в том числе и фоновое изображение, а затем научимся отрисовывать объекты: кирпичи, мяч и ракетку.
Класс TextObject
Класс TextObject предназначен для отображения текста на экране. Можно сделать вывод, что с точки зрения дизайна он должен быть подклассом класса GameObject , потому что тоже является визуальным объектом и его тоже иногда нужно двигать. Но я не хотел вводить глубокую иерархию классов, при которой весь отображаемый Breakout текст оставался на экране неизменным.
Класс TextObject создаёт объект шрифта. Он рендерит текст на отдельную текстовую поверхность, которая затем копируется (рендерится) на основную поверхность. Интересный аспект TextObject заключается в том, что у него нет какого-то фиксированного текста. Он получает функцию text_func() , вызываемую каждый раз, когда он рендерится.
Это позволяет нам обновлять отображение жизней и очков в Breakout, просто создав функцию, возвращающую текущие жизни и очки, а не отслеживать то, какие текстовые объекты отображают очки и жизни и обновлять их текст при каждом их изменении. Это удобный трюк из функционального программирования, и в крупных играх он позволяет поддерживать удобство и аккуратность программы.
Создание основного окна
Игры на Pygame выполняются в окнах. Можно даже сделать так, чтобы они выполнялись в полноэкранном режиме. Сейчас я расскажу, как отобразить пустое окно Pygame. Вы увидите многие элементы, которые мы обсуждали ранее. Сначала вызывается init() Pygame, а затем создаются основная поверхность рисования и таймер.
Затем выполняется основной цикл, который постоянно заполняет экран однотонным серым цветом и вызывает метод таймера tick() с частотой кадров.
Использование фонового изображения
Обычно однотонный цвет фона выглядит не очень интересно. Pygame очень хорошо работает с изображениями. Для Breakout я нашёл любопытную фотографию настоящего космоса, сделанную НАСА. Код очень прост. Сначала он перед основным циклом загружает фоновое изображение с помощью функции pygame.image.load() . Затем вместо того, чтобы заливать экран цветом, он выполняет блиттинг (копирование битов) изображения на экран в позицию (0,0). В результате на экране отображается изображение.

Отрисовка фигур
Pygame может рисовать всё, что угодно. В модуле pygame.draw есть функции для отрисовки следующих фигур:
- прямоугольника (rect)
- многоугольника (polygon)
- круга (circle)
- эллипса (ellipse)
- дуги (arc)
- отрезка (line)
- отрезков (lines)
- сглаженного отрезка (anti-aliased line)
- сглаженных отрезков (anti-aliased lines)
Отрисовка кирпичей
Кирпичи — это просто прямоугольники. В Pygame есть функция pygame.draw.rect() , получающая поверхность, цвет и объект Rect (левую и верхнюю координату, ширину и высоту) и рендерящая прямоугольник. Если дополнительный параметр ширины больше нуля, то он отрисовывает контур. Если ширина равна нулю (значение по умолчанию), то рисует сплошной прямоугольник.
Стоит заметить, что класс Brick является подклассом GameObject и получает все его свойства, но также имеет и цвет, который обрабатывает самостоятельно (потому что могут существовать игровые объекты, имеющие несколько цветов). Поле special_effect мы пока рассматривать не будем.
Отрисовка мяча
Мяч в Breakout — это просто круг. В Pygame есть функция pygame.draw.circle() , получающая цвет, центр, радиус и дополнительный параметр ширины, который по умолчанию равен нулю. Как и в функции pygame.draw.rect() , если ширина равна нулю, то отрисовывается сплошной круг. Ball тоже является подклассом GameObject.
Так как мяч всегда движется (в отличие от кирпичей), он также имеет скорость, которая передаётся для обработки базовому классу GameObject . Класс Ball имеет небольшое отличие — параметры x и y обозначают его центр, а параметры x и y, передаваемые базовому классу GameObject являются верхним левым углом ограничивающего прямоугольника. Чтобы преобразовать центр в верхний левый угол, достаточно вычесть радиус.
Отрисовка ракетки
Ракетка — это ещё один прямоугольник, двигающийся влево и вправо в ответ на нажатия игроком клавиш со стрелками. Это значит, что положение ракетки в разных кадрах может отличаться, но в процессе отрисовки это просто прямоугольник, который должен рендериться в текущей позиции, какой бы она ни была. Вот как выглядит соответствующий код:
Заключение
В этой части мы узнали о классе TextObject и о том, как рендерить текст на экране. Также мы познакомились с тем, как рисовать объекты: кирпичи, мяч и ракетку.
В третьей части мы узнаем, как работает обработка событий и как Pygame позволяет нам перехватывать события и реагировать на них (нажатия клавиш, движение мыши и нажатия кнопок мыши). Также мы рассмотрим такие элементы игрового процесса, как движение мяча, задание его скорости и перемещение ракетки.
Programming for beginners

I'm lost on player scrolling thing , too late to ask ?
oh yeah, I thing so XD
when i run it shows nothing but when i quit it shows the background
like when i quit the window it shows
it quits and shows the background at the same time
Hey guys i don;t think i see my background in my code tho or does it have to be the same size or what?
The image is a svg type does it even support that?
How can i make the background behind oder things like my character? i got my background but characters are behind it, i think?
Followers
Top 40 Javablogs by feedspot
My Blog is selected as one of the Top 40 Java Blogs by FeedSpot. I am very honored and thankful to be part of this list. Please go ahead and check out the other featured blogs, there is very interesting content available.