Освой Python играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Модуль pygame

Модуль pygame помогает разработчикам создавать игры, позволяя быстро и удобно добавлять графику, музыку в стандартные десктопные приложения. Модуль не поставляется с Python, его можно установить бесплатно. Он также поставляется вместе с редактором Mu.

При написании кода программ Python не сохраняйте файл под именем pygame.py. Если вы это сделаете, строка import pygame импортирует ваш файл вместо настоящего модуля pygame и код перестанет работать.

Пример приложения, написанного при помощи модуля pygame - выведем несколько фигур и текст в окне.


import pygame, sys
from pygame.locals import *

# инициализация pygame
pygame.init()

# настройка окна - размер и другие настройки
windowSurface = pygame.display.set_mode((500, 400), 0, 32)
pygame.display.set_caption('Hello Kitty') # заголовок окна

BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)

# шрифт по умолчанию и его размер
basicFont = pygame.font.SysFont(None, 48)

text = basicFont.render('Hi, Barsik', True, WHITE, BLUE)
textRect = text.get_rect()
textRect.centerx = windowSurface.get_rect().centerx
textRect.centery = windowSurface.get_rect().centery

# заливаем окно белым цветом
windowSurface.fill(WHITE)

# рисуем различные фигуры
pygame.draw.polygon(windowSurface, GREEN, ((146, 0), (291, 106), (236, 277), (56, 277), (0, 106)))

pygame.draw.line(windowSurface, BLUE, (60, 60), (120, 120), 4)

pygame.draw.circle(windowSurface, BLUE, (300, 50), 20, 0)

pygame.draw.ellipse(windowSurface, RED, (300, 250, 40, 80), 1)

pygame.draw.rect(windowSurface, RED, (textRect.left - 20, textRect.top - 20, textRect.width + 40, textRect.height + 40))

# Получение массива пикселей поверхности
pixArray = pygame.PixelArray(windowSurface)
pixArray[480, 380] = BLACK
del pixArray

# Нанесение текста на поверхность
windowSurface.blit(text, textRect)

# Отображение окна на экране
pygame.display.update()

# Запуск игрового цикла
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
pygame
Реклама