""" 简易迷宫游戏.py 本程序需要gameturtle模块0.2版支持。下面的gameturtle模块由于导入了tkinter和pillow命令,所以可以直接使用它们. """ from gameturtle import * class Key: def __init__(self,cv,key): self._canvas = cv self._key = key self._down = False self._canvas.bind("" % key,self._press) self._canvas.bind(" " % key,self._release) def _press(self,event): self._down = True def _release(self,event): self._down = False def isdown(self): return self._down RED = (255,0,0) # 红色表示墙壁 root = Tk() root.title('gameturtle简易迷宫游戏by李兴球') cv = Canvas(width=640,height=648,bg='white') cv.pack() # 生成背景 maze_pic = Image.open('maze1.gif') # 注意gif,jpg等都要转换成RGBA模式 maze_pic = maze_pic.convert("RGBA") # 转换成RGBA模式,这样有透明通道 maze = GameTurtle(cv,maze_pic) # 生成蓝色方块 blue_pic = Image.new("RGBA",(12,12),color='blue') square = GameTurtle(cv,blue_pic) square.center() # 到画布中心点 up_key = Key(cv,"Up") # 实例化向上方向箭头 down_key = Key(cv,"Down") # 实例化向下方向箭头 right_key = Key(cv,"Right") # 实例化向右方向箭头 left_key = Key(cv,"Left") # 实例化向下方向箭头 cv.focus_force() # 设置画布焦点 cors = [] # 记录单击时的坐标点的列表 def savexy(event): s = ','.join(map(str,cors)) # 把坐标转换成字符串用逗号连接 f = open('坐标表.txt',mode='w') # 打开文件 f.write(s) # 写s f.close() # 关闭文件 # 绑定鼠标左键单击事件 cv.bind(" ",lambda event:cors.append((event.x,event.y))) cv.bind(" ",savexy) while True: if right_key.isdown(): # 如果按右箭头 square.addx(2) if square.collide_color(RED): square.addx(-2) if left_key.isdown(): # 如果按左箭头 square.addx(-2) if square.collide_color(RED): square.addx(2) if up_key.isdown(): # 如果按上箭头 square.addy(-2) if square.collide_color(RED): square.addy(2) if down_key.isdown(): # 如果按下箭头 square.addy(2) if square.collide_color(RED): square.addy(-2) cv.update() # 更新画布 time.sleep(0.01)
李兴球
李兴球的博客是Python创意编程原创博客
要发表评论,您必须先登录。
发表评论