Files
LABAn3/lb3_draw_zaic.py
2026-03-18 09:47:20 +03:00

160 lines
6.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pygame
from pygame.draw import *
pygame.init()
FPS = 30
screen = pygame.display.set_mode((400, 400))
# Используемые цвета
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
PINK = (255, 200, 200)
DARK_PINK = (255, 150, 150)
LIGHT_GREEN = (220, 255, 220)
BROWN = (180, 130, 80)
DARK_BROWN = (160, 110, 60)
# Определяем функции для рисования частей зайца
def draw_body(surface, x, y, width, height, color): # Функция рисует тело зайца
'''
Рисует тело зайца.
surface - объект pygame.Surface
x, y - координаты центра изображения
width, height - ширина и высота изображения
color - цвет, заданный в формате, подходящем для pygame.Color
'''
ellipse(surface, color, (x - width // 2, y - height // 2, width, height))
def draw_ear(surface, x, y, width, height, color): # Фуекция рисует уши
'''
Рисует ухо зайца.
surface - объект pygame.Surface
x, y - координаты центра изображения
width, height - ширина и высота изображения
color - цвет, заданный в формате, подходящем для pygame.Color
'''
ellipse(surface, color, (x - width // 2, y - height // 2, width, height))
def draw_head(surface, x, y, size, color): # Функция рисует голову
'''
Рисует голову зайца.
surface - объект pygame.Surface
x, y - координаты центра изображения
size - диаметр головы
color - цвет, заданный в формате, подходящем для pygame.Color
'''
circle(surface, color, (x, y), size // 2)
def draw_leg(surface, x, y, width, height, color): # Функци ярисует задние ноги
'''
Рисует ногу зайца.
surface - объект pygame.Surface
x, y - координаты центра изображения
width, height - ширина и высота изображения
color - цвет, заданный в формате, подходящем для pygame.Color
'''
ellipse(surface, color, (x - width // 2, y - height // 2, width, height))
def draw_eyes(surface, x, y, size):
'''
Рисует глаза зайца.
surface - объект pygame.Surface
x, y - координаты центра головы
size - размер головы
'''
eye_size = size // 8
# Белки глаз
circle(surface, WHITE, (x - size // 5, y - size // 8), eye_size // 1.5)
circle(surface, WHITE, (x + size // 5, y - size // 8), eye_size // 1.5)
# Зрачки
circle(surface, BLACK, (x - size // 5, y - size // 8), eye_size // 3)
circle(surface, BLACK, (x + size // 5, y - size // 8), eye_size // 3)
# Нос
circle(surface, DARK_PINK, (x, y + size // 10), eye_size // 2)
def draw_hare(surface, x, y, width, height, color):
'''
Рисует зайца на экране.
surface - объект pygame.Surface
x, y - координаты центра изображения
width, height - ширина и высота изображения
color - цвет, заданный в формате, подходящем для pygame.Color
'''
# Тело
body_width = width // 2
body_height = height // 2
body_y = y + body_height // 4
draw_body(surface, x, body_y, body_width, body_height, color)
# Голова_1 (рисуем первый раз, чтобы примерить на неё уши)
head_size = height // 3
draw_head(surface, x, y - head_size // 2, head_size, color)
# Уши (рисуем после головы, но до глаз)
ear_height = height // 3
ear_y = y - height // 2 + ear_height // 2
ear_width = width // 10
for ear_x in (x - head_size // 4, x + head_size // 4):
draw_ear(surface, ear_x, ear_y, ear_width, ear_height, color)
# Добавим внутреннюю часть уха (розовую)
draw_ear(surface, ear_x, ear_y + 3, ear_width // 2, ear_height // 1.5, PINK)
# Голова_2 (рисуем второй раз, чтобы закрыть часть ушей)
head_size = height // 3
draw_head(surface, x, y - head_size // 2, head_size, color)
# Глаза
draw_eyes(surface, x, y - head_size // 2, head_size)
# Задние лапы
back_leg_height = height // 10
back_leg_y = y + height // 3
back_leg_width = width // 3
for leg_x in (x - width // 5, x + width // 5):
draw_leg(surface, leg_x, back_leg_y, back_leg_width, back_leg_height, color)
# Передние лапы
front_leg_height = height // 4
front_leg_y = y + height // 12
front_leg_width = width // 7
# Левая передняя лапа
draw_leg(surface, x - width // 5, front_leg_y, front_leg_width, front_leg_height, color)
# Правая передняя лапа
draw_leg(surface, x + width // 5, front_leg_y, front_leg_width, front_leg_height, color)
# Маленькие лапки(передние лапы)
foot_color = DARK_BROWN
foot_width = front_leg_width // 1.2
foot_height = front_leg_height // 4
draw_leg(surface, x - width // 5, front_leg_y + front_leg_height // 1.8, foot_width, foot_height, foot_color)
draw_leg(surface, x + width // 5, front_leg_y + front_leg_height // 1.8, foot_width, foot_height, foot_color)
# Основная программа
# Очищаем экран светло-зеленым фоном (как травка)
screen.fill(LIGHT_GREEN)
# Рисуем зайца в центре экрана
draw_hare(screen, 200, 200, 240, 380, BROWN)
pygame.display.update()
clock = pygame.time.Clock()
finished = False
while not finished:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
finished = True
pygame.quit()