Почему мой анализатор не может выводить спрайты на экран без сбоев? - PullRequest
0 голосов
/ 29 января 2019

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

Я просто использовал простую процедуру

elif event.type == pygame.MOUSEBUTTONDOWN:

, ноон продолжает падать с тех пор, как я добавил это

pygame.init()

Screen = "None"

Sobj = "None"

Width = 800

Height = 600

Time = 0

MouseX, MouseY = pygame.mouse.get_pos()

Frame = pygame.display.set_mode((Width,Height))

pygame.display.set_caption("HypoPixel")

FPS = pygame.time.Clock()

def button(DisplayText,ButtonPosition,Function):
    pass
def mapX(MapXPos):
    pass
def mapY(MapYPos):
    pass
def mapZ(MapZPos):
    pass

def ReDisplayItem():
    if Sobj == "None":
        Raycast('Assets/Textures/Extra/ItemBox.png',0,0,160,160)
    elif Sobj == "Loom":
        Raycast('Assets/Textures/Extra/IBO.png',0,0,160,160)
        Raycast('Assets/Textures/Blocks/loom_side.png',10,10,140,140)

def Raycast(TTR, RayXPos, RayYPos, RaySizeX, RaySizeY):
    RaycastThis = pygame.image.load(TTR)
    RaycastThis = pygame.transform.scale(RaycastThis,(RaySizeX,RaySizeY))
    Frame.blit(RaycastThis, (RayXPos, RayYPos))
Loop = True
Raycast('Assets/Textures/Screens/Skybox/Earth.png',0,0,800,600)
Raycast('Assets/Textures/Extra/ItemBox.png',0,0,160,160)
while Loop == True:
    Time = Time + 1
    while Sobj == "None":
        RCT = 'Assets/Textures/Blocks/air.png'
    while Sobj == "Loom":
        RCT = 'Assets/Textures/Blocks/loom_side.png'
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
        elif event.type == pygame.MOUSEBUTTONDOWN: 
            Raycast(RCT,MouseX,MouseY,160,160)
        elif event.type == pygame.KEYDOWN:
            if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                exit()
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_0:
                Raycast('Assets/Textures/Extra/ItemBox.png',0,0,160,160)
                Sobj = "None"
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_1:
                Raycast('Assets/Textures/Blocks/loom_side.png',10,10,140,140)
                Sobj = "Loom"
    if Time >= 2400 and Time < 4800:
        Raycast('Assets/Textures/Screens/Skybox/EarthNight.png',0,0,800,600)
        ReDisplayItem()
    elif Time >= 4800:
        Time = 0
        Raycast('Assets/Textures/Screens/Skybox/Earth.png',0,0,800,600)
        ReDisplayItem()
    pygame.display.update()

FPS.tick(60)

Я ожидал, что приложение откроется как обычно и с новой добавленной способностью рисовать блоки для Альфа-теста моей игры, но он потерпел крах, без признаковошибка.

1 Ответ

0 голосов
/ 29 января 2019

NeverMind, я понял, что должен использовать

if

и

elif

вместо циклов while, извините за беспорядок в Stack OverFlow Community.(

...