即使定义

时间:2017-03-25 17:49:40

标签: python pygame

我的代码有问题,因为当我尝试调用类变量(在我的情况下是UPIC1),并将其定义为其他内容时,会返回一个错误,指出'NameError:name'UPIC1'是没有定义的 '。 我的代码基本上是定义类,在调用时,加载UPIC图像,裁剪它们并将它们显示在屏幕上。如果格式不正确,我很抱歉,因为这是我第一次发布到堆栈溢出

这是代码

import pygame
import sys
black = (0,0,0)
yellow = (255,242,0)
light_yellow = (255,251,270) 
red = (237,28,36)
light_red =(243,91,99)
backgroundblue = (130,255,252)
white = (255, 64, 64)
#defines scale of pictures in px
PICScale = 300
defines resolution
w = 1280
h = 720
pygame.init()

class Question:


    def __init__(self,userinput, UPIC1, UPIC2, UPIC3):
        self.userinput=userinput
        self.UPIC1=UPIC1
        self.UPIC2=UPIC2
        self.UPIC3=UPIC3


q1 = Question('alpha', pygame.image.load('img1a.png'), pygame.image.load('img1b.png'), 'n/a')

q2 = Question('beta', pygame.image.load('img2a.png'), pygame.image.load('img2b.png'), 'n/a')

q3 = Question('gamma', pygame.image.load('img3a.png'), pygame.image.load('img3b.png'), 'n/a')

q4 = Question('brownian', pygame.image.load('img4a.png'), pygame.image.load('img4b.png'), 'n/a')

q5 = Question('electromagnet', pygame.image.load('img5a.png'), pygame.image.load('img5b.png'), 'n/a')

q6 = Question('quark', pygame.image.load('img6a.png'), pygame.image.load('img6b.png'), 'n/a')

q7 = Question('inertia', pygame.image.load('img7a.png'), pygame.image.load('img7b.png'), pygame.image.load('img7c.png'))

q8 = Question('ion', pygame.image.load('img8a.png'), pygame.image.load('img8b.png'), 'n/a')

q9 = Question('matter', pygame.image.load('img9a.png'), pygame.image.load('img9b.png'), 'n/a')

q10 = Question('nuclear', pygame.image.load('img10a.png'), pygame.image.load('img10b.png'), 'n/a')

q11= Question('displacement', pygame.image.load('img11a.png'), pygame.image.load('img11b.png'), 'n/a')

q12 = Question('pendulum', pygame.image.load('img12a.png'), pygame.image.load('img12b.png'),pygame.image.load('img12c.png'))

q13 = Question('resistance', pygame.image.load('img13a.png'), pygame.image.load('img13b.png'),'n/a')

q14 = Question('momentum', pygame.image.load('img14a.png'), pygame.image.load('img14b.png'),pygame.image.load('img14c.png'))

q15 = Question('ampere', pygame.image.load('img15a.png'), pygame.image.load('img15b.png'), 'n/a')

q1.UPIC1 = UPIC1

PIC1 = pygame.transform.scale(UPIC1, (PICScale,PICScale))


screen = pygame.display.set_mode((w, h))
screen.fill((backgroundblue))
running = 1

while running:
    screen.fill((backgroundblue))
    screen.blit(PIC1,(w/2-(3/2*PICScale),0))
    pygame.display.flip()`enter code here`

1 个答案:

答案 0 :(得分:0)

您的代码中的任何地方都没有全局变量,因此您尝试为该类提供尚不存在的值。你的代码应添加一行

UPIC1 = "Value"
行前

q1.UPIC1 = UPIC1