当前位置: 首页 > 知识库问答 >
问题:

Python蛇游戏边界不工作

咸弘雅
2023-03-14

我是python新手,我正在尝试跟随一个教程,使用PyGame创建一个类似蛇的游戏。由于某种原因,我的界限不起作用。这可能很简单,但我看不出有什么理由不起作用。我没有犯任何错误,蛇只是越过了界限,比赛没有结束。

import pygame
import time
import random

pygame.init()

white = (255,255,255)
black = (0,0,0)
red = (255,0,0)

display_width = 800
display_height = 600

gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption('Slither')




clock = pygame.time.Clock()
block_size = 10
FPS = 30

font = pygame.font.SysFont(None, 25)

def message_to_screen(msg,color):
    screen_text = font.render(msg, True, color)
    gameDisplay.blit(screen_text, [display_width/2, display_height/2])


def gameLoop():
    gameExit = False
    gameOver = False

    lead_x = display_width/2
    lead_y = display_height/2

    lead_x_change = 0
    lead_y_change = 0

    randAppleX = random.randrange (0, display_width-block_size)
    randAppleY = random.randrange (0, display_height-block_size)

    while not gameExit:

        while gameOver == True:
            gameDisplay.fill(white)
            message_to_screen("Game over, press C to play again or Q to quit", red)
            pygame.display.update()

            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        gameExit = True
                        gameOver = False
                    if event.key == pygame.K_c:
                        gameLoop()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                gameExit = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    lead_x_change = -block_size
                    lead_y_change = 0
                elif event.key == pygame.K_RIGHT:
                    lead_x_change = block_size
                    lead_y_change = 0
                elif event.key == pygame.K_UP:
                    lead_y_change = -block_size
                    lead_x_change = 0
                elif event.key == pygame.K_DOWN:
                    lead_y_change = block_size
                    lead_X_change = 0

        **if lead_x >= display_width or lead_x < 0 or lead_y >= display_height or lead_y < 0:
            gameOver == True #boundaries**






        lead_x += lead_x_change
        lead_y += lead_y_change
        gameDisplay.fill(white)
        pygame.draw.rect(gameDisplay, red, [randAppleX, randAppleY, block_size, block_size])
        pygame.draw.rect(gameDisplay, black, [lead_x , lead_y, block_size, block_size])
        pygame.display.update()

        clock.tick(FPS) 


    message_to_screen("You Lose", red)
    pygame.display.update()
    time.sleep(2)
    pygame.quit()
    quit()

gameLoop()

共有1个答案

端木元青
2023-03-14

在退出条件下,使用的是相等比较,而不是赋值运算符:

    if lead_x >= display_width or lead_x < 0 or lead_y >= display_height or lead_y < 0:
        gameOver == True #boundaries

综上所述,,

gameOver == True

应该是

gameOver = True
 类似资料:
  • 所以我对Python、PyGame和任何编程都是全新的。我遵循了在PyGame中制作蛇游戏的教程。现在一切都结束了,但为了给自己一个挑战,我正试图改变一下比赛。首先我想添加边界,但我真的迷路了。我试过看其他教程,但它们的图像似乎有所不同。这是我的代码(因为我不知道什么可以帮助你帮助我,所以我把它全部发送了): 基本上,我希望当我的蛇撞到边界时发生的事情和它撞到自己时发生的事情是一样的。如果你能帮助

  • 我正在为iOS开发一个贪吃蛇游戏:https://github.com/ScottBouloutian/Snake 我的目标是让AI以最佳方式完成蛇的游戏(让蛇填满棋盘)。 我正在使用IDA*找到一条从蛇当前位置到食物的路径。这是有效的。然而,该算法没有考虑到它将来可能需要获得更多食物的事实。因此,有时它倾向于把自己框起来。 也就是说,蛇在任何给定时间的目标都是找到食物,而它的目标应该是填满棋盘(

  • 帖子底部的实际问题! 首先,我想解释我的问题。 我正在写一个基本的蛇游戏,我让蛇自动移动。当您执行代码时,它会自动移动到窗口的右侧,就像预期的那样。然而,我不能按我想要的方式控制我的蛇,它根本不会改变方向。 为了避免混淆,是类的一个实例。 为了解释蛇的运动: 对象有一个属性,它是一个包含对象的数组列表。每个对象都有和属性。使用此ArrayList,蛇通过在画布的y轴和x轴上使用和属性在画布上绘制小

  • 使用Python 2.7制作一个基本的蛇游戏... 我设置了一个游戏结束事件,当蛇经过窗口屏幕时发生。但是,当它经过边界点时,什么也不会发生。有什么建议吗? 下面是我认为我需要更改的代码行,以及在我程序的其余部分中指向GitHub的要点的链接。

  • 本文向大家介绍python实现贪吃蛇游戏,包括了python实现贪吃蛇游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 本文稍作改动,修复一些bug,原文链接:python实现贪吃蛇游戏 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍python贪吃蛇游戏代码,包括了python贪吃蛇游戏代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下代码即可: 操作方法: 上下左右键或wsad键控制 ESC键退出游戏 下载代码:贪吃