Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.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
Android 与二维精灵对象的碰撞和涉及的数学_Android_Iphone_Marmalade - Fatal编程技术网

Android 与二维精灵对象的碰撞和涉及的数学

Android 与二维精灵对象的碰撞和涉及的数学,android,iphone,marmalade,Android,Iphone,Marmalade,我是这个网站的新手,决定做一个报告,因为我在2D环境中难以理解碰撞的概念 我拥有的是一组自上而下的道路精灵,我正试图建立与它们碰撞的规则,这样如果玩家离开道路,他就可以结束游戏 到目前为止,我已经为直路制定了规则,您可以在这里看到: if ((*it)->getType() == ST_RoadStraight) { Road* road = (Road*)*it; // Check to see if the road sprite is with

我是这个网站的新手,决定做一个报告,因为我在2D环境中难以理解碰撞的概念

我拥有的是一组自上而下的道路精灵,我正试图建立与它们碰撞的规则,这样如果玩家离开道路,他就可以结束游戏

到目前为止,我已经为直路制定了规则,您可以在这里看到:

if ((*it)->getType() == ST_RoadStraight)
    {
        Road* road = (Road*)*it;
        // Check to see if the road sprite is within 16 pixels of the bucket either way
        int dx = road->getPosition().x - Pos.x;
        if (dx < 0) dx = -dx;
        if (dx > 200)
        {
            outOfBounds = true;
        }
    }
if((*it)->getType()==ST_RoadStraight)
{
路*路=(路*)*it;
//检查道路精灵是否在桶的16像素范围内
int dx=road->getPosition().x-Pos.x;
如果(dx<0)dx=-dx;
如果(dx>200)
{
边界外=真;
}
}
基本上,我说如果玩家在x轴上走了一定的距离,游戏就结束了。这对于一条上下或左右移动的直路来说很好,因为我可以将I改为y轴,但我也有弯曲的道路。以下是资产的大致情况:

直的:

弯曲的:

基本上,我需要球员能够在允许的情况下沿着道路或穿过道路,但如果他撞到了他将离开道路的边缘,我必须这么说。这在直道上很容易,但取决于玩家在弯道上的位置,比如说Y轴上的30像素高可能在道路的某一部分可以,但在另一部分不可以

从本质上说,我在寻找某种方程式,以便在我的游戏中准确地表示这一点


任何帮助都将不胜感激

有什么原因不能使用吗?

对于二维碰撞检测,我建议您使用Box2D物理引擎。它很容易设置在果酱,并给出准确的结果。我在很多果酱游戏中都用过它。在中有一个box2D扩展。看看吧。

我目前正在使用Marmalade SDK编写这个游戏,使其可用于iPhone和Android设备。我觉得这是针对xcode/objective-c编程的。但是,如果能提供我正在寻找的碰撞类型的套件,我将不胜感激,如果这对我仍然有用,我可能会研究一下。我觉得我也应该在Windows上的Visual Studio中提到这一点。SpriteKit是Box2D的一个端口,所以如果你能找到另一个与果酱一起工作的Box2D端口,那么它应该和sprite kit一样好。Cocos2D是Box2D的另一个端口,但我认为这也是iOS的唯一端口。您可以在这里访问Box2D网站:否则,您可以自己使用一些基本几何图形。使用毕达哥拉斯定理检查半圆部分的边,使用加法/减法检查直线部分。