Несколько циклов - PullRequest
       5

Несколько циклов

2 голосов
/ 20 октября 2019

Нет ошибок, но ничего не происходит, когда мы пытаемся запустить его.

Мы пытаемся заставить стрелки перемещаться и всплывать случайным образом и останавливаться, когда они доходят до дна. Вроде как Dance Dance Revolution. Мы начали с малого и заставили стрелки работать только с одним циклом while, но мы хотим, чтобы все они были случайными.

import pygame, sys
from pygame.locals import *
from random import randint
from time import sleep

pygame.init()

speed = 30 # frames per second
WIDTH = 1100
HEIGHT = 700
GameState = "play" #this can be play, title, or end
class MoveArrow(object):


    arrowRight = pygame.image.load("red right.png")
    arrowLeft = pygame.image.load("blue left.png")
    arrowUp = pygame.image.load("green up.png")
    arrowDown = pygame.image.load("yellow down.png")
    grayUp =pygame.image.load("gray up.png")
    grayDown =pygame.image.load("gray down.png")
    grayLeft =pygame.image.load("gray left.png")
    grayRight =pygame.image.load("gray right.png")


    y = 0
    x1 = 50
    x2 = 350
    x3 = 650
    x4 = 950

    arrow = [arrowRight, arrowLeft, arrowUp, arrowDown]
    x = [x1, x2, x3, x4]

speedControl = pygame.time.Clock()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
background = pygame.image.load("try.jpg")
background = pygame.transform.scale(background,(WIDTH,HEIGHT)) ## Make it the same size as the screen
pygame.display.set_caption("Animation")
white = (255, 255, 255)
black = ( 0, 0, 0)

while True: # game loop
    screen.blit(background,(0,0)) ## Blit the background onto the screen first

while True:
    screen.blit(MoveArrow.grayRight, (MoveArrow.x1, 575))
    screen.blit(MoveArrow.grayLeft, (MoveArrow.x2, 575))
    screen.blit(MoveArrow.grayUp, (MoveArrow.x3, 575))
    screen.blit(MoveArrow.grayDown, (MoveArrow.x4, 575))

while True:
    chosenArrow = MoveArrow.arrowRight
    screen.blit(chosenArrow, (x1, MoveArrow.y))
    if (MoveArrow.y = 700):
        sleepTime = randint(0, 10)
        sleep(sleepTime)
    else:
        MoveArrow.y += 5

while True:
    chosenArrow = MoveArrow.arrowLeft
    screen.blit(chosenArrow, (x2, MoveArrow.y))
    if (MoveArrow.y = 700):
        sleepTime = randint(0, 10)
        sleep(sleepTime)
    else:
        MoveArrow.y += 5


while True:
    chosenArrow = MoveArrow.arrowUp
    screen.blit(chosenArrow, (x3, MoveArrow.y))
    if (MoveArrow.y = 700):
        sleepTime = randint(0, 10)
        sleep(sleepTime)
    else:
        MoveArrow.y += 5

while True:
    chosenArrow = MoveArrow.arrowDown
    screen.blit(chosenArrow, (x4, MoveArrow.y))
    if (MoveArrow.y = 700):
        sleepTime = randint(0, 10)
        sleep(sleepTime)
    else:
        MoveArrow.y += 5

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

    pygame.display.flip()
    pygame.display.update()
    speedControl.tick(speed)

Мы хотим, чтобы случайные стрелки появлялись в случайное время, а затем исчезали, когда они добирались докрай. Нет сообщений об ошибках, но есть всплывающее окно, которое просто зависает.

...