【问题标题】:Tkinter Canvas Collision Detection?Tkinter 画布碰撞检测?
【发布时间】:2017-08-28 14:17:43
【问题描述】:

我目前正在尝试制作一款自卷轴冒险游戏,您必须在其中杀死敌人。但是为了杀死它们,我需要知道如何进行碰撞检测。我在网上找到的大多数东西都不起作用,我自己的尝试也没有。 (我不会使用 Pygame)

提前感谢您的帮助。

【问题讨论】:

  • 我不知道你为什么不想使用 Pygame,这将使这种方式更容易。不过,您可以在使用 Tkinter 的 Canvas bbox method 获取对象的边界框后使用标准边界框碰撞检查方法。至于如何进行边界框碰撞检查,这是一个非常简单的实现,可以谷歌搜索。它是 pygame 内置的,但由于您不想使用它,因此需要做一些额外的工作。
  • 是的,pygame 是最好的选择。我有一些很棒的链接可以真正帮助你...programarcadegames.com/… & raywenderlich.com/24252/… 这些是我学习 pygame 的地方
  • 向我们展示您的尝试。您是否尝试过在画布上使用find_overlapping 方法?

标签: python python-3.x canvas tkinter


【解决方案1】:

感谢大家的帮助,但我自己找到了答案:

a = canvas.bbox(object)
b = canvas.bbox(object2)
if b[0] in range(a[0],a[2]) or b[2] in range(a[0],a[2]) and b[1] in range(a[1],a[3]) or b[3] in range(a[1],a[3]):
    pass #collision

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多