首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在程序中循环时没有定义屏幕?

为什么在程序中循环时没有定义屏幕?
EN

Stack Overflow用户
提问于 2020-08-13 01:40:51
回答 1查看 193关注 0票数 0

当我试图在鼠标坐标处形成一个圆圈时,我使用以下代码:

代码语言:javascript
复制
def main():
    screen.clear()
    mx, my = pygame.mouse.get_pos()
    screen.draw.circle((mx, my), 30, (255, 255, 255))

它只起过一次作用,但当我将它改为如下时:

代码语言:javascript
复制
def main():
    screen.clear()
    mx, my = pygame.mouse.get_pos()
    screen.draw.circle((mx, my), 30, (255, 255, 255))
    screen.clear()
while (1):
    main()

它会引发此错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3/dist-packages/pgzero/__main__.py", line 3, in <module>
    main()
  File "/usr/lib/python3/dist-packages/pgzero/runner.py", line 92, in main
    exec(code, mod.__dict__)
  File "virus-simulation!.py", line 6, in <module>
    main()
  File "virus-simulation!.py", line 2, in main
    screen.clear()
NameError: name 'screen' is not defined

有什么原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-13 17:29:38

我不知道你的屏幕是在哪里定义的,所以我不能确定是什么导致了这个问题。下面是一些基于示例的工作代码。它在鼠标位置画一个圆圈。

代码语言:javascript
复制
import pygame

pygame.init()

class CDraw():
   def __init__(self, sc): 
       self.scrn = sc
   def circle(self, p, r, c):
       pygame.draw.circle(self.scrn, c, p, r)
       
class CScreen():        
   def __init__(self):
       self.scrn = pygame.display.set_mode((400,400))
       self.draw = CDraw(self.scrn)
   def clear(self):
       self.scrn.fill((0,200,0))

screen = CScreen()

def main():
    screen.clear()
    mx, my = pygame.mouse.get_pos()
    screen.draw.circle((mx, my), 30, (255, 255, 255))
    #screen.clear()  # will remove everything
    for event in pygame.event.get():   # needed for os events
        if event.type == pygame.QUIT:
            exit()
    pygame.display.update()  # needed to do screen update
    
while (1):
    main()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63386921

复制
相关文章

相似问题

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