Начало игры, когда отсчет закончился - PullRequest
0 голосов
/ 30 марта 2020

Итак, у меня есть этот код, который является моей основной игрой:

def game():
running = True
import pygame, sys
import random
import math as m

mainClock = pygame.time.Clock()
pygame.init()
pygame.font.init
pygame.display.set_caption('Ping Pong')
SCREEN = width, height = 900,600
white = (255, 255, 255) 
green = (0, 255, 0) 
blue = (0, 0, 128)
black = (0,0,0)
speed = [4,4]
font = pygame.font.Font('freesansbold.ttf', 32) 
score = 0
score = str(score)
font.size(score)
font.set_bold(True)
text = font.render(score, True, white)       
textRect = text.get_rect()       
textRect.center = ((width/2 - width / 20), (height/60 + height/20))
screen = pygame.display.set_mode(SCREEN, 0,32)
height1 = height/4
score = int(score)
ball = pygame.Rect(width/2, height/2, 50,50)
player = pygame.Rect(0,(height/2),25,height1)
player_1 = pygame.Rect(width - 25,(height/2),25,height1)
font1 = pygame.font.Font('freesansbold.ttf', 32) 
score1 = 0
score1 = str(score)
font1.size(score1)
font1.set_bold(True)
text1 = font1.render(score1, True, white)
score1 = int(score1)
textRect1 = text1.get_rect()     
textRect1.center = ((width/2 + width / 15), (height/60 + height/20))
up = False
down = False
up_1 = False
down_1 = False
RED = (255,0,0)
particles = []
while running:
    color = (192,192,192)
    # clear display #
    screen.fill((0,0,0))
    screen.blit(text, textRect)
    screen.blit(text1, textRect1)
    bx = ball.centerx
    by = ball.centery
    particles.append([[bx, by],[random.randint(0,20) / 10 - 1, -1], random.randint(4,6)])
    for particle in particles:
        particle[0][0] += particle[1][0]
        particle[0][1] += particle[1][1]
        particle[2] -= 0.1
        particle[1][1] += 0.1
        pygame.draw.circle(screen, color, [int(particle[0][0]), int(particle[0][1])], int(particle[2]))
        if particle[2] <= 0:
            particles.remove(particle)
    if up == True:
        player.y -= 5
    if down == True:
        player.y += 5
    if up_1 == True:
        player_1.y -= 5
    if down_1 == True:
        player_1.y += 5
    if player.top < 0 :
        player.y = 0
    if player.bottom > height:
        player.bottom = height 
    if player_1.top < 0 :
        player_1.y = 0
    if player_1.bottom > height :
        player_1.bottom = height
    for i in range(-90,(height + 130), 120):
        rectangle = pygame.Rect((width/2), i, 13, 60)
        pygame.draw.rect(screen, (255,255,255), rectangle)
    pygame.draw.rect(screen,(191, 224, 255),player)
    pygame.draw.rect(screen,(191, 224, 255),player_1)
    color = (192,192,192)
    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    pygame.draw.rect(screen,color,ball, 3)

    import time
    ball.x += speed[0]
    ball.y += speed[1]
    if ball.top < 0 or ball.bottom > height:
        speed[1] = -speed[1]
        r = random.randint(0,255)
        g = random.randint(0,255)
        b = random.randint(0,255)
        pygame.draw.rect(screen,(r,b,g),ball, 3)
        pygame.draw.circle(screen, (r,b,g), [int(particle[0][0]), int(particle[0][1])], int(particle[2]))
    dab = random.randint(0,1)
    if ball.left < 0 :
        font = pygame.font.Font('freesansbold.ttf', 32)
        score1 = int(score1)
        score1 += 1
        score1 = str(score1)
        font.set_bold(True)
        text1 = font.render(score1, True, white) 

        textRect1 = text.get_rect()  

        textRect1.center = ((width/2 + width / 15), (height/60 + height/20))


        screen.blit(text1, textRect1)
        ball.x = width/2
        ball.y = height/2
        if dab == 1:
            ball.x += -speed[0]
            ball.y += -speed[1]
        elif dab == 0:
            ball.x += speed[0]
            ball.y += speed[1]


    if ball.right > width:
        font = pygame.font.Font('freesansbold.ttf', 32)
        score = int(score)
        score += 1
        score = str(score)
        font.set_bold(True)
        text = font.render(score, True, white) 

        textRect = text.get_rect()  

        textRect.center = ((width/2 - width / 20), (height/60 + height/20))


        screen.blit(text, textRect)
        ball.x = width/2
        ball.y = height/2
        if dab == 1:
            ball.x += -speed[0]
            ball.y += -speed[1]
        elif dab == 0:
            ball.x += speed[0]
            ball.y += speed[1] 

    # event handling #
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
        if event.type == KEYDOWN:

            if event.key == K_s:
                down = True

            if event.key == K_w:
                up = True

            if event.key == K_UP:
                up_1 =True
            if event.key == K_ESCAPE:
                running = False

            if event.key == K_DOWN:
                down_1 = True
        if event.type == KEYUP:
            if event.key == K_s:
                down = False
            if event.key == K_w:
                up = False
            if event.key == K_UP:
                up_1 = False
            if event.key == K_DOWN:
                down_1 = False

    if ball.colliderect(player_1):
        dab = random.randint(0,1)
        if dab == 1:
            speed[1] = -speed[1]
        speed[0] = -speed[0]
        r = random.randint(0,255)
        g = random.randint(0,255)
        b = random.randint(0,255)
        pygame.draw.rect(screen,(r,b,g),ball, 3)
    if ball.colliderect(player):
        speed[0] = -speed[0]
        speed[0] = random.randint(4,6)
        r = random.randint(0,255)
        g = random.randint(0,255)
        b = random.randint(0,255)
        pygame.draw.rect(screen,(r,b,g),ball, 3)


    # update display #
    pygame.display.update()
    mainClock.tick(60)

, и у меня есть экран меню, в котором отображаются некоторые параметры. Только button_1 работает. *

1 Ответ

1 голос
/ 30 марта 2020

Для того, чтобы выполнить обратный отсчет, вы импортируете модуль времени:

import time

... затем вам нужно для l oop, с шагом -1, с обратным отсчетом от 3 до 1 Внутри для l oop напечатайте числа и поспите одну секунду, используя модуль времени:

for a in range(3,0,-1):
    print(a)
    time.sleep(1)

После этого для l oop вы положите остаток своего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...