Python单击角色换位

Python单击角色换位

李兴球Python单击角色换位

李兴球Python单击角色换位
这个程序采用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()

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。