这是为什么啊!

我在用python中的pygame里在做游戏,结果有个问题让我百思不得其解,希望有大神能帮助我,废话不多说,上代码:

# -*- coding: utf-8 -*-
import pygame

# 初始化pygame
pygame.init()

pygame.mouse.set_cursor()  #设置鼠标光标在程序内的显示图像(没有设置)

# 设置窗口标题和大小
界面_标题 = "射击与闪躲"
界面_大小 = (1320, 680)
界面 = pygame.display.set_mode(界面_大小)
pygame.display.set_caption(界面_标题)

# 设置颜色

颜色 = (255, 255, 255)

# 加载图像
游戏主界面 = pygame.image.load("游戏主界面.jpg")

# 填充背景色
界面.fill(颜色)

# 在屏幕上绘制图像
界面.blit(游戏主界面, (30, 30))

# 绘制文本
字体1 = pygame.font.Font('游戏字体.ttf', 100)
文字1的内容 = [字体1.render("欢迎", True, (0, 0, 0)), 字体1.render("回来", True, (0, 0, 0)),
               字体1.render("! ! !", True, (0, 0, 0))]
文字1的位置 = [(1100, 100), (1100, 200), (1100, 300)]
for i in range(len(文字1的内容)):
    界面.blit(文字1的内容[i], 文字1的位置[i])

# 绘制文本
字体2 = pygame.font.Font('游戏字体.ttf', 80)
字体3 = pygame.font.Font('游戏字体.ttf', 60)
文字2的内容 = [字体2.render("关闭", True, (0, 0, 0)), 字体3.render("启动!!!", True, (250, 0, 0)),
               字体2.render("设置", True, (0, 0, 0))]
文字2的位置 = [(220, 475), (475, 390), (750, 475)]
for i in range(len(文字2的内容)):
    界面.blit(文字2的内容[i], 文字2的位置[i])

# 更新显示
pygame.display.flip()

abc = True

# 游戏循环
while abc:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            # 退出游戏循环
            pygame.quit()
            exit()





        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = pygame.mouse.get_pos()
   “
            if x >= 207 and x <= 413:
                if y >= 462 and y <= 558 :
                    if event.button == 1:
                        abc = False
                                          ”
  “
            elif x >= 460 and x <= 670:
                if y >= 370 and x <= 465:
                    if event.button == 1:
                        abc = False
                                         ”




        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                abc = False
pygame.quit()
exit()

其中游戏循环里我将其它部分和它分开的那一部分中,我就不理解了,为什么第一个引号里的代码在条件成立的时候,能够执行,第二个引号里的代码在条件成立的时候,又不能执行了,除了条件不一样以外,代码全都一样,这咋回事啊?

我也是真服了,第二个引号里的代码除了条件以外,我都换成了其它代码又试了一下,都不行,改成啥都没法执行

然后我又对代码结构上进行了改变,游戏循环改成了这样:

# 游戏循环
while abc:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            # 退出游戏循环
            pygame.quit()
            exit()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = pygame.mouse.get_pos()
            if x >= 207 and x <= 413:
                if y >= 462 and y <= 558 :
                    if event.button == 1:
                        abc = False
        elif event.type == pygame.MOUSEBUTTONDOWN:
             x, y = pygame.mouse.get_pos()
             if x >= 460 and x <= 670:
                if y >= 370 and x <= 465:
                     if event.button == 1:
                        abc = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                abc = False

当我以为这样就行时,我错了,还是没法执行,于是我又改成了这样:

# 游戏循环
while abc:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            # 退出游戏循环
            pygame.quit()
            exit()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = pygame.mouse.get_pos()
            if x >= 207 and x <= 413:
                if y >= 462 and y <= 558 :
                    if event.button == 1:
                        abc = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                abc = False

    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            x, y = pygame.mouse.get_pos()
            if x >= 460 and x <= 670:
                if y >= 370 and x <= 465:
                    if event.button == 1:
                        abc = False

将它直接提出来了,可是这样还是不能执行

我又在网上查阅,又问AI,可根据这些,我的代码应该没有错才对,可就是执行不了,python也不报错,pycharm也没有警告此代码无法运行,可就是执行不了......( * - * )

最终我仍然没有解决问题,我内心崩溃了,我是真的百思不得其解了(@.@)

希望有大神看见后能够帮助我,万分感谢!!!

你可能感兴趣的:(pygame,python,开发语言)