C++ C++;简单图像碰撞

C++ C++;简单图像碰撞,c++,image,collision,C++,Image,Collision,我做了一系列的搜索,但我不确定什么答案适用于我的问题。我在做一个简单的游戏,在计时器上,当你左右移动你的“角色”时,图像向下移动。当一个变量发生碰撞时,我如何让它减去1呢?如果需要,我可以发布代码这取决于字符的形状。对于两个都是圆的简单情况,您可以只找到每一步的中心之间的距离,当它达到小于半径之和时触发碰撞。对于矩形的情况,这也很简单。这取决于字符的形状。对于两个都是圆的简单情况,您可以只找到每一步的中心之间的距离,当它达到小于半径之和时触发碰撞。对于矩形的情况,这也很简单。你是说碰撞检测吗?我

我做了一系列的搜索,但我不确定什么答案适用于我的问题。我在做一个简单的游戏,在计时器上,当你左右移动你的“角色”时,图像向下移动。当一个变量发生碰撞时,我如何让它减去1呢?如果需要,我可以发布代码

这取决于字符的形状。对于两个都是圆的简单情况,您可以只找到每一步的中心之间的距离,当它达到小于半径之和时触发碰撞。对于矩形的情况,这也很简单。

这取决于字符的形状。对于两个都是圆的简单情况,您可以只找到每一步的中心之间的距离,当它达到小于半径之和时触发碰撞。对于矩形的情况,这也很简单。

你是说碰撞检测吗?我可能需要代码,但我假设您知道对象的宽度和高度、x和y位置,并且它们是矩形的。检查它们是否相交应该很简单。检查对象1的(y+高度)是否大于对象2的(y+高度),对象1的(x+宽度)是否大于对象2的x。对其他边执行类似的操作


编辑:事实上,您可以在另一个线程上运行冲突检测,只要这样做不会使您的UI线程陷入困境

你说的是碰撞检测吗?我可能需要代码,但我假设您知道对象的宽度和高度、x和y位置,并且它们是矩形的。检查它们是否相交应该很简单。检查对象1的(y+高度)是否大于对象2的(y+高度),对象1的(x+宽度)是否大于对象2的x。对其他边执行类似的操作


编辑:事实上,您可以在另一个线程上运行冲突检测,只要这样做不会使您的UI线程陷入困境

你的问题是检测碰撞还是从某物中删除碰撞?是的,一些(简短的)代码提取会有帮助。它检测冲突,这里的代码是你的问题检测冲突或从某物中减去一个?是的,一些(简短的)代码提取会有帮助。它检测碰撞,这里的代码我的问题之一是找到X和Y我知道宽度和高度。你不存储对象的位置吗?如果没有,您如何处理实体?好的,您使用的是什么库?你能发一些代码吗?那会很有帮助的。不,我不储存职位对不起,如果我是新的,但什么是实体?这是我的代码,只有当它们的角点是匹配的,像素对像素,这才是真的。尝试以下操作:
if(picturebox1.Location.Y+picturebox1.Size.Height>picturebox2.Location.Y+picturebox2.Size.Height&&picturebox1.Location.X+picturebox1.Size.Width>picturebox2.Location.X){lives-->我的问题之一是找到X和Y我知道宽度和高度。你不存储对象的位置吗?如果没有,您如何处理实体?好的,您使用的是什么库?你能发一些代码吗?那会很有帮助的。不,我不储存职位对不起,如果我是新的,但什么是实体?这是我的代码,只有当它们的角点是匹配的,像素对像素,这才是真的。试试这个:
if(picturebox1.Location.Y+picturebox1.Size.Height>picturebox2.Location.Y+picturebox2.Size.Height&&picturebox1.Location.X+picturebox1.Size.Width>picturebox2.Location.X){lives-->
它是一个矩形,有没有简单的方法可以在每次移动时找到xy,并检查xy是否与“下落块”相同?它是一个矩形。是否有一种简单的方法可以在每次移动时找到xy,并检查xy是否与“下落块”相同?