""" 测试pixel_collide像素碰撞方法_蝴蝶闯隧道游戏.py。 本程序需要gameturtle模块0.2版及以上支持。 Image,tkinter,time模块等都在gameturtle模块中已导入 ,所以可以直接使用。 """ __author__ = '李兴球' __date__ = '2020/10/16' __blog__ = 'www.lixingqiu.com' 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 # 加载蝴蝶图形资源 hudie = ['b1.png','b2.png'] hudie = [Image.open(im) for im in hudie] # 加载背景图形资源 bgs = ['bg1.png','bg2.png','bg3.png'] bgs = [Image.open(im) for im in bgs] root = Tk() root.title('测试pixel_collide像素碰撞方法_蝴蝶闯隧道游戏') root.resizable(False,False) # 窗口宽高不可调 cv = Canvas(width=640,height=480,bg='#f0f0f0') # 带背景色的画布 cv.pack() bg = Sprite(cv,bgs) # 实例化背景 h1 = Sprite(cv,hudie) # 实例化蝴蝶2 h1.shapesize(0.2,0.2) up_key = Key(cv,"Up") down_key = Key(cv,"Down") right_key = Key(cv,"Right") left_key = Key(cv,"Left") cv.focus_force() while True: h1.nextshape() if up_key.isdown(): #print('向上箭头按下') h1.addy(-1) if h1.collide(bg):h1.addy(1) if down_key.isdown(): #print('向下箭头按下') h1.addy(1) if h1.collide(bg):h1.addy(-1) if right_key.isdown(): #print('向右箭头按下') h1.setheading(0) h1.addx(1) if h1.collide(bg):h1.addx(-1) if h1.xcor()> 640: bg.nextshape() h1.setx(0) if left_key.isdown(): #print('向左箭头按下') h1.setheading(180) h1.addx(-1) if h1.collide(bg):h1.addx(1) cv.update() # 更新画布显示 time.sleep(0.01)
李兴球
李兴球的博客是Python创意编程原创博客
要发表评论,您必须先登录。
发表评论