获取鼠标指针测试item之间的碰撞

python海龟画图碰撞动画演示

python海龟画图碰撞动画演示

"""
   获取鼠标指针测试item之间的碰撞
   这份源代码展示了如何实时获取鼠标指针坐标,
   如何进行碰撞检测,这样用海龟画图模块制作游戏方便多了.
"""
import time
from turtle import Turtle,Screen
from random import random,randint

def randomcolor():
    r = random()
    g = random()
    b = random()
    return r,g,b

def mouse_pos():
    """获取相对于海龟屏幕的鼠标指针坐标,和屏幕的缩放参数scale无关。"""    
    pass

def isoverlap(item1,item2):
    """判断画布上两个项目是否重叠"""
    pass

s = Screen()                # 新建屏幕对象
s.delay(0)
canvas = s.cv
t = Turtle(shape='square')
t.shapesize(1.4)
t.speed(0)
t.penup()
t.bk(280)
haigui = t.turtle._item

# 下面是印刷此方块,
# 把它们放在squares列表中
squares = []
for _ in range(6):
    t.fillcolor(randomcolor())
    t.begin_fill()
    for _ in range(4):
        t.fd(50)
        t.rt(90)
    t.end_fill()
    pass            # 此处省略了代码
    t.fd(100)
t.bk(600)
t.sety(t.ycor() - 100)
for _ in range(6):
    t.fillcolor(randomcolor())
    t.begin_fill()
    for _ in range(4):
        t.fd(50)
        t.rt(90)
    t.end_fill()
    pass            # 此处省略了代码
    t.fd(100)
    
w = Turtle(shape='blank')
w.penup()
w.sety(200)
zi = ('',32,'underline')
while True:
    x,y = mouse_pos()
    t.goto(x,y)
    for sq in squares:
        if isoverlap(haigui,sq):
            w.clear()
            w.write('碰到' + str(sq) ,align='center',font=zi)
    s.update()

需要完整源代码请

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

关于李兴球

李兴球的博客是Python创意编程原创博客
此条目发表在python, turtle分类目录,贴了, , , 标签。将固定链接加入收藏夹。

发表回复