当我尝试使用递归时函数名称未定义错误

河马

我想做一个可以发射子弹的球员。为此,我尝试定义一个shoot在按下空格键时调用函数。该函数如下所示(p是播放器对象btw):

class bullet:
    def __init__(self):
        self.x = None
        self.y = None
        self.radius = 10
        self.shooting = False
        self.speed = 5

    def shoot(self):
        self.shooting = True
        if  self.shooting == True:
            self.x = (p.x + 60)
            self.y = (p.y + 25)
            self.x += self.speed
            self.y += self.speed
            pygame.draw.circle(d, (0, 0, 0), (self.x, self.y), self.radius)

        shoot()

我希望该函数可以继续调用自身,而子弹可以继续前进。但是实际发生的是我按空格键时出现错误

    shoot()
NameError: name 'shoot' is not defined

我如何调用该函数:

while True:
    d.fill((98, 98, 98))
    p.draw()

    for event in pygame.event.get():
        pass

    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_SPACE:
            b.shoot()

我观察到的一件事是,如果我shoot()shoot()函数末尾删除了递归,它将运行,但是只要按住空格,子弹就会停留在相同的位置(正如递归被删除一样)。我该如何解决这个问题?谢谢

修剪

shoot不是一个功能,严格地说。这是一个实例方法,必须从一个bullet对象中调用您需要使用

self.shoot()

递归。

但是,这是使子弹移动的不良方法。这是一个循环工作。当您以较小版本的问题调用例程时,最好使用递归。这只是一个延续。

    while self.shooting == True:
        self.x = (p.x + 60)
        self.y = (p.y + 25)
        self.x += self.speed
        self.y += self.speed
        pygame.draw.circle(d, (0, 0, 0), (self.x, self.y), self.radius)

这就提出了一个问题,您打算如何停止移动子弹头。你需要类似的东西

        self.shooting = (self.x <= x_limit) and \
                        (self.y <= y_limit)

其中x / y_limit是该移动方向的上限。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我尝试引用之前定义的函数时,出现“未定义全局名称[函数名称]”的信息

来自分类Dev

错误TypeError:当我尝试添加产品时,无法读取未定义的属性“名称”

来自分类Dev

Django 错误:名称 '_' 未定义,当我尝试创建新模型时

来自分类Dev

当我尝试使用ngRoute时出现未定义错误$ routeProvider

来自分类Dev

名称错误:使用函数时未定义名称“x”

来自分类Dev

当我尝试从C程序调用已编译的NASM函数时出现未定义的参考错误

来自分类Dev

当我尝试调用我的函数时,为什么会出现“未定义”?

来自分类Dev

当我尝试放置disabled =“ disabled”时发生未定义的错误

来自分类Dev

当我尝试从 Controller 读取会话属性时,为什么会出现“未定义”错误

来自分类Dev

当我使用 onClick 箭头函数时,为什么我的变量未定义?

来自分类Dev

当我使用querySelectorAll时,如何定义未定义?

来自分类Dev

错误类型错误:_co.userData是未定义的,当我尝试对值使用属性绑定时,在角度7中

来自分类Dev

当我在“类 os”中调用自定义成员函数时,JVM 9 中的“未定义引用”错误

来自分类Dev

当我尝试使用猫鼬的“ findByIdAndRemove”方法时,为什么我的EJS变量返回“未定义”

来自分类Dev

构造函数(构造函数名称)未定义

来自分类Dev

NameError:当我尝试捕获执行时未定义名称“ variable_name”

来自分类Dev

当我使用 cronjob 调用控制器操作时。它给出了致命错误,例如“调用未定义的函数 mysqli_init()”

来自分类Dev

当我尝试在 codeigniter 中更新某些内容时,id 未定义,它只使用 id 1

来自分类Dev

无法读取未定义的属性 'then' | 当我尝试使用 babel-dynamic-import 导入组件时

来自分类Dev

PHP错误:函数名称必须是字符串/未定义的变量send_sms

来自分类Dev

在我的Python脚本中使用Pexpect时出现错误“ NameError:名称'ExceptionPexpect'未定义”

来自分类Dev

当我在CI框架中加载到控制器时,出现调用未定义函数model()的错误

来自分类Dev

当我认为它已定义时,在我的 JavaScript 代码中出现“未定义”错误

来自分类Dev

当我不使用库时,为什么编译器会给我错误“未定义的外部符号”?

来自分类Dev

函数名称在python类中未定义

来自分类Dev

tkinter 类中的事件,未定义函数名称

来自分类Dev

MATLAB错误?对函数和变量使用相同名称时出现“未定义的函数或变量”错误

来自分类Dev

MATLAB错误?对函数和变量使用相同名称时出现“未定义的函数或变量”错误

来自分类Dev

我在使用拆分方法时遇到错误Uncaught ReferenceError:函数未定义

Related 相关文章

  1. 1

    当我尝试引用之前定义的函数时,出现“未定义全局名称[函数名称]”的信息

  2. 2

    错误TypeError:当我尝试添加产品时,无法读取未定义的属性“名称”

  3. 3

    Django 错误:名称 '_' 未定义,当我尝试创建新模型时

  4. 4

    当我尝试使用ngRoute时出现未定义错误$ routeProvider

  5. 5

    名称错误:使用函数时未定义名称“x”

  6. 6

    当我尝试从C程序调用已编译的NASM函数时出现未定义的参考错误

  7. 7

    当我尝试调用我的函数时,为什么会出现“未定义”?

  8. 8

    当我尝试放置disabled =“ disabled”时发生未定义的错误

  9. 9

    当我尝试从 Controller 读取会话属性时,为什么会出现“未定义”错误

  10. 10

    当我使用 onClick 箭头函数时,为什么我的变量未定义?

  11. 11

    当我使用querySelectorAll时,如何定义未定义?

  12. 12

    错误类型错误:_co.userData是未定义的,当我尝试对值使用属性绑定时,在角度7中

  13. 13

    当我在“类 os”中调用自定义成员函数时,JVM 9 中的“未定义引用”错误

  14. 14

    当我尝试使用猫鼬的“ findByIdAndRemove”方法时,为什么我的EJS变量返回“未定义”

  15. 15

    构造函数(构造函数名称)未定义

  16. 16

    NameError:当我尝试捕获执行时未定义名称“ variable_name”

  17. 17

    当我使用 cronjob 调用控制器操作时。它给出了致命错误,例如“调用未定义的函数 mysqli_init()”

  18. 18

    当我尝试在 codeigniter 中更新某些内容时,id 未定义,它只使用 id 1

  19. 19

    无法读取未定义的属性 'then' | 当我尝试使用 babel-dynamic-import 导入组件时

  20. 20

    PHP错误:函数名称必须是字符串/未定义的变量send_sms

  21. 21

    在我的Python脚本中使用Pexpect时出现错误“ NameError:名称'ExceptionPexpect'未定义”

  22. 22

    当我在CI框架中加载到控制器时,出现调用未定义函数model()的错误

  23. 23

    当我认为它已定义时,在我的 JavaScript 代码中出现“未定义”错误

  24. 24

    当我不使用库时,为什么编译器会给我错误“未定义的外部符号”?

  25. 25

    函数名称在python类中未定义

  26. 26

    tkinter 类中的事件,未定义函数名称

  27. 27

    MATLAB错误?对函数和变量使用相同名称时出现“未定义的函数或变量”错误

  28. 28

    MATLAB错误?对函数和变量使用相同名称时出现“未定义的函数或变量”错误

  29. 29

    我在使用拆分方法时遇到错误Uncaught ReferenceError:函数未定义

热门标签

归档