Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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 - Fatal编程技术网

Python 为什么;名称错误:名称';绘制对象';“未定义”;发生

Python 为什么;名称错误:名称';绘制对象';“未定义”;发生,python,Python,我正在用pygame做一个小游戏。 我已经定义了一个名为draw_Objects()的函数,但是出现了名称错误,就好像我没有定义该函数一样。我该怎么办? 代码是模块的一部分 我试图更改draw_Objects()函数,但无法解决它 import pygame from const import * class item(pygame.sprite.Sprite): def __init__(self,game): super().__init__()

我正在用pygame做一个小游戏。 我已经定义了一个名为draw_Objects()的函数,但是出现了名称错误,就好像我没有定义该函数一样。我该怎么办? 代码是模块的一部分

我试图更改draw_Objects()函数,但无法解决它

 import pygame
 from const import *

   class item(pygame.sprite.Sprite):

    def __init__(self,game):

        super().__init__()
        self.game=game

        #self.screen=screen
        self.width=WIDTH
        self.height=HEIGHT

        #potion 사진 불러옴
        self.image=pygame.image.load("tile/red-potion.png")
        self.rect = self.image.get_rect()
        self.red_potion=pygame.image.load("tile/red-potion.png")
        self.blue_potion=pygame.image.load("tile/blue-potion.png")

        self.mask=pygame.mask.from_surface(self.image)
        self.rect = self.image.get_rect()

    redItem=[50,530,300,50,850,100,600,280,800,400]

    def __call__(self):
        print (" ")


    def item_display(self,screen):
        #아이템 화면에 표시
        screen.blit(self.red_potion,(50,530)) #red1
        screen.blit(self.blue_potion,(30,530))

        screen.blit(self.blue_potion,(30,460))

        screen.blit(self.red_potion,(300,50)) #red2
        screen.blit(self.blue_potion,(400,150))

        screen.blit(self.image,(850,100)) #red3
        screen.blit(self.red_potion,(600,280)) #red4
        screen.blit(self.red_potion,(800,400)) #red5
        screen.blit(self.blue_potion,(600,370))

    def draw_Objects(myList=[]):
        for i in myList:
            x=myList[i]
            y=myList[i+1]
            screen.blit(self.red_potion,(x,y))
            i+=1

    def item_eat(self,screen):
        item__=item(self)
        #red2 item
        self.rect.x=300
        self.rect.y=50
        #item과 player 충돌 검사
        hits_item=pygame.sprite.spritecollide(self,self.game.player_group,False,pygame.sprite.collide_mask)

        if hits_item :
            screen.blit(self.red_potion,(50,530)) #red1
            screen.blit(self.blue_potion,(30,530))

            screen.blit(self.blue_potion,(30,460))
            screen.blit(self.blue_potion,(400,150))

            screen.blit(self.red_potion,(850,100)) #red3
            screen.blit(self.red_potion,(600,280)) #red4
            screen.blit(self.red_potion,(800,400)) #red5
            screen.blit(self.blue_potion,(600,370))
        else:
            #item__.item_display(self.screen)
            draw_Objects(redItem)

draw_对象不是全局函数,它是类的属性,可以通过self调用

def item_eat(self,screen):
        item__=item(self)
        #red2 item
        self.rect.x=300
        self.rect.y=50
        #item과 player 충돌 검사
        hits_item=pygame.sprite.spritecollide(self,self.game.player_group,False,pygame.sprite.collide_mask)

        if hits_item :
            screen.blit(self.red_potion,(50,530)) #red1
            screen.blit(self.blue_potion,(30,530))

            screen.blit(self.blue_potion,(30,460))
            screen.blit(self.blue_potion,(400,150))

            screen.blit(self.red_potion,(850,100)) #red3
            screen.blit(self.red_potion,(600,280)) #red4
            screen.blit(self.red_potion,(800,400)) #red5
            screen.blit(self.blue_potion,(600,370))
        else:
            #item__.item_display(self.screen)
            self.draw_Objects(redItem) # Change this line to reference draw_Objects

draw_对象不是全局函数,它是类的属性,可以通过self调用

def item_eat(self,screen):
        item__=item(self)
        #red2 item
        self.rect.x=300
        self.rect.y=50
        #item과 player 충돌 검사
        hits_item=pygame.sprite.spritecollide(self,self.game.player_group,False,pygame.sprite.collide_mask)

        if hits_item :
            screen.blit(self.red_potion,(50,530)) #red1
            screen.blit(self.blue_potion,(30,530))

            screen.blit(self.blue_potion,(30,460))
            screen.blit(self.blue_potion,(400,150))

            screen.blit(self.red_potion,(850,100)) #red3
            screen.blit(self.red_potion,(600,280)) #red4
            screen.blit(self.red_potion,(800,400)) #red5
            screen.blit(self.blue_potion,(600,370))
        else:
            #item__.item_display(self.screen)
            self.draw_Objects(redItem) # Change this line to reference draw_Objects
这相当简单

def draw_对象(自):
myList=[]
对于myList中的i:
x=myList[i]
y=myList[i+1]
屏幕光点(自身红色药剂,(x,y))
i+=1
那么就这样称呼它:

self.draw\u对象()
这相当简单

def draw_对象(自):
myList=[]
对于myList中的i:
x=myList[i]
y=myList[i+1]
屏幕光点(自身红色药剂,(x,y))
i+=1
那么就这样称呼它:

self.draw\u对象()
这一行

draw_对象(redItem)
正在查找名为draw_Objects的全局函数,该函数不存在。你需要打电话

self.draw\u对象(redItem)
但是,您还需要将
self
作为参数包含在函数定义中,如下所示

def draw_对象(self,myList=[]):
这一行

draw_对象(redItem)
正在查找名为draw_Objects的全局函数,该函数不存在。你需要打电话

self.draw\u对象(redItem)
但是,您还需要将
self
作为参数包含在函数定义中,如下所示

def draw_对象(self,myList=[]):

我忘了说错误发生在item\u eat()函数中。最后一行
draw\u Objects
不是全局名称;这是类的一个错误定义的属性。我忘了说错误发生在item_eat()函数中。最后一行
draw\u Objects
不是全局名称;这是类的一个错误定义的属性。