我从网上拍摄了一个简单的PyGame
游戏,我正在进行一些更改,以便学习游戏编程。
这是一款非常简单的游戏。一个角色(类Player
)显示在关卡中,如果按CTRL
,他射击一颗子弹(它是从{{1加载的图像) })。子弹只是占据角色的位置并增加它的Bullet
轴(向水平方向移动)直到永远。
如果我推动,例如两次X
,第一颗子弹就会被卡住,第二颗子弹继续移动,直到我再次按下CTRL
,依此类推。
到目前为止,这是我的代码。我很抱歉发布了所有内容,但我是CTRL
中的新用户,我可以解决不同的问题。
PyGame
所以我想知道是否有人可以帮助我并告诉我如何在游戏中拍摄无限子弹并同时保持所有水平移动,而不仅仅是一个
提前致谢,
答案 0 :(得分:2)
问题出在第101和124行
bullet = Bullet(player_pos[0]+50, player_pos[1]+30)
entities.add(bullet)
...
# update bullet
if shoot == True:
bullet.update()
将新项目符号添加到实体列表中(第102行)。但是,当移动子弹时(第125行),你只移动最新的子弹(子弹是最新的)。
您必须更新列表中的每个项目符号,直到它们离开屏幕。
我不会在这里做完整的代码审查;我们有一个单独的小组。但请注意,“== True”总是多余。在这里,只说“如果拍摄:”