为了账号安全,请及时绑定邮箱和手机立即绑定

在 Pygame 中将开始屏幕切换到游戏

在 Pygame 中将开始屏幕切换到游戏

猛跑小猪 2022-07-05 19:07:34
我想将开始屏幕切换到游戏。当我按下回车时,它应该会发生。但是当我按下回车时发生的事情实际上是退出游戏。这是代码:import randomfrom time import sleepimport pygamescreen = pygame.display.set_mode([800,600], 0 , 32)startscreen = pygame.image.load(".\\img\\startscreen.png")while True:    for event in pygame.event.get():        if (event.type == pygame.QUIT):            pygame.quit()            quit()            sys.exit()        if (event.type == pygame.KEYDOWN):            if (event.key == pygame.K_RETURN):                self.initialize()    screen.blit(startscreen,(0,0))    pygame.display.update()class CarRacing:    def __init__(self):        pygame.init()        self.display_width = 800        self.display_height = 600        self.black = (0, 0, 0)        self.white = (255, 255, 255)        self.clock = pygame.time.Clock()        self.gameDisplay = None    def initialize(self):        self.crashed = False        self.carImg = pygame.image.load('.\\img\\police.png')        self.car_x_coordinate = (self.display_width * 0.45)        self.car_y_coordinate = (self.display_height * 0.8)        self.car_width = 49        # enemy_car        self.enemy_car = pygame.image.load('.\\img\\enemy_car_1.png')        self.enemy_car_startx = random.randrange(200, 600)        self.enemy_car_starty = -600        self.enemy_car_speed = 5        self.enemy_car_width = 49        self.enemy_car_height = 100        # Background        self.bgImg = pygame.image.load('.\\img\\newroad.jpg')        self.bg_x1 = (self.display_width / 4) - (360 / 4)        self.bg_x2 = (self.display_width / 4) - (360 / 4)        self.bg_y1 = 0        self.bg_y2 = -600        self.bg_speed = 3        self.count = 0我希望你们能帮助我。顺便说一下,这是我测试的一个项目。我已经尝试了很多改变,但没有任何改变。
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您self.initialize()在while-loop 中使用,但self.只能在内部使用class


您应该使用running = True/False退出while循环并稍后使用car_racing.initialize()


if __name__ == '__main__':

    screen = pygame.display.set_mode([800,600], 0 , 32)

    startscreen = pygame.image.load(".\\img\\startscreen.png")


    running = True

    while running:

        for event in pygame.event.get():

            if event.type == pygame.QUIT:

                pygame.quit()

                quit()

                sys.exit()


            if event.type == pygame.KEYDOWN:

                if event.key == pygame.K_RETURN:

                    #self.initialize()

                    running = False


        screen.blit(startscreen,(0,0))

        pygame.display.update()


    car_racing = CarRacing()

    car_racing.initialize()

    car_racing.racing_window()


查看完整回答
反对 回复 2022-07-05
  • 1 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信