Файл: Примеры программ Вывод на экран зеленого квадратика размером 40х40.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.12.2023
Просмотров: 24
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Примеры программ:
1. Вывод на экран зеленого квадратика размером 40х40 | 2. Перемещение красного квадрата по горизонтали в зеленом прямоугольнике https://younglinux.info/pygame/surface |
import pygame window = pygame.display.set_mode((400, 400)) pygame.display.set_caption("Hello!") screen = pygame.Surface((40, 40)) done = True while done: for e in pygame.event.get(): if e.type == pygame.QUIT: done = False screen.fill((0, 250, 50)) window.blit(screen, (10, 70)) pygame.display.flip() | from random import randint import pygame pygame.init() sc = pygame.display.set_mode((400, 400)) background = pygame.Surface((400, 200)) background.fill((0, 255, 0)) xb = 0 yb = 100 hero = pygame.Surface((100, 100)) hero.fill((255, 0, 0)) x = 0 y = 50 # порядок прорисовки важен! background.blit(hero, (x, y)) sc.blit(background, (xb, yb)) pygame.display.update() while 1: for i in pygame.event.get(): if i.type == pygame.QUIT: exit() elif i.type == pygame.MOUSEBUTTONUP: yb = randint(0, 200) if x < 400: x += 2 else: x = 0 sc.fill((0, 0, 0)) background.fill((0, 255, 0)) background.blit(hero, (x, y)) sc.blit(background, (xb, yb)) pygame.display.update() pygame.time.delay(30) |
3. Бесконечное перемещение черного прямоугольника по вертикали. https://younglinux.info/pygame/surface | 4. https://www.pvsm.ru/python/43434 |
import pygame pygame.init() WIN_WIDTH = 800 WIN_HEIGHT = 600 WHITE = (255, 255, 255) BLACK = (0, 0, 0) class Rocket: # ширина и высота у всех # экземпляров-ракет будут одинаковы width_rocket = 20 height_rocket = 50 def __init__(self, surface, color): """Конструктору необходимо передать поверхность, по которой будет летать ракета и цвет самой ракеты""" self.surf = surface self.color = color # Методы поверхности get_width() и get_height() возвращают ее размеры. # Координаты верхнего левого угла ракеты устанавливаются так, # чтобы ракета летела ровно по центру поверхности по горизонтали # и появлялась снизу. self.x = surface.get_width()//2 - Rocket.width_rocket//2 self.y = surface.get_height() def fly(self): """Вызов метода fly() поднимает ракету на 3 пикселя. Если ракета скрывается вверху, она снова появится снизу""" pygame.draw.rect(self.surf, self.color, (self.x, self.y, Rocket.width_rocket, Rocket.height_rocket)) self.y -= 3 # Если координата y ракеты уходит за -50, то значит она # полностью скрылась вверху. if self.y < -Rocket.height_rocket: # Поэтому перебрасываем ракету под нижнюю границуокна. self.y = WIN_HEIGHT sc = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT)) # левая белая поверхность, равная половине окна surf_left = pygame.Surface((WIN_WIDTH//2, WIN_HEIGHT)) surf_left.fill(WHITE) # правая черная поверхность, равная другой половине окна surf_right = pygame.Surface((WIN_WIDTH//2, WIN_HEIGHT)) # размещаем поверхности на главной, указывая координаты # их верхних левых углов sc.blit(surf_left, (0, 0)) sc.blit(surf_right, (WIN_WIDTH//2, 0)) # создаем черную ракету для левой поверхности # ибелую - дляправой rocket_left = Rocket(surf_left, BLACK) rocket_right = Rocket(surf_right, WHITE) # какая половина активна, до первого клика - никакая active_left = False active_right = False while 1: for i in pygame.event.get(): if i.type == pygame.QUIT: exit() elif i.type == pygame.MOUSEBUTTONUP: # если координата X клика меньше половины окна, # т. е. клик произошел в левой половине ... if i.pos[0] < WIN_WIDTH//2: # то активируем левую, отключаем правую active_left = True active_right = False elif i.pos[0] > WIN_WIDTH//2: # иначе - наоборот active_right = True active_left = False if active_left: # Если активна левая поверхность, # то заливаем только ее цветом, surf_left.fill(WHITE) # поднимаем ракету, rocket_left.fly() # заново отрисовываем левую поверхность на главной. sc.blit(surf_left, (0, 0)) elif active_right: # Если активна правая -> аналогично surf_right.fill(BLACK) rocket_right.fly() sc.blit(surf_right, (WIN_WIDTH//2, 0)) pygame.display.update() pygame.time.delay(20) | Создание игры. Более мотивированные учащиеся могут выполнить данное задание в индивидуальном порядке или во время дополнительных уроков. |