forked from 24_MokanGV/LABAn3
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c642df2010 |
115
lb3_GLEB_fix.py
115
lb3_GLEB_fix.py
@@ -1,115 +0,0 @@
|
|||||||
import pygame
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# Инициализация
|
|
||||||
pygame.init()
|
|
||||||
WIDTH, HEIGHT = 600, 600
|
|
||||||
screen = pygame.display.set_mode((WIDTH, HEIGHT))
|
|
||||||
pygame.display.set_caption("Кроликкк")
|
|
||||||
|
|
||||||
# Цвета
|
|
||||||
WHITE = (255, 255, 255)
|
|
||||||
GRAY = (200, 200, 200)
|
|
||||||
PINK = (255, 180, 180)
|
|
||||||
BLACK = (0, 0, 0)
|
|
||||||
|
|
||||||
|
|
||||||
def draw_ears(surface):
|
|
||||||
"""Рисует уши кролика с использованием циклов"""
|
|
||||||
# Позиции для левого и правого уха
|
|
||||||
ear_positions = [
|
|
||||||
(250, 100, 40, 120), # левое ухо (внешняя часть)
|
|
||||||
(310, 100, 40, 120) # правое ухо (внешняя часть)
|
|
||||||
]
|
|
||||||
|
|
||||||
# Внешняя часть ушей
|
|
||||||
for x, y, w, h in ear_positions:
|
|
||||||
pygame.draw.ellipse(surface, GRAY, (x, y, w, h))
|
|
||||||
|
|
||||||
# Внутренняя часть ушей
|
|
||||||
inner_ear_positions = [
|
|
||||||
(260, 110, 20, 80), # левое ухо (внутренняя часть)
|
|
||||||
(320, 110, 20, 80) # правое ухо (внутренняя часть)
|
|
||||||
]
|
|
||||||
for x, y, w, h in inner_ear_positions:
|
|
||||||
pygame.draw.ellipse(surface, PINK, (x, y, w, h))
|
|
||||||
|
|
||||||
|
|
||||||
def draw_head(surface):
|
|
||||||
"""Рисует голову кролика"""
|
|
||||||
pygame.draw.circle(surface, GRAY, (300, 250), 80)
|
|
||||||
|
|
||||||
|
|
||||||
def draw_face(surface):
|
|
||||||
"""Рисует лицо кролика с использованием циклов"""
|
|
||||||
x, y = 300, 250
|
|
||||||
|
|
||||||
# Глаза с бликами (цикл для повторяющихся элементов)
|
|
||||||
eye_offsets = [(-30, -10), (30, -10)]
|
|
||||||
for dx, dy in eye_offsets:
|
|
||||||
eye_x, eye_y = x + dx, y + dy
|
|
||||||
pygame.draw.circle(surface, BLACK, (eye_x, eye_y), 10)
|
|
||||||
pygame.draw.circle(surface, WHITE, (eye_x + 5, eye_y - 5), 4)
|
|
||||||
|
|
||||||
# Нос
|
|
||||||
pygame.draw.circle(surface, PINK, (x, y + 20), 8)
|
|
||||||
|
|
||||||
# Рот
|
|
||||||
pygame.draw.arc(surface, BLACK, (x - 15, y + 25, 30, 20), 3.14, 0, 2)
|
|
||||||
|
|
||||||
# Усы (цикл для пар линий)
|
|
||||||
mustache_points = [
|
|
||||||
(260, 270, 220, 265), # левый верхний
|
|
||||||
(260, 275, 220, 280), # левый нижний
|
|
||||||
(340, 270, 380, 265), # правый верхний
|
|
||||||
(340, 275, 380, 280) # правый нижний
|
|
||||||
]
|
|
||||||
for x1, y1, x2, y2 in mustache_points:
|
|
||||||
pygame.draw.line(surface, BLACK, (x1, y1), (x2, y2), 2)
|
|
||||||
|
|
||||||
|
|
||||||
def draw_body(surface):
|
|
||||||
"""Рисует тело кролика"""
|
|
||||||
pygame.draw.ellipse(surface, GRAY, (240, 330, 120, 150))
|
|
||||||
|
|
||||||
|
|
||||||
def draw_limbs(surface):
|
|
||||||
"""Рисует лапки и хвост с использованием циклов"""
|
|
||||||
# Лапки (левая и правая)
|
|
||||||
paw_positions = [
|
|
||||||
(250, 450, 40, 50), # левая лапка
|
|
||||||
(310, 450, 40, 50) # правая лапка
|
|
||||||
]
|
|
||||||
for x, y, w, h in paw_positions:
|
|
||||||
pygame.draw.ellipse(surface, GRAY, (x, y, w, h))
|
|
||||||
|
|
||||||
# Хвост
|
|
||||||
pygame.draw.circle(surface, WHITE, (300, 470), 20)
|
|
||||||
|
|
||||||
|
|
||||||
def draw_rabbit(surface):
|
|
||||||
"""Отрисовывает всего кролика в правильном порядке"""
|
|
||||||
# Порядок отрисовки оптимизирован (сначала задние элементы)
|
|
||||||
draw_body(surface)
|
|
||||||
draw_head(surface)
|
|
||||||
draw_ears(surface)
|
|
||||||
draw_face(surface)
|
|
||||||
draw_limbs(surface)
|
|
||||||
|
|
||||||
|
|
||||||
# Основной цикл
|
|
||||||
running = True
|
|
||||||
clock = pygame.time.Clock()
|
|
||||||
|
|
||||||
while running:
|
|
||||||
for event in pygame.event.get():
|
|
||||||
if event.type == pygame.QUIT:
|
|
||||||
running = False
|
|
||||||
|
|
||||||
screen.fill(WHITE)
|
|
||||||
draw_rabbit(screen)
|
|
||||||
pygame.display.flip()
|
|
||||||
clock.tick(60)
|
|
||||||
|
|
||||||
pygame.quit()
|
|
||||||
sys.exit()
|
|
||||||
159
lb3_draw_zaic.py
159
lb3_draw_zaic.py
@@ -1,159 +0,0 @@
|
|||||||
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()
|
|
||||||
125
lb_3_fix.py
Normal file
125
lb_3_fix.py
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
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_ellipse(surface, x, y, width, height, color):
|
||||||
|
"""Рисует эллипс по центру с координатами x,y"""
|
||||||
|
ellipse(surface, color, (x - width // 2, y - height // 2, width, height))
|
||||||
|
|
||||||
|
|
||||||
|
def draw_body(surface, x, y, width, height, color):
|
||||||
|
"""Рисует тело зайца"""
|
||||||
|
draw_ellipse(surface, x, y, width, height, color)
|
||||||
|
|
||||||
|
|
||||||
|
def draw_ear(surface, x, y, width, height, color):
|
||||||
|
"""Рисует ухо зайца"""
|
||||||
|
draw_ellipse(surface, x, y, width, height, color)
|
||||||
|
# Добавляем внутреннюю часть уха (розовую)
|
||||||
|
draw_ellipse(surface, x, y + 3, width // 2, height // 1.5, PINK)
|
||||||
|
|
||||||
|
|
||||||
|
def draw_head(surface, x, y, size, color):
|
||||||
|
"""Рисует голову зайца"""
|
||||||
|
circle(surface, color, (x, y), size // 2)
|
||||||
|
|
||||||
|
|
||||||
|
def draw_eyes(surface, x, y, head_size):
|
||||||
|
"""Рисует глаза зайца"""
|
||||||
|
eye_size = head_size // 8
|
||||||
|
|
||||||
|
# Белки глаз
|
||||||
|
for offset_x in (-head_size // 5, head_size // 5):
|
||||||
|
circle(surface, WHITE, (x + offset_x, y - head_size // 8), int(eye_size // 1.5))
|
||||||
|
# Зрачки
|
||||||
|
circle(surface, BLACK, (x + offset_x, y - head_size // 8), eye_size // 3)
|
||||||
|
|
||||||
|
# Нос
|
||||||
|
circle(surface, DARK_PINK, (x, y + head_size // 10), eye_size // 2)
|
||||||
|
|
||||||
|
|
||||||
|
def draw_leg(surface, x, y, width, height, color):
|
||||||
|
"""Рисует ногу зайца"""
|
||||||
|
draw_ellipse(surface, x, y, width, height, color)
|
||||||
|
|
||||||
|
|
||||||
|
def draw_hare(surface, x, y, width, height, color):
|
||||||
|
"""Рисует зайца на экране"""
|
||||||
|
# Параметры
|
||||||
|
body_width = width // 2
|
||||||
|
body_height = height // 2
|
||||||
|
body_y = y + body_height // 4
|
||||||
|
head_size = height // 3
|
||||||
|
head_y = y - head_size // 2
|
||||||
|
|
||||||
|
# Тело
|
||||||
|
draw_body(surface, x, body_y, body_width, body_height, 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_head(surface, x, head_y, head_size, color)
|
||||||
|
|
||||||
|
# Глаза и нос
|
||||||
|
draw_eyes(surface, x, head_y, 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
|
||||||
|
|
||||||
|
for leg_x in (x - width // 5, x + width // 5):
|
||||||
|
draw_leg(surface, leg_x, front_leg_y, front_leg_width, front_leg_height, color)
|
||||||
|
|
||||||
|
# Маленькие лапки (ступни)
|
||||||
|
foot_width = front_leg_width // 1.2
|
||||||
|
foot_height = front_leg_height // 4
|
||||||
|
foot_y = front_leg_y + front_leg_height // 1.8
|
||||||
|
|
||||||
|
for leg_x in (x - width // 5, x + width // 5):
|
||||||
|
draw_leg(surface, leg_x, foot_y, foot_width, foot_height, DARK_BROWN)
|
||||||
|
|
||||||
|
|
||||||
|
# Основная программа
|
||||||
|
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()
|
||||||
Reference in New Issue
Block a user