我已经写了一年的代码,现在只用python,我想通过制作我的第一个游戏来测试我的知识,所以我做了蛇。好的,现在我想让蛇向前移动,让玩家能够在不阻止它的情况下向某个方向移动它。但是我不知道我的代码出了什么问题。
import pygame
pygame.init()
running = True
x = 0
y = 0
momentum = "null"
def draw_rect(x, y, size, size1):
pygame.draw.rect(screen, (204, 65, 242), (x, y, size, size1))
def momentum_forward(x, y):
while momentum == "a":
x += -25
while momentum == "d":
x += 25
while momentum == "w":
x += -25
while momentum == "s":
x += 25
while running:
FPS = 30
fpsClock = pygame.time.Clock()
screen = pygame.display.set_mode((600, 480), 0, 32)
draw_rect(x, y, 25, 25)
momentum_forward(x, y)
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
x += -25
momentum = "a"
if event.key == pygame.K_d:
x += 25
momentum = "d"
if event.key == pygame.K_w:
y += -25
momentum = "w"
if event.key == pygame.K_s:
y += 25
momentum = "s"
if event.type == pygame.QUIT:
running = False
pygame.display.update()
fpsClock.tick(FPS)任何帮助都将不胜感激!!
发布于 2020-10-08 13:14:22
你已经有了一个游戏循环。您不需要在momentum_forward中使用while循环
def momentum_forward(x, y):
if momentum == "a":
x += -25
if momentum == "d":
x += 25
if momentum == "w":
x += -25
if momentum == "s":
x += 25https://stackoverflow.com/questions/64256147
复制相似问题