这个程序采用onclick绑定处理函数,让角色接受单击事件。
""" 单击角色换位, 本程序展示了单击让角色交换位置的最基本代码, """ from sprites import Sprite,Screen def process(b,x,y): """处理单击""" global clicks,oldpos,oldb b.onclick(None) clicks += 1 # clicks是2的时候才交换 if clicks%2 == 0 : clicks = 0 if oldb != b : # 不是同一个角色才换位 p = b.pos() # 把坐标记录 b.slide(oldb.position()) # 到刚才点的角色的坐标 oldb.slide(p) # 刚才点的角色到b角色之前的坐标 else: oldb = b # clicks是1,只是记录一下这个角色 print(clicks,b) b.onclick(lambda x,y: process(b,x,y)) screen = Screen() b1 = Sprite() b1.onclick(lambda x,y: process(b1,x,y)) b2 = Sprite(1,pos=(100,0)) b2.onclick(lambda x,y: process(b2,x,y)) b3 = Sprite(2,pos=(100,100)) b3.onclick(lambda x,y: process(b3,x,y)) b4 = Sprite(3,pos=(-100,100)) b4.onclick(lambda x,y: process(b4,x,y)) clicks = 0 # 统计单数次数 screen.mainloop()