制造一个在pygame中射击子弹的敌人

时间:2016-01-19 17:42:33

标签: python pygame

我正在制作一个平台游戏,它有一个级别,在玩家的同一方向不断射击子弹。但是,我可以获得1个子弹,但是我无法在列表中添加更多的子弹以不断的间隔重复射击。任何帮助将不胜感激!

ls /accumulo/instances /

1 个答案:

答案 0 :(得分:1)

每次开火你都必须创建新的子弹实例。

if event.type == FiringBullet:

    bullet = Bullets(400,200) # new instance with own position

    BulletList.add(bullet) # suggestion to use lower_case name for variables

现在您使用一个实例。您将它添加到列表中,列表上有许多元素,但所有元素具有相同的位置。如果你改变其中一个的位置,那么你改变所有这些的位置。

在PythonTutor.com上查看可视化(它是与python代码的长链接)

http://www.pythontutor.com/visualize.html#code=%0Abullets_list+%3D+%5B%5D%0A%0Abullet+%3D+(400,200%29%0A%0Abullets_list.append(bullet%29%0Abullets_list.append(bullet%29%0Abullets_list.append(bullet%29%0A%0A%23+----%0A%0Aother_list+%3D+%5B%5D%0A%0Abullet+%3D+(400,200%29%0Aother_list.append(bullet%29%0A%0Abullet+%3D+(400,200%29%0Aother_list.append(bullet%29%0A%0Abullet+%3D+(400,200%29%0Aother_list.append(bullet%29&mode=display&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=2&rawInputLstJSON=%5B%5D&curInstr=12

BTW:

我宁愿使用名字Bullet - 它是单个子弹位置。

PEP8文档(Python代码样式指南)建议

  • 变量的lower_case名称 - bullet_listtrap_listgame_exit
  • 常量的UPPER_CASE名称 - FIRING_BULLET
  • 类的CamelCase名称 - BulletSpriteGroup

甚至Stackoverflow Editor都将CamelCase名称作为类名,并使用蓝色。