Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检测图像是否在另一图像附近?_Python - Fatal编程技术网

Python 如何检测图像是否在另一图像附近?

Python 如何检测图像是否在另一图像附近?,python,Python,我正在做一个自上而下的RPG类型的游戏。这是将我的主要角色向左移动的方法。问题是,每当我按下左键时,它就会打印“触发对话框”并调用该函数。唯一应该触发的时间是当我在listofwidgets中的另一个图像附近移动我的角色时。我怀疑我在“我在Widgets列表中”这一行或数学上做了一些不正确的事情 def on_keyboard_down(self, keyboard, keycode, text, modifiers): if keycode[1] == 'left':

我正在做一个自上而下的RPG类型的游戏。这是将我的主要角色向左移动的方法。问题是,每当我按下左键时,它就会打印“触发对话框”并调用该函数。唯一应该触发的时间是当我在listofwidgets中的另一个图像附近移动我的角色时。我怀疑我在“我在Widgets列表中”这一行或数学上做了一些不正确的事情

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中。