海龟吃绿豆动画_find_overlapping与绑定盒碰撞检测示例

海龟吃绿豆动画_find_overlapping与绑定盒碰撞检测示例

李兴球Python海龟吃绿豆动画
李兴球Python海龟吃绿豆动画

李兴球Python海龟吃绿豆动画

"""
   海龟吃绿豆动画.py,来自李兴球撰写的《Python海龟宝典》的一个示例程序。
   这是应用find_overlapping查找重叠,结合标签制作的一个碰撞检测的示例程序。
"""
from turtle import Screen,Turtle

def find_overlapping(self,other):
    """查找重叠,用于和其它海龟对象的碰撞检测。       
       other是整数,那么代表一只海龟的item号
       other是海龟,那么取海龟的item号
       other是字符串,则认为它是某类海龟的标签
       标签是用来进行分组的一个字符串。
       返回所碰撞到的海龟列表。
    """
    pass

Turtle.find_overlapping = find_overlapping            # 新增查找重叠命令        

screen = Screen()                                     # 新建屏幕
canvas = screen.getcanvas()                           # 得到画布 

yixiu = Turtle('turtle')                              # 新建海龟
yixiu.penup()                                         # 海龟抬笔
yixiu.color('red')                                    # 设定画笔 
yixiu.bk(250)                                         # 倒退250

for i in range(10):
    b = Turtle('circle')
    b.penup()
    b.color('#33f900')
    canvas.itemconfig(b.turtle._item, tags='bean')     # 配置统一的标签
    b.fd(-200 + 50 * i)                                # 设定好位置 

for i in range(500):
    yixiu.fd(1)
    ts = yixiu.find_overlapping('bean')  # 查找有没有bean标签的海龟
    if ts : print(ts)
    for t in ts:t.ht()                   # 隐藏每个碰撞到的海龟

需要完整源代码,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

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