• Предмет: Информатика
  • Автор: valik7981
  • Вопрос задан 5 месяцев назад

ПОМОГИТЕ СРОЧНО!!!! 30 балл.
створіть власну гру в Python.
Завдання №1
Опишіть коротко сценарій майбутньої гри та модуля PyGame, які вам можуть знадобитись для реалізації сценарію.

Завдання №2
Створіть ігровий цикл для майбутньої гри.

Завдання №3
Створити саму гру (використовуйте набуті знання з минулих тем)


slonce70: какая игра вам нужна то!?)

Ответы

Ответ дал: slonce70
1

import pygame, sys

from pygame.locals import *

# Налаштування Pygame

pygame.init()

clock = pygame.time.Clock()

# Налаштування вікна

WINDOW_SIZE = (600, 400)

screen = pygame.display.set_mode(WINDOW_SIZE)

pygame.display.set_caption('Ping Pong')

# Кольори

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (255, 0, 0)

# Розміри ракеток та м'яча

BALL_SIZE = 20

PADDLE_WIDTH = 15

PADDLE_HEIGHT = 60

# Швидкість м'яча та ракеток

BALL_SPEED = 5

PADDLE_SPEED = 5

# Початкове положення м'яча та ракеток

ball_pos = [300, 200]

ball_vel = [BALL_SPEED, BALL_SPEED]

paddle1_pos = [30, 175]

paddle2_pos = [555, 175]

# Колір м'яча

ball_color = WHITE

# Оновлення положення м'яча та ракеток

def update_ball():

   global ball_pos, ball_vel, ball_color

   # Оновлення положення м'яча

   ball_pos[0] += ball_vel[0]

   ball_pos[1] += ball_vel[1]

   # Перевірка на зіткнення з верхньою та нижньою стінками

   if ball_pos[1] <= BALL_SIZE / 2 or ball_pos[1] >= WINDOW_SIZE[1] - BALL_SIZE / 2:

       ball_vel[1] *= -1

   # Перевірка на зіткнення з ракетками

   if ball_pos[0] <= PADDLE_WIDTH + BALL_SIZE / 2 + paddle1_pos[0]:

       if paddle1_pos[1] < ball_pos[1] < paddle1_pos[1] + PADDLE_HEIGHT:

           ball_vel[0] *= -1

           ball_color = RED

       else:

           reset_ball()

   else:

       ball_color = WHITE

   if ball_pos[0] >= paddle2_pos[0] - BALL_SIZE / 2:

       if paddle2_pos[1] < ball_pos[1] < paddle2_pos[1] + PADDLE_HEIGHT:

           ball_vel[0] *= -1

           ball_color = RED

       else:

           reset_ball()

   else:

       ball_color = WHITE

def update_paddles():

   global paddle1_pos, paddle2_pos

   # Оновлення положення ракеток

   keys = pygame.key.get_pressed()

   if keys[K_w]:

       paddle1_pos[1] -= PADDLE_SPEED

   if keys[K_s]:

       paddle1_pos[1] += PADDLE_SPEED

   if keys[K_UP]:

       paddle2_pos[1] -= PADDLE_SPEED

   if keys[K_DOWN]:

       paddle2_pos[1] += PADDLE_SPEED

   # Обмеження руху ракеток у межах вікна

   if paddle1_pos[1] < 0:

       paddle1_pos[1] = 0

   if paddle1_pos[1] > WINDOW_SIZE[1] - PADDLE_HEIGHT:

       paddle1_pos[1] = WINDOW_SIZE[1] - PADDLE_HEIGHT

   if paddle2_pos[1] < 0:

       paddle2_pos[1] = 0

   if paddle2_pos[1] > WINDOW_SIZE[1] - PADDLE_HEIGHT:

       paddle2_pos[1] = WINDOW_SIZE[1] - PADDLE_HEIGHT

# Скидання положення м'яча після голу

def reset_ball():

   global ball_pos, ball_vel

   ball_pos = [300, 200]

   ball_vel = [BALL_SPEED, BALL_SPEED]

# Головний цикл гри

while True:

   # Обробка подій

   for event in pygame.event.get():

       if event.type == QUIT:

           pygame.quit()

           sys.exit()

   # Оновлення стану гри

   update_ball()

   update_paddles()

   # Очищення екрану

   screen.fill(BLACK)

   # Малювання м'яча та ракеток

   pygame.draw.circle(screen, ball_color, ball_pos, BALL_SIZE / 2)

   pygame.draw.rect(screen, WHITE, (paddle1_pos[0], paddle1_pos[1], PADDLE_WIDTH, PADDLE_HEIGHT))

   pygame.draw.rect(screen, WHITE, (paddle2_pos[0], paddle2_pos[1], PADDLE_WIDTH, PADDLE_HEIGHT))

   # Оновлення екрану

   pygame.display.update()

   clock.tick(60)

Ось гра Пінг Понг - колись робив для форума. Трішки змінив.


valik7981: спасибо, эта пойдет
Вас заинтересует