Python 如何检测图像是否在另一图像附近?
我正在做一个自上而下的RPG类型的游戏。这是将我的主要角色向左移动的方法。问题是,每当我按下左键时,它就会打印“触发对话框”并调用该函数。唯一应该触发的时间是当我在listofwidgets中的另一个图像附近移动我的角色时。我怀疑我在“我在Widgets列表中”这一行或数学上做了一些不正确的事情Python 如何检测图像是否在另一图像附近?,python,Python,我正在做一个自上而下的RPG类型的游戏。这是将我的主要角色向左移动的方法。问题是,每当我按下左键时,它就会打印“触发对话框”并调用该函数。唯一应该触发的时间是当我在listofwidgets中的另一个图像附近移动我的角色时。我怀疑我在“我在Widgets列表中”这一行或数学上做了一些不正确的事情 def on_keyboard_down(self, keyboard, keycode, text, modifiers): if keycode[1] == 'left':
def on_keyboard_down(self, keyboard, keycode, text, modifiers):
if keycode[1] == 'left':
self.source = 'characters/walkleft.zip'
self.x -=6
for i in listofwidgets:
if self.x - (i.x+i.width) < 100: #if distance between character and tree is smaller than 100
print "trigger dialogue box"
calldialoguebox() #call function that opens dialogue box and prints message
else:
pass
我认为你的if应该是if absself.x-I.x+I.width/2.:。。。。通过这种方式,它将在对象的两侧工作,并且将测量相对于对象中心的距离,假设i.x是左角。嗨,谢谢。这可能是一种更好的测量距离的方法,但是它不能解决我的问题,即每次我向左移动时,触发器对话框都会打印。请尝试打印条件的值,以查看发生了什么。我认为这个问题可能与我提出的改变有关,因为如果self.x<100,那么self.x-无论什么都将<100,这就是为什么我建议将其全部包装在abs中。