Windows 项目符号不可见,移除后不会从屏幕上移除
这是我的游戏代码: 这是我的全部代码。为什么当我发射子弹时,子弹没有出现在屏幕上 为什么在我删除项目符号时,项目符号仍在屏幕上(请参见第242行到第250行)?如果你有时间,你能告诉我为什么我第一次开始比赛就落后了吗?谢谢你的帮助!(已由其他用户回答) 还有Pygame的射击事件: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
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