python - 名称 'Actor' 未定义

标签 python pgzero

我在 python 编程方面遇到问题,当我尝试编写游戏时(本书介绍:Coding Games Python DK 3),它说: 未定义名称“Actor”。

这是我的代码:

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()

最佳答案

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

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

NameError: name 'Actor' is not defined

错误信息。

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

from pgzero.builtins import Actor, animate, keyboard

背景见:

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

2019 年 8 月 18 日更新:无法导入屏幕对象,因为它是在运行时作为全局变量创建的(对象 = Screen 类的实例)和 IDE-那么支持的代码完成是不可能的。查看源代码:https://github.com/lordmauve/pgzero/blob/master/pgzero/game.py (特别是 def reinit_screen 部分)

关于python - 名称 'Actor' 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55438239/

相关文章:

python - on_mouse_down 调用每个按钮(甚至滚轮移动)

python - 我写了一行在 pygamezero 中显示 hello,但它显示白色 block 而不是文本

python - pygame - 如何完成游戏?

python - 无法使用 Flask Blueprints 和 Swagger UI 获取 API 规范

python - Matplotlib 绘制报价之间的市场(X 轴)

python - PyInstaller ErroNo2 "No such file or directory: ' akespec'"

python - Tkinter IntVar 返回 PY_VAR0 而不是值

python - 仅打印满足两个条件的特定 xml 值