Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 运行游戏时显示空白窗口_Python_Python 3.x_Pygame_Window_2d Games - Fatal编程技术网

Python 运行游戏时显示空白窗口

Python 运行游戏时显示空白窗口,python,python-3.x,pygame,window,2d-games,Python,Python 3.x,Pygame,Window,2d Games,我正在使用pygame进行游戏,但当我启动它时,我可以看到一个黑色窗口。当你点击关闭按钮时,你可以在短时间内看到游戏的所有对象 import pygame pygame.init() win = pygame.display.set_mode((800, 600)) pygame.display.set_caption('World of Fighters') walkRight = [pygame.image.load('g_right1.png'), pygame.image.loa

我正在使用pygame进行游戏,但当我启动它时,我可以看到一个黑色窗口。当你点击关闭按钮时,你可以在短时间内看到游戏的所有对象

import pygame

pygame.init()

win = pygame.display.set_mode((800, 600))

pygame.display.set_caption('World of Fighters')

walkRight = [pygame.image.load('g_right1.png'),
pygame.image.load('g_right2.png'), pygame.image.load('g_right3.png'),
pygame.image.load('g_right4.png')]

walkLeft = [pygame.image.load('g_left1.png'),
pygame.image.load('g_left2.png'), pygame.image.load('g_left3.png'),
pygame.image.load('g_left4.png')]

bg = pygame.image.load('bg.jpg')
playerStand = pygame.image.load('g_stand.png')


clock = pygame.time.Clock()


#player 2
x2 = 720
y2 = 500

width2 = 35
height2 = 50
speed2 = 15

left2 = False
right2 = False
animCount2 = 0

isJump2 = False
jumpCount2 = 10


#player 1
x = 50
y = 500

width = 35
height = 50
speed = 15

left = False
right = False
animCount = 0

isJump = False
jumpCount = 10

#blue
color = (0, 0, 255)

run = True

def drawWindow():
    global animCount
    win.blit(bg, (0, 0))

    if animCount + 1 >= 30:
        animCount = 0

    if left:
        win.blit(walkLeft[animCount // 5], (x, y))
        animCount += 1
    elif right:
        win.blit(walkRight[animCount // 5], (x, y))
        animCount += 1
    else:
        win.blit(playerStand, (x, y))



    pygame.display.update() 

while run:
    clock.tick(30)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    #p1
    if keys[pygame.K_a] and x > 5:
        x -= speed
        left = True
        right = False   
    elif keys[pygame.K_d] and x < 800 - width - 5:
        x += speed
        left = False
        right = True
    else:
        right = False
        left = False
        animCount = 0
    if not(isJump):
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            if jumpCount < 0:
                y += (jumpCount ** 2) / 2
            else:
                y -= (jumpCount ** 2) / 2
            jumpCount -= 1

        else:
            isJump = False
            jumpCount = 10


    #p2
    if keys[pygame.K_LEFT] and x2 > 5:
        x2 -= speed2
        left2 = True
        right2 = False  
    elif keys[pygame.K_RIGHT] and x2 < 800 - width2 - 5:
        x2 += speed2
        left2 = False
        right2 = True
    if not(isJump2):

        if keys[pygame.K_RCTRL]:
            isJump2 = True
    else:
        right2 = False
        left2 = False
        animCount2 = 0
        if jumpCount2 >= -10:
            if jumpCount2 < 0:
                y2 += (jumpCount2 ** 2) / 2
            else:
                y2 -= (jumpCount2 ** 2) / 2
            jumpCount2 -= 1

        else:
            isJump2 = False
            jumpCount2 = 10

drawWindow()


pygame.quit()
导入pygame
pygame.init()
win=pygame.display.set_模式((800600))
pygame.display.set_标题('World of Fighters')
walkRight=[pygame.image.load('g_right1.png'),
pygame.image.load('g_right2.png')、pygame.image.load('g_right3.png'),
pygame.image.load('g_right4.png')]
walkLeft=[pygame.image.load('g_left1.png'),
pygame.image.load('g_left2.png')、pygame.image.load('g_left3.png'),
pygame.image.load('g_left4.png')]
bg=pygame.image.load('bg.jpg')
playerStand=pygame.image.load('g_stand.png'))
clock=pygame.time.clock()
#玩家2
x2=720
y2=500
宽度2=35
高度2=50
速度2=15
left2=错误
右2=假
animCount2=0
isJump2=错误
跳线计数2=10
#玩家1
x=50
y=500
宽度=35
高度=50
速度=15
左=假
右=假
animCount=0
isJump=False
跳数=10
#蓝色的
颜色=(0,0,255)
运行=真
def drawWindow():
全球动物计数
赢。布利特(背景,(0,0))
如果animCount+1>=30:
animCount=0
如果留下:
win.blit(walkLeft[animCount//5],(x,y))
计数+=1
埃利夫权利:
win.blit(walkRight[animCount//5],(x,y))
计数+=1
其他:
赢。布利特(玩家看台,(x,y))
pygame.display.update()
运行时:
时钟滴答(30)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
keys=pygame.key.get_pressed()
#p1
如果键[pygame.K_a]和x>5:
x-=速度
左=真
右=假
elif键[pygame.K_d]和x<800-宽度-5:
x+=速度
左=假
右=真
其他:
右=假
左=假
animCount=0
如果不是(isJump):
如果键[pygame.K_SPACE]:
isJump=True
其他:
如果跳线计数>=-10:
如果跳线计数<0:
y+=(跳线计数**2)/2
其他:
y-=(跳线计数**2)/2
跳转计数-=1
其他:
isJump=False
跳数=10
#p2
如果键[pygame.K_LEFT]和x2>5:
x2-=速度2
left2=真
右2=假
elif键[pygame.K_RIGHT]和x2<800-宽度2-5:
x2+=速度2
left2=错误
右2=真
如果不是(IS2):
如果键[pygame.K_RCTRL]:
isJump2=True
其他:
右2=假
left2=错误
animCount2=0
如果jumpCount2>=-10:
如果jumpCount2<0:
y2+=(跳线计数2**2)/2
其他:
y2-=(跳线计数2**2)/2
jumpCount2-=1
其他:
isJump2=错误
跳线计数2=10
拉窗()
pygame.quit()
此外,这个游戏将是一个动态的战士2个球员在像素艺术风格,但我找不到这个错误的答案,因为我看了教程,我有相同的代码像视频

这是一个问题。
drawWindow()
必须在主应用程序循环中调用,而不是在循环之后调用

你要做的是:

运行时:
时钟滴答(30)
# [...]
拉窗()
pygame.quit()
你要做的是

运行时:
时钟滴答(30)
# [...]
拉窗()
pygame.quit()
这是一个问题。
drawWindow()
必须在主应用程序循环中调用,而不是在循环之后调用

你要做的是:

运行时:
时钟滴答(30)
# [...]
拉窗()
pygame.quit()
你要做的是

运行时:
时钟滴答(30)
# [...]
拉窗()
pygame.quit()

问题解决了吗?答案可以接受吗?(答案左边的复选标记)请阅读问题解决了吗?答案可以接受吗?(答案左边的复选标记)请阅读