Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.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 调试未绑定的LocalError_Python_Pygame_Game Development - Fatal编程技术网

Python 调试未绑定的LocalError

Python 调试未绑定的LocalError,python,pygame,game-development,Python,Pygame,Game Development,请告诉我如何修复UnboundLocalError 我目前正在尝试制作一款赛车游戏,但尚未完成 我已经在下面链接了我的代码文件,如果您不想下载,我甚至将其粘贴到这里:- import random import pygame pygame.init() gray= (119, 118, 110) black=(0,0,0) red=(255,0,0) import time import random display_width = 800 display_height = 600 game

请告诉我如何修复UnboundLocalError 我目前正在尝试制作一款赛车游戏,但尚未完成

我已经在下面链接了我的代码文件,如果您不想下载,我甚至将其粘贴到这里:-

import random

import pygame
pygame.init()
gray= (119, 118, 110)
black=(0,0,0)
red=(255,0,0)
import time
import random

display_width = 800
display_height = 600
game_displays = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption('CAR GAME')
clock=pygame.time.Clock()
car_image=pygame.image.load('Car_1.jpeg')
background_image=pygame.image.load('Background_1.jpeg')
yellow_strip=pygame.image.load('Yellow_strip.png')
strip=pygame.image.load('Strip.jpeg')
car_width=56

def obstacle(obs_startx,obs_starty,obs):
    if obs==0:
        obs_pic=pygame.image.load('car2.jpeg')
    elif obs==1:
        obs_pic=pygame.image.load('car3.jpeg')
    elif obs==2:
        obs_pic=pygame.image.load('car4.jpeg')
    elif obs==3:
        obs_pic=pygame.image.load('car5.jpeg')
    elif obs==4:
        obs_pic=pygame.image.load('car6.jpeg')
    elif obs==5:
        obs_pic=pygame.image.load('car7.jpeg')
    game_displays.blit(obs_pic,(obs_startx,obs_starty))

def score_system(passed,score):
    font=pygame.font.SysFont(None,25)
    text=font.render("Passed"+str(passed),True,black)
    score=font.render("Score"+str(score),True,red)
    game_displays.blit(text,(0,50))
    game_displays.blit(score,(0,30))


def text_objects(text,font):
    textsurface=font.render(text,True,black)
    return textsurface,textsurface.get_rect()

def message_display(text):
    largetext=pygame.font.Font("freesansbold.ttf",80)
    textsurf,textrect=text_objects(text,largetext)
    textrect.center=((display_width/2),(display_height/2))
    game_displays.blit(textsurf,textrect)
    pygame.display.update()
    time.sleep(1)
    game_loop()

def crash():
    message_display("YOU CRASHED!!")


def background():
    game_displays.blit(background_image,(0,0))
    game_displays.blit(background_image,(0,200))
    game_displays.blit(background_image,(0,400))
    game_displays.blit(background_image,(700,0))
    game_displays.blit(background_image,(700,200))
    game_displays.blit(background_image,(700,400))
    game_displays.blit(yellow_strip,(376,0))
    game_displays.blit(yellow_strip,(376,100))
    game_displays.blit(yellow_strip,(376,200))
    game_displays.blit(yellow_strip,(376,300))
    game_displays.blit(yellow_strip,(376,400))
    game_displays.blit(yellow_strip,(376,500))
    game_displays.blit(strip,(120,0))
    game_displays.blit(strip,(120,100))
    game_displays.blit(strip,(120,200))
    game_displays.blit(strip, (677,0))
    game_displays.blit(strip, (677,100))
    game_displays.blit(strip, (677,200))


def car(x,y):
    game_displays.blit(car_image,(x,y))#blit enters the image on the game screen



def game_loop():
    x=(display_width*0.47)
    y=(display_height*0.8)
    x_change=0
    obstacle_speed=9
    obs=0
    y_change=0
    obs_startx=random.randrange(200,(display_width-200))
    obs_starty=-750
    obs_width=56
    obs_height=125
    car_passed=0
    level=0
    score=0


    bumped=False
    while not bumped:
        for event in pygame.event.get():
            if event .type==pygame.QUIT:
                pygame.quit()
                quit()
        if event.type==pygame.KEYDOWN:#keydown just means if some one presses a key
            if event.key==pygame.K_LEFT:
                x_change=-5
            if event.key==pygame.K_RIGHT:
                x_change=5
            if event.key==pygame.K_a:
                obstacle_speed+=2
            if event.key==pygame.K_b:
                obstacle_speed-=2
        if event.type==pygame.KEYUP:#key up just means if no key is pressed so it will not move as thenx_xhange=0
            if event.key==pygame.K_LEFT or event.key==pygame.K_RIGHT:
                x_change=0

        x+=x_change
        game_displays.fill(gray)
        background()
        obs_starty-=(obstacle_speed/4)
        obstacle(obs_startx,obs_starty,obs)
        obs_starty+=obstacle_speed
        car(x,y)
        score_system(passed,score)

        if x>680-car_width or x<110:
            crash()
        if x > display_width - (car_width + 110) or x < 110:
            crash()
        if obs_starty > display_height:
            obs_starty = 0 - obs_height
            obs_startx = random.randrange(170, (display_width - 170))
            obs = random.randrange(0,7)
            passed=passed+1
            score=passed*10
            if int(passed) % 10 == 0:
                level = level + 1
                obstacle_speed + 2
                largetext = pygame.font.Font("freesansbold.ttf", 80)
                textsurf, textrect = text_objects("LEVEL" + str(level), largetext)
                textrect.center = ((display_width / 2), (display_height / 2))
                gamedisplays.blit(textsurf, textrect)
                pygame.display.update()
                time.sleep(3)

        if y<obs_starty+obs_height:
            if x > obs_startx and x < obs_startx + obs_width or x+car_width > obs_startx and x+car_width < obs_startx+obs_width:
                crash()

        pygame.display.update()#update() is to make the display Surface actually appear on the user's monitor.
        #If we will delete the above line only a black screen will appear
        clock.tick(60)


game_loop()
pygame.quit()
quit()
随机导入
导入pygame
pygame.init()
灰色=(119118110)
黑色=(0,0,0)
红色=(255,0,0)
导入时间
随机输入
显示宽度=800
显示高度=600
game\u displays=pygame.display.set\u模式((显示宽度、显示高度))
pygame.display.set_标题('汽车游戏')
clock=pygame.time.clock()
car\u image=pygame.image.load('car\u 1.jpeg')
background\u image=pygame.image.load('background\u 1.jpeg')
yellow\u strip=pygame.image.load('yellow\u strip.png'))
strip=pygame.image.load('strip.jpeg')
轿厢宽度=56
def障碍物(obs_startx、obs_starty、obs):
如果obs==0:
obs_pic=pygame.image.load('car2.jpeg')
elif obs==1:
obs_pic=pygame.image.load('car3.jpeg')
elif obs==2:
obs_pic=pygame.image.load('car4.jpeg')
elif obs==3:
obs_pic=pygame.image.load('car5.jpeg')
elif obs==4:
obs_pic=pygame.image.load('car6.jpeg')
elif obs==5:
obs_pic=pygame.image.load('car7.jpeg')
游戏显示。blit(obs_pic,(obs_startx,obs_starty))
def评分系统(通过,评分):
font=pygame.font.SysFont(无,25)
text=font.render(“已通过”+str(已通过),True,黑色)
score=font.render(“score”+str(score),真,红色)
游戏显示。blit(文本,(0,50))
游戏显示。blit(分数,(0,30))
def text_对象(文本、字体):
textsurface=font.render(文本,真,黑色)
返回textsurface,textsurface.get_rect()
def信息_显示(文本):
largetext=pygame.font.font(“freesansbold.ttf”,80)
textsurf,textrect=text\u对象(text,largetext)
textrect.center=((显示宽度/2),(显示高度/2))
游戏显示.blit(textsurf,textrect)
pygame.display.update()
时间。睡眠(1)
博弈(循环)
def crash():
信息显示(“您崩溃了!!”)
def background():
游戏显示。blit(背景图像,(0,0))
游戏显示。blit(背景图像,(0200))
游戏显示.blit(背景图像,(0400))
游戏显示。blit(背景图像,(700,0))
游戏显示.blit(背景图片,(700200))
游戏显示.blit(背景图片,(700400))
游戏显示。blit(黄色条纹,(376,0))
游戏显示。blit(黄色带,(376100))
游戏显示。blit(黄色条纹,(376200))
游戏显示。blit(黄色条纹,(376300))
游戏显示。blit(黄色带,(376400))
游戏显示。blit(黄色带,(376500))
游戏显示。blit(条带,(120,0))
游戏显示。布利特(带,(120100))
游戏显示。布利特(带,(120200))
游戏显示。布利特(条纹,(677,0))
游戏显示。blit(带(677100))
游戏显示。布利特(条纹,(677200))
def汽车(x,y):
游戏显示。blit(汽车图像,(x,y))#blit在游戏屏幕上输入图像
def game_loop():
x=(显示宽度*0.47)
y=(显示高度*0.8)
x_变化=0
障碍物_速度=9
obs=0
y_变化=0
obs_startx=随机随机随机范围(200,(显示宽度-200))
obs_starty=-750
obs_宽度=56
obs_高度=125
车辆通过=0
级别=0
分数=0
颠簸=错误
虽然没有碰撞:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
退出
if event.type==pygame.KEYDOWN:#KEYDOWN仅表示某人按下某个键
如果event.key==pygame.K_左:
x_变化=-5
如果event.key==pygame.K_RIGHT:
x_变化=5
如果event.key==pygame.K_a:
障碍物_速度+=2
如果event.key==pygame.K_b:
障碍物_速度-=2
如果event.type==pygame.KEYUP:#key up仅表示如果没有按下任何键,那么它将不会移动,因为此时x_xchange=0
如果event.key==pygame.K_左或event.key==pygame.K_右:
x_变化=0
x+=x_变化
游戏显示。填充(灰色)
背景()
obs_起点-=(障碍物_速度/4)
障碍物(obs_startx、obs_starty、obs)
obs_starty+=障碍物_速度
汽车(x,y)
评分系统(通过,评分)
如果x>680车宽或x显示车宽-(车宽+110)或x<110:
崩溃()
如果obs\U starty>显示高度:
obs_起点=0-obs_高度
obs_startx=随机.randrange(170,(显示宽度-170))
obs=随机。随机范围(0,7)
通过=通过+1
分数=通过*10
如果int(已通过)%10==0:
级别=级别+1
障碍物_速度+2
largetext=pygame.font.font(“freesansbold.ttf”,80)
textsurf,textrect=text_对象(“级别”+str(级别),largetext)
text rect.center=((显示宽度/2),(显示高度/2))
gamedisplays.blit(textsurf,textrect)
pygame.display.update()
时间。睡眠(3)
如果y obs_startx和xobs_startx和x+car_宽度
运行此命令后,您能否告诉我,我遇到了一个UnboundLocalError。
请告诉我解决方案

也许这篇文章有帮助:您需要做的不仅仅是将代码转储到一个问题中。具体错误是什么?在哪一行?