相关疑难解决方法(0)

确定两条光线是否相交

我在2D平面上有两条光线延伸到无限远,但两者都有一个起点.它们都由起点和矢量在射线方向上描述,该射线延伸到无穷远.我想知道两条光线是否相交,但我不需要知道它们相交的位置(它是碰撞检测算法的一部分).

到目前为止,我所看到的一切都描述了找到两条线或线段的交点.是否有快速算法来解决这个问题?

algorithm math geometry intersection

20
推荐指数
2
解决办法
2万
查看次数

检测等距纹理上的单击/触摸

我正在努力在简单的等距Sprite Kit游戏中实现点击处理.

我有一个游戏场景(SKScene)和一个包含多个Tile对象(SKSpriteNode)的Map(SKNode).

以下是地图的屏幕截图:

在此输入图像描述

我希望能够检测到用户点击的磁贴,所以我在Tile对象上实现了mouseDown.这是我在Tile.m中的mouseDown:

-(void)mouseDown:(NSEvent *)theEvent
{
    [self setColorBlendFactor:0.5];
}
Run Code Online (Sandbox Code Playgroud)

代码似乎工作正常,但有一个小问题:节点重叠,并在节点的透明部分检测到click事件.示例(已添加rects以仅说明问题.它们未在逻辑中使用):

在此输入图像描述

如您所见,如果我点击图块7的左上角,则图块8变为透明.

在此输入图像描述

我尝试了在点击位置获取所有节点并检查点击是否在CGPath内部而没有成功(我认为坐标有问题).

所以我的问题是如何检测纹理上的点击而不是透明部分?或者我的方法可能是错的?

任何意见,将不胜感激.

编辑:对于我最终使用的解决方案感兴趣的人,请在此处查看我的答案

isometric sprite-kit

7
推荐指数
1
解决办法
1705
查看次数

标签 统计

algorithm ×1

geometry ×1

intersection ×1

isometric ×1

math ×1

sprite-kit ×1