Обновить rabbit_1.py

This commit is contained in:
2026-03-18 13:51:03 +03:00
parent bdcd02edab
commit f9c3347b09

View File

@@ -1,93 +1,96 @@
import pygame
from pygame.draw import *
from pygame.draw import ellipse, circle
pygame.init()
FPS = 30
screen = pygame.display.set_mode((400, 400))
# Рисуем зайца
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_head(surface, x, y, size, color):
'''
Рисует голову зайца.
surface - объект pygame.Surface
x, y - координаты центра изображения
size - диаметр головы
color - цвет, заданный в формате, подходящем для pygame.Color
'''
circle(surface, color, (x, y), size // 2)
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_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_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 // 2
draw_body(surface, x, body_y, body_width, body_height, color)
class Hare:
"""Класс для представления зайца"""
# Рисуем голову
head_size = height // 4
draw_head(surface, x, y - head_size // 2, head_size, color)
def __init__(self, x, y, width, height, color):
"""
Инициализация зайца
x, y - координаты центра изображения
width, height - ширина и высота изображения
color - цвет зайца
"""
self.x = x
self.y = y
self.width = width
self.height = height
self.color = color
# Рисуем уши
ear_height = height // 3
ear_y = y - height // 2 + ear_height // 2
for ear_x in (x - head_size // 4, x + head_size // 4):
draw_ear(surface, ear_x, ear_y, width // 8, ear_height, color)
def draw_body(self, surface):
"""Рисует тело зайца"""
body_width = self.width // 2
body_height = self.height // 2
body_y = self.y + body_height // 2
ellipse(surface, self.color,
(self.x - body_width // 2, body_y - body_height // 2,
body_width, body_height))
# Рисуем ноги
leg_height = height // 16
leg_y = y + height // 2 - leg_height // 2
for leg_x in (x - width // 4, x + width // 4):
draw_leg(surface, leg_x, leg_y, width // 4, leg_height, color)
def draw_head(self, surface):
"""Рисует голову зайца"""
head_size = self.height // 4
head_y = self.y - head_size // 2
circle(surface, self.color, (self.x, head_y), head_size // 2)
return head_size
# Добавляем глазки
eye_size = head_size // 8
eye_y = y - head_size // 2 - head_size // 8
for eye_x in (x - head_size // 6, x + head_size // 6):
circle(surface, pygame.Color('black'), (eye_x, eye_y), eye_size)
def draw_ears(self, surface, head_size):
"""Рисует уши зайца"""
ear_height = self.height // 3
ear_y = self.y - self.height // 2 + ear_height // 2
ear_width = self.width // 8
ear_offset = head_size // 4
ellipse(surface, self.color,
(self.x - ear_offset - ear_width // 2, ear_y - ear_height // 2,
ear_width, ear_height))
ellipse(surface, self.color,
(self.x + ear_offset - ear_width // 2, ear_y - ear_height // 2,
ear_width, ear_height))
def draw_legs(self, surface):
"""Рисует ноги зайца"""
leg_height = self.height // 16
leg_y = self.y + self.height // 2 - leg_height // 2
leg_width = self.width // 4
leg_offset = self.width // 4
ellipse(surface, self.color,
(self.x - leg_offset - leg_width // 2, leg_y - leg_height // 2,
leg_width, leg_height))
ellipse(surface, self.color,
(self.x + leg_offset - leg_width // 2, leg_y - leg_height // 2,
leg_width, leg_height))
def draw_eyes(self, surface, head_size):
"""Рисует глаза зайца"""
eye_size = head_size // 8
eye_y = self.y - head_size // 2 - head_size // 8
eye_offset = head_size // 6
eye_color = pygame.Color('black')
circle(surface, eye_color, (self.x - eye_offset, eye_y), eye_size)
circle(surface, eye_color, (self.x + eye_offset, eye_y), eye_size)
def draw(self, surface):
"""Полная отрисовка зайца"""
self.draw_body(surface)
head_size = self.draw_head(surface)
self.draw_ears(surface, head_size)
self.draw_legs(surface)
self.draw_eyes(surface, head_size)
# Заливаем фон
screen.fill(pygame.Color('white'))
# Рисуем зайца в центре экрана
draw_hare(screen, 200, 200, 200, 300, pygame.Color('gray'))
# Создаем и рисуем зайца
hare = Hare(200, 200, 200, 300, pygame.Color('gray'))
hare.draw(screen)
pygame.display.update()
clock = pygame.time.Clock()