【问题标题】:How to make collisions in tkinter? [closed]如何在 tkinter 中进行碰撞? [关闭]
【发布时间】:2016-06-19 14:46:43
【问题描述】:

我正在制作一个 python 游戏,但我不确定如何让敌人和玩家发生碰撞。有人可以向我展示一种有效地将碰撞添加到多个事物的简单方法。我希望我的 python 游戏中的敌人与玩家发生碰撞。这是我用来将敌人移动到玩家身上的代码。此代码移动了敌人,但敌人不会与玩家发生碰撞。

if self.canvas.coords(self.man)[0] > self.canvas.coords(Man1.man)[0]:
    self.canvas.move(self.man,-1,0)
if self.canvas.coords(self.man)[0] < self.canvas.coords(Man1.man)[0]:
    self.canvas.move(self.man,1,0)
if self.canvas.coords(self.man)[1] < self.canvas.coords(Man1.man)[1]:
    self.canvas.move(self.man,0,1)
if self.canvas.coords(self.man)[1] > self.canvas.coords(Man1.man)[1]:
    self.canvas.move(self.man,0,-1)

【问题讨论】:

  • 你是在问如何移动画布上的两个项目直到它们接触?
  • 签出this
  • 我试图让画布上的一个项目在与另一个项目发生碰撞时停止
  • @Crafterguy 您需要向我们展示您目前拥有的代码,在不知道它如何移动的情况下向您展示如何“停止”画布上的项目是相当困难的。
  • 如何才能找到这个问题的答案,而不是太宽泛

标签: python python-3.x user-interface tkinter tkinter-canvas


【解决方案1】:

您可以使用canvas.overlapping() 返回给定矩形中的所有项目。只需给它一个对象的 x,y 坐标,看看元组返回的是否不止一个。

如果您向我们展示一些代码或提供更多详细信息,我们可能会为您提供更好的帮助

【讨论】:

  • 您能否提供一个有效且可验证的使用示例?
  • 我试过 canvas.overlapping 但它给了我这个错误:AttributeError: 'Canvas' object has no attribute 'overlapping'
猜你喜欢
  • 2021-10-17
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 2018-04-19
  • 2022-12-23
  • 1970-01-01
相关资源
最近更新 更多