Windows 项目符号不可见,移除后不会从屏幕上移除

Windows 项目符号不可见,移除后不会从屏幕上移除,windows,python-2.7,pygame,pycharm,Windows,Python 2.7,Pygame,Pycharm,这是我的游戏代码: 这是我的全部代码。为什么当我发射子弹时,子弹没有出现在屏幕上 为什么在我删除项目符号时,项目符号仍在屏幕上(请参见第242行到第250行)?如果你有时间,你能告诉我为什么我第一次开始比赛就落后了吗?谢谢你的帮助!(已由其他用户回答) 还有Pygame的射击事件: elif event.key == K_LSHIFT: bullet = Fire_User('bomb_user.jpg') bullet.rect.x = my_ball.rect.x + 10

这是我的游戏代码:

这是我的全部代码。为什么当我发射子弹时,子弹没有出现在屏幕上 为什么在我删除项目符号时,项目符号仍在屏幕上(请参见第242行到第250行)?如果你有时间,你能告诉我为什么我第一次开始比赛就落后了吗?谢谢你的帮助!(已由其他用户回答)

还有Pygame的射击事件:

elif event.key == K_LSHIFT:
    bullet = Fire_User('bomb_user.jpg')
    bullet.rect.x = my_ball.rect.x + 10
    bullet.rect.y = my_ball.rect.y
    fired = 1
    bulletGroup.add(bullet)
elif event.key == K_RSHIFT:
    otherBullet = Fire_Comp('steve.png')
    otherBullet.rect.x = dad.rect.x - 10
    otherBullet.rect.y = dad.rect.y
    fired = 1
    otherBulletGroup.add(otherBullet)
更新:
我正试着把我的照片(子弹)闪到屏幕上。这给了我一个错误:

Traceback (most recent call last):
  File "E:/PyCharm_Tony/Hero's_War.py", line 273, in <module>
    screen.blit(bullet.image, bullet.rect)
NameError: name 'bullet' is not defined
回溯(最近一次呼叫最后一次):
文件“E:/PyCharm\u Tony/Hero's\u War.py”,第273行,在
screen.blit(bullet.image,bullet.rect)
NameError:未定义名称“bullet”

为什么会这样?我已经编辑了我的程序。哦,运行代码片段只会在一句话(很长)中加载我的代码。

启动游戏的最初延迟是因为语句

pygame.time.delay(1000)
删除它或注释它以删除滞后

现在,不要做:

bullet = Fire_User()
otherBullet = Fire_Comp()
在每个事件中创建实例。例如:

elif event.key == K_LSHIFT:
    bullet1 = Fire_User()
    bullet1.rect.x = my_ball.rect.x+10
    bullet1.rect.y = my_ball.rect.y
    bulletGroup.add(bullet1)
每当您按下
K\u LSHIFT
. 我建议将这些位置也作为
Fire\u User()
类的
\uuu init\uuu
的参数。减小
rect
的增量,以清楚地看到移动

就删除项目符号而言,
spritecollide
函数有一个属性
dokill

spritecollide(sprite, group, dokill, collided = None) -> Sprite_list

dokill论点是一个废话。如果设置为True,所有碰撞的精灵将从组中移除。

我需要行
pygame.time.delay(1000)
才能播放我的音乐。还有其他方法吗?使用
pygame.mixer.pre_init()
:在
pygame.mixer.init()之前设置
mixer
模块以避免延迟。这样,就可以避免使用
delay
语句。
spritecollide(sprite, group, dokill, collided = None) -> Sprite_list