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