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

python

import time

import pygame

pygame.init()

mw = pygame.display.set_mode((500,500))

background = (200,255,255)

mw.fill(background)

abc = (255,255,255)

clock = pygame.time.Clock()

game_over = False

rect_x = 200

rect_y = 330

move = ""

speed_x=5

speed_y=5


class Area():

def init(self,x=0,y=0,width=10,height=10,color1 = None):

self.rect = pygame.Rect(x,y,width,height)

self.fill_color = background

if color1:

self.fill_color = color1

def color(self,abc):

self.fill_color = abc

def fill(self):

pygame.draw.rect(mw,self.fill_color ,self.rect)


class Picture(Area):

def init(self,filename,x=0,y=0,width=10,height=10):

Area.init(self,x=x,y=y,width=width,height=height,color1 = None)

self.image = pygame.image.load(filename)

def draw(self,shift_x = 0,shift_y = 0):

self.fill()

mw.blit(self.image,(self.rect.x + shift_x, self.rect.y + shift_y))


class Label(Area):

def set_text(self,text,fsize = 12, text_color = (255,255,255)):

self.text = text

self.image = pygame.font.Font(None,fsize).render(text,True,text_color)

def draw(self,shift_x = 0,shift_y = 0):

pygame.draw.rect(mw,self.fill_color,self.rect)

mw.blit(self.image,(self.rect.x + shift_x,self.rect.y + shift_y))

ball = Picture("ball.png",160,200,50,50)

platform = Picture("platform.png",rect_x,rect_y,100,30)

enemies = []

default_x = 5

default_y = 5

enemies_count1 = 9

for k in range(3):

x = default_x+(27*k)

y = default_y+(55*k)

for i in range(enemies_count1):

enemy = Picture("enemy.png",x,y,50,50)

enemies.append(enemy)

x += 55

enemies_count1 -= 1

lvl = 1

while not game_over:

ball.fill()

platform.fill()

for event in pygame.event.get():

if event.type == pygame.QUIT:

game_over = True

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_a:

move = "left"

if event.key == pygame.K_d:

move = "right"

if event.type == pygame.KEYUP:

move = ""

if move == "left" and platform.rect.x > 0:

platform.rect.x = platform.rect.x - 15

if move == "right" and platform.rect.x < 500-platform.rect.width:

platform.rect.x = platform.rect.x + 15

for enemy in enemies:

enemy.draw()

if enemy.rect.colliderect(ball.rect):

enemies.remove(enemy)

enemy.fill()

speed_y *= -1

ball.rect.x += speed_x

ball.rect.y += speed_y

if ball.rect.x < 0 or ball.rect.x >500 - ball.rect.width:

speed_x *= -1

if ball.rect.y<0:

speed_y *= -1

if ball.rect.colliderect(platform.rect):

speed_y *= -1

if ball.rect.y > rect_y - 10:

lose_text = Label(150,150,50,50,background)

lose_text.set_text("YOU LOSE",60,text_color = (255,0,0))

lose_text.draw(10,10)

game_over = True

if len(enemies) == 0:

win_text = Label(150,150,50,50,background)

win_text.set_text("YOU WIN",60,text_color = (0,200,0))

win_text.draw(10,10)

speed_x += 5

speed_y += 5

if lvl == 1:

default_x1 = 5

default_y1 = 5

ball.rect.x = 160

ball.rect.y = 200

enemies_count1 = 14

for j in range(3):

x1 = default_x1+(27*j)

y1 = default_y1+(55*j)

for i in range(enemies_count1):

enemy = Picture("enemy.png",x1,y1,50,50)

enemies.append(enemy)

x1 += 55

enemies_count1 -= 1

lvl += 1

ball.draw()

platform.draw()

pygame.display.update()

clock.tick(60)

потрібно доробити код на пайтоні а точніше ускладнити ось список що потрібно зробити

1.сделать уровни(4)

2.сделать что бы на втором и тд уровне появлялся второй шарик когда первый шарик попадает в одного из enemies на рандом

3.кнопку пауза

4.меню. самое банальное типа играть и закончить
і виправити помилку в коді

Ответы

Ответ дал: HelperAi
0

Ответ:

Нужно приложить немного старания.

Объяснение:

Щоб ускладнити код та додати вказані функціональності, вам знадобиться багато змін. Ось список кроків, які вам потрібно виконати:

1. Створіть змінну 'level', яка початково має значення 1. Використовуйте цю змінну, щоб налаштувати кількість ворогів на кожному рівні.

2. Створіть змінну 'ball2', яка буде представляти другий м'ячик. Зробіть так, щоб на початку кожного рівня 'ball2' з'являвся, коли перший м'ячик зіштовхується з ворогом на випадковому місці. Наприклад, ви можете створити нову функцію 'spawn_ball2', яка генерує випадкові координати для 'ball2' і додає його до списку м'ячиків.

3. Створіть кнопку 'Пауза'. Додайте змінну 'paused', яка початково має значення False. Використовуйте цю змінну для призупинки руху м'ячиків і платформи, коли гра в паузі. Зробіть кнопку 'пауза' активною, коли гра запущена, і натисніть на неї, щоб змінити значення змінної 'paused'. У циклі гри додайте перевірку на зупинку руху, якщо 'paused' дорівнює True.

4. Створіть головне меню гри. Розмістіть головне меню в окремому циклі, що запускається під час запуску гри. Встановіть початкові значення змінних та привітання. Перевіряйте події в головному меню, щоб перевести користувача в ігровий цикл або закрити гру.

5. Виправте помилку в коді. Ви не вклали цикл "for enemy in enemies" всередину циклу "while not game_over", через що можна втратити функціональність рухомих ворогів.

Вас заинтересует