Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
为什么赢了';t我的角色在pygame/python中跳跃_Python_Pygame - Fatal编程技术网

为什么赢了';t我的角色在pygame/python中跳跃

为什么赢了';t我的角色在pygame/python中跳跃,python,pygame,Python,Pygame,这是我制作的第一个Pygame游戏 我计划用基本方块/方块制作一个2人格斗游戏 我现在正试图实现跳入第一个字符,在我看来,所有的逻辑看起来都是正确的,目前我没有任何错误。但是,当我尝试按w跳转时,什么也没有发生 谢谢你的帮助。(P.S.如果你想知道为什么我的脚本中没有类,我似乎无法理解类,它们让我很困惑:P)谢谢,下面是我的代码: import pygame pygame.init() #Sets up 8 bit colours white = (255,255,255) black =

这是我制作的第一个Pygame游戏

我计划用基本方块/方块制作一个2人格斗游戏

我现在正试图实现跳入第一个字符,在我看来,所有的逻辑看起来都是正确的,目前我没有任何错误。但是,当我尝试按
w
跳转时,什么也没有发生

谢谢你的帮助。(P.S.如果你想知道为什么我的脚本中没有类,我似乎无法理解类,它们让我很困惑:P)谢谢,下面是我的代码:

import pygame

pygame.init()

#Sets up 8 bit colours
white = (255,255,255)
black = (0,0,0)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
lightblue = (180,235,255)
grassgreen =(20,200,50)

#Sets up pygame window
gameDisplay = pygame.display.set_mode((1000,600))
pygame.display.set_caption('Block Fighter')

gameExit = False

#Variables
x = 50
y = 480
x_change = 0
y_change = 0

clock = pygame.time.Clock()

#Main Game Loop
while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            gameExit = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                x_change = -5
            if event.key == pygame.K_d:
                x_change = 5
            if event.key == pygame.K_w:
                y_change = -5
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_a or event.key == pygame.K_d:
                x_change = 0

    if y <= 480:
        onGround = False
    else:
        onGround = True
    if onGround == False:
        y_change = 5
    if onGround == True:
        y_change = 0


    x += x_change
    y += y_change

    gameDisplay.fill(lightblue)
    pygame.draw.rect(gameDisplay, grassgreen, [1000,600,-1000,-100])
    pygame.draw.rect(gameDisplay, black, [x,y,20,20])
    pygame.display.update()

    clock.tick(40)

pygame.quit()
quit()
导入pygame
pygame.init()
#设置8位颜色
白色=(255255)
黑色=(0,0,0)
红色=(255,0,0)
绿色=(0255,0)
蓝色=(0,0255)
浅蓝色=(180235255)
格拉斯格林=(20200,50)
#设置pygame窗口
gameDisplay=pygame.display.set_模式((1000600))
pygame.display.set_标题('Block Fighter'))
gameExit=False
#变数
x=50
y=480
x_变化=0
y_变化=0
clock=pygame.time.clock()
#主游戏循环
不退出游戏时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
gameExit=True
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_a:
x_变化=-5
如果event.key==pygame.K\u d:
x_变化=5
如果event.key==pygame.K_w:
y_变化=-5
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_a或event.key==pygame.K_d:
x_变化=0

如果在按w键跳转时y,游戏将按预期将y的值更改为
-5
。处理完事件队列后,它将继续执行此块:

if y <= 480:
        onGround = False
else:
    onGround = True
if onGround == False:
    y_change = 5
if onGround == True:
    y_change = 0

如果当您按w键跳跃时y,游戏将按预期将
y\u change
的值更改为
-5
。处理完事件队列后,它将继续执行此块:

if y <= 480:
        onGround = False
else:
    onGround = True
if onGround == False:
    y_change = 5
if onGround == True:
    y_change = 0

如果你确实在理解类上下了功夫。如果您要编写Python(或大多数语言),这是至关重要的。它还将提高您对面向对象编程工作原理的总体理解,从而帮助您解决所有问题。至于您的实际问题,如果您在代码中的
y\u change=-5
一行后面加上
print(“changed”)
,它会打印“changed”吗杰克·比格斯:约翰刚刚回答了你的问题我必须在理解课堂上下些功夫。如果您要编写Python(或大多数语言),这是至关重要的。它还将提高您对面向对象编程工作原理的总体理解,从而帮助您解决所有问题。至于您的实际问题,如果您在代码中的
y\u change=-5
一行后面加上
print(“changed”)
,它会打印“changed”吗杰克·比格斯:约翰刚刚回答了你的问题D