<MyRusakov.ru />

Создание сайтов на Django

Создание сайтов на Django

Данный курс научит Вас создавать сайты на очень мощном фреймворке – Django. Курс состоит из 9 разделов, в которых Вы с нуля освоите данный фреймворк на примере создания полноценного Интернет-магазина.

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

Помимо самого курса Вас ждёт ещё и бесплатный ценный Бонус: «Unit-тестирование сайта на Django». В этом Бонусе Вы узнаете, как можно написать автоматические тесты для проекта на Django. Это позволит находить оперативно ошибки, а также даст возможность в будущем добавлять новый функционал, не боясь что-то сломать в старом.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Создаем игру с Pygame и Python. Часть 3

Создаем игру с Pygame и Python. Часть 3

В предыдущей статье мы реализовали проект Pygame, в результате чего на экран выводится окно с игровым полем, которое вы можете закрыть, нажав клавишу. Но пока что, наше игровое поле отображает лишь синий экран. На следующем шаге мы используем в качестве фона изображение космического пространства. В сегодняшней статье мы отобразим изображение в этом окне.

Хотя вы могли бы сделать компьютерную игру только с цветными прямоугольниками и другими простыми фигурами, использование изображений сделает ее гораздо более привлекательной. В разработке компьютерных игр изображения обычно называются спрайтами. Конечно, игры используют гораздо больше типов ресурсов, таких как звуки, шрифты, анимация и так далее. Вместе эти ресурсы называются assets.

По мере роста вашей игры важно, чтобы она сохраняла правильную структуру. Итак, начните с создания папки под названием assets и внутри нее еще одной, называемой sprites. Там вы разместите все спрайты, используемые в вашей игре. Папку assets можно создать внутри space_rock.

Затем загрузите изображение космического фона и поместите его в папку assets/sprites.

Кроме того, поскольку изображения будут загружаться в вашу программу много раз, рекомендуется извлечь эту функциональность в отдельный метод в отдельном файле. Создайте файл с именем space_rocks/utils.py, который сохранит все многоразовые методы. Затем реализуйте загрузку изображений:



from pygame.image import load

def load_sprite(name, with_alpha=True):
    # в зависимости от места запуска space_rock можно и не указывать
    path = "space_rock/assets/sprites/{0}.png".format(name)
    loaded_sprite = load(path)

    if with_alpha:
        return loaded_sprite.convert_alpha()
    else:
        return loaded_sprite.convert()

В первой строке мы импортирует метод load (), который будет необходим для последующего чтения изображений.

В строке path создаем путь к изображению, предполагая, что оно хранится в каталоге space_rock/assets/sprites и что это файл PNG. Таким образом, вам нужно будет только указать имя спрайта позже. В случае ошибки в загрузке, следует удалить часть пути.

Строка loaded_sprite загружает изображение с помощью функции load(). Этот метод возвращает поверхность, которая является объектом, используемым Pygame для представления изображений. Позже вы можете нарисовать его на экране (или на другой поверхности, если хотите).

Конструкция if-else преобразуют изображение в формат, который лучше подходит для экрана, чтобы ускорить процесс рисования. Это делается с помощью функции convert_alpha() или convert(), в зависимости от того, хотите ли вы использовать прозрачность.

Структура нашего проекта будет выглядеть следующим образом:



game_project/
|
├── space_rocks/
    ├── __main__.py
    ├── game.py
    └── utils.py
    |_
     assets/
     |
     └── sprites/
         └── space.png

Теперь, когда ваша программа может загружать изображения, пришло время изменить синий фон на что-то более интересное. Отредактируйте space_rocks/game.py файл:


import pygame

# импорт загрузчика
from utils import load_sprite

class SpaceRocks:
    def __init__(self):
        self._init_pygame()
        self.screen = pygame.display.set_mode((800, 600))
        # добавленный код
        self.background = load_sprite("space", False)

    ..........................

    def _draw(self):
        # добавленный код
        self.screen.blit(self.background, (0, 0))
        pygame.display.flip()

Чтобы отобразить одну поверхность на другой в Pygame, Метод blit() нужно вызвать на поверхности, на которой вы хотите рисовать. Этот метод принимает два аргумента:

Поверхность, которую вы хотите нарисовать - self.background. Точка, в которой вы хотите ее нарисовать - (0, 0).

Запустим проект:

# запуск проекта
(my_progect)>>>python space_rock

И мы должны увидеть экран с изображением:


Изображение

Таким образом, мы добавили нашей игре красивое фоновое изображение.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.