Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f9c3347b09 |
145
rabbit_1.py
145
rabbit_1.py
@@ -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))
|
||||
class Hare:
|
||||
"""Класс для представления зайца"""
|
||||
|
||||
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 __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
|
||||
|
||||
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_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))
|
||||
|
||||
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_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
|
||||
|
||||
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)
|
||||
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
|
||||
|
||||
# Рисуем голову
|
||||
head_size = height // 4
|
||||
draw_head(surface, x, y - head_size // 2, head_size, color)
|
||||
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))
|
||||
|
||||
# Рисуем уши
|
||||
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_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
|
||||
|
||||
# Рисуем ноги
|
||||
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)
|
||||
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)
|
||||
|
||||
# Добавляем глазки
|
||||
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)
|
||||
|
||||
# Заливаем фон
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user