首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未定义名称'Actor‘

未定义名称'Actor‘
EN

Stack Overflow用户
提问于 2019-03-31 13:44:57
回答 10查看 6.2K关注 0票数 4

我有一个python编程的问题,当我试图写一个游戏(由书: Coding game Python DK 3介绍)时,它说:'Actor‘的名字没有定义。

下面是我的代码:

代码语言:javascript
运行
复制
import pgzrun

from random import randint

WIDTH = 400
HEIGHT = 400

dots = []
lines = []

next_dot = 0

for dot in range(0, 10):
    actor = Actor("dot")
    actor.pos = randint(20, WIDTH -20), randint (20, HEIGHT - 20)
    dots.append(actor)

def draw():
    screen.fill("black")
    number = 1
    for dot in dots:
        screen.draw.text(str(number), (dot.pos[0], dot.pos[1] + 12))
    dot.draw()
    number = number + 1

for line in lines:
    screen.draw.line(line[0], line[1], (100, 0, 0))

pgzrun.go()
EN

回答 10

Stack Overflow用户

发布于 2019-08-15 23:33:20

您正在使用Python库pgzero (通过导入pgzrun间接实现)。

我已经将游戏代码重构为多个文件(导入到主文件中),并且也观察到了同样奇怪的情况

NameError:未定义名称“Actor”

错误消息。

Actor类似乎是“私有的”,但可以用下面这行简单的代码导入:

代码语言:javascript
运行
复制
from pgzero.builtins import Actor, animate, keyboard

有关背景信息,请参阅:

https://github.com/lordmauve/pgzero/issues/61

2019年8月18日更新:无法导入screen对象,因为它是在运行时作为全局变量创建的(object = Screen类的实例),并且无法完成IDE支持的代码。请参阅源代码:https://github.com/lordmauve/pgzero/blob/master/pgzero/game.py (esp.def reinit_screen部分)

票数 5
EN

Stack Overflow用户

发布于 2019-06-01 20:34:51

Pygame站点上的这个页面将帮助您从集成开发环境中运行它:https://pygame-zero.readthedocs.io/en/stable/ide-mode.html

从本质上讲,你必须有这两行代码:

代码语言:javascript
运行
复制
import pgzrun
...
...
pgzrun.go()

但是在编码过程中,IDE仍然会抱怨像screen和Actor这样的对象和函数是未定义的。挺烦人的。据我所知,没有办法修复它,你只能忽略这些抱怨,点击Debug > Run。如果您没有错误,程序将会编译并运行。

关于……

代码语言:javascript
运行
复制
import pgzrun
actor = pgzrun.Actor("dot")

代码语言:javascript
运行
复制
from pgzrun import *
dot=Actor("dot")

这些都不能帮助像Spyder或Visual Studio这样的集成开发环境识别像screenActor这样的对象和函数

pgzrun看起来不像一个普通的python库。Pygame依赖于使用pgzrun从命令行运行python脚本:

代码语言:javascript
运行
复制
pgzrun mygame.py
票数 3
EN

Stack Overflow用户

发布于 2019-03-31 14:33:46

如果您的pip包或同一目录中有Actor类,请定义它或从package中导入它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55438239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档