好的,我在学校要做一个毕业项目,我决定尝试学习编程。开始时,我决定参加VEX课程,学习了一些基本的"C"语言。我想为我的实际项目制作一个游戏,所以我决定制作一个那种愚蠢的迷宫游戏,在游戏中你必须避免用鼠标触碰到墙壁。当我将鼠标悬停在准备按钮上时,它会加载实际的地图,但实际的游戏不会超出这个范围。这是我的代码,我很困惑,因为在加载迷宫后,当我触碰到墙壁或触碰到终点时,程序没有执行预期的操作。
import pygame
from pygame import *
pygame.init()
done = False
getready = image.load('ready.png')
backdrop = image.load('map.png')
goon = image.load('continue.png')
maze2 = image.load('map2.png')
loose = image.load('loose.png')
screen = display.set_mode((700, 500))
display.set_caption('Maze Game')
event.set_grab(1)
while done == False:
screen.blit(getready, (0, 0))
display.update()
for e in event.get():
if e.type == KEYUP:
if e.key == K_ESCAPE:
done = True
if screen.get_at((mouse.get_pos())) == (0, 0, 0):
while done == False:
screen.blit(backdrop, (0, 0))
display.update()
if screen.get_at((mouse.get_pos())) == (0, 0, 0):
print("You touched the wall!")
done = True
elif screen.get_at((mouse.get_pos())) == (0, 255, 0):
screen.blit(goon, (0, 0))
display.update()
if e in event.get():
if e.type == KEYUP:
if e.key == K_y:
screen.blit(maze2, (0, 0))
display.update()
if e in event.get():
if e.type == KEYUP:
if e.key == K_y:
done = True
if screen.get_at((mouse.get_pos())) == (0, 0, 0):
screen.blit(victory, (0, 0))
display.update()
time.sleep(3)
for e in event.get():
if e.type == KEYUP:
if e.key == K_ESCAPE:
done = True
pygame.quit()
我知道这段代码可能很粗糙,但请记住我刚刚开始学习,欢迎任何有用的建议 :)
更新: 我把代码发给了我的表兄弟,他将它改成了这样:
import pygame
from pygame import *
pygame.init()
done = False
done2 = False
ref = image.load('ready.png')
loose = image.load('loose.png')
cntnu = image.load('continue.png')
goon = 0
screen = display.set_mode((700, 500))
display.set_caption('Maze Game')
event.set_grab(1)
while done == False:
screen.blit(ref, (0, 0))
display.update()
done2 = False
for e in event.get():
if e.type == KEYUP:
if e.key == K_ESCAPE:
done = True
if screen.get_at((mouse.get_pos())) == (0, 0, 0):
ref = image.load('map.png')
done2 = True
if screen.get_at((mouse.get_pos())) == (1, 0, 0):
screen.blit(loose, (0, 0))
display.update()
done2 = True
time.wait(2000)
done = True
if screen.get_at((mouse.get_pos())) == (0, 255, 0):
screen.blit(cntnu, (0, 0))
display.update()
time.wait(3000)
pygame.quit()
实际上问题并不在我的代码中,而是在我的Python文件夹里。我重新安装了Python(使用新的安装程序),现在它运行良好。感谢大家的帮助 :)
get_pos()
函数和图像中的颜色可能存在问题。你有通过打印输出来检查过颜色值吗? - zormit