用Python的海龟画图模块也能制作迷宫游戏!本迷宫游戏还特此配了音乐。下面是部分代码预览:
"""
迷宫寻宝游戏,本程序演示了一个迷宫游戏。迷宫的地图是一个列表,
这个列表的每一行字符代表迷宫中的不同物体。在本例中,X代表墙,
空格代表可通行的地方,T代表财宝。每个字符在列表中的位置可以
映射为坐标。
"""
from turtle import *
from winsound import *
def make_maze(level_map,block_image,prop_image):
"""
产生迷宫,level_map是一个列表,block_image:方块gif图,prop_image:道具图
本函数根据地图把迷宫给印出来,原理就是扫描level_map中的每一行,
然后扫描每一行中的每一个字符,根据字符来决定印什么,同时生成墙列表和
财宝列表。墙列表实际上记录的是所有墙的坐标,而财宝列表记录的是一个个
的海龟对象,这是为了方便当角色碰到它时能方便地删除它们。
"""
walls = [] # 墙列表
treasures = [] # 财宝列表
t = Turtle(visible=False) # 用来画墙的海龟对象
t.penup() # 抬笔
screen = t.getscreen() # 获取所在的屏幕对象
screen.addshape(block_image) # 增加方块造型(墙)
screen.addshape(prop_image) # 增加道具,这里是财宝
t.shape(block_image) # 设造型为方块
start_x = -288 # 左上角起始x坐标
start_y = 288 # 左上角起始y坐标
i = 0 # i代表的其实是行的索引号
............................
class Player(Turtle):
"""
玩家类,继承自Turtle
"""
def __init__(self,image,pos,walls,treasures):
"""
image:造型gif图,pos:初始坐标
walls:墙列表,treasures:财宝列表
"""
Turtle.__init__(self,visible=False)
screen = self.getscreen()
screen.addshape(image)
self.shape(image)
self.penup()
self.goto(pos)
self.showturtle()
# 下面绑定上下左右键到相应的方法上
screen.onkeypress(self.move_left,"Left")
screen.onkeypress(self.move_right,"Right")
screen.onkeypress(self.move_up,"Up")
screen.onkeypress(self.move_down,"Down")
screen.listen()
self.walls = walls
self.treasures = treasures
self.gameover = False
.....................
def main():
"""主要的执行函数"""
PlaySound("music/SoundTest.wav",SND_LOOP|SND_ASYNC)
# 下面这个表就是迷宫的地图,其中X代表墙,T代表财宝
..................
screen = Screen()
screen.delay(0)
screen.title("迷宫寻宝游戏 by lixingqiu")
screen.bgpic("images/bg.png")
p = level_1,'images/block5.gif','images/treasure.gif'
walls,treasures = make_maze(*p)
player1 = Player('images/girl.gif',(0,0),walls,treasures)
screen.mainloop()
if __name__ == "__main__":
main()
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

