我的外星人入侵游戏没有显示子弹被发射。我正在复制Python崩溃课程书中的大部分代码(这里和那里都有一些小的更改),所以我猜这是因为语法错误,我找不到。
我已经查阅了这本书中的代码,试图找出它们之间的区别。我把K炣空间改为K炣,看看空格是否没有注册或类似的东西,但子弹仍然不会发射。
外星_入侵.py
import pygame
from pygame.sprite import Group
from settings import Settings
from ship import Ship
import game_functions as gf
def run_game():
# initialize game and create a screen object
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode(
(ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption('Alien Invasion')
# set the background color
bg_color= ai_settings.bg_color
# make a ship
ship = Ship(ai_settings, screen)
# make a group to store bullets in
bullets = Group()
# start the main loop for the game
running = True
while running:
running = gf.check_events(ai_settings, screen, ship, bullets)
ship.update()
bullets.update()
gf.update_screen(ai_settings, screen, ship, bullets)
pygame.quit()
run_game()
游戏_函数.py
^{pr2}$bullet.py
^{pr3}$遗漏设置.py以及船舶.py但如果需要的话可以提供
预期结果:bullet go pew pew
实际结果:游戏不会崩溃,但当空格键按下时,不会发生任何事情。
问题似乎出在
update_screen
函数上-首先绘制 更新屏幕,然后在屏幕更新后绘制项目符号。只需将对...display.flip()
的调用移动到函数的末尾,可能会显示出项目符号(除非还有其他错误)。在相关问题 更多 >
编程相关推荐