使用 2D 矩形进行碰撞检测

Collision Detection using 2D Rect

本文关键字:碰撞检测 2D 使用      更新时间:2023-10-16

我想向IW2D添加一个矩形,以便我可以在两个图像之间进行冲突检测。我创建了一个结构矩形(x,y,宽度,高度)

我使用以下代码渲染:

Transform.SetRot(Angle);
    Transform.ScaleRot(Scale);
    Transform.SetTrans(Position);
    Iw2DSetTransformMatrix(Transform);
    Iw2DSetColour(Colour);
    // Render image
    if (ShipBullet != 0)
        Iw2DDrawImage(ShipBullet, CIwFVec2(Position.x, Position.y));
    boundingRect.srcX = Position.x;
    boundingRect.SrcY = Position.y;
    Iw2DSetColour(0xff0000ff); // Set red
    Iw2DDrawRect(CIwFVec2(boundingRect.srcX, boundingRect.SrcY),
        CIwFVec2(boundingRect.Width, boundingRect.Height));

但我仍然不知道如何更新精灵的边界矩形。我添加了一个调试代码 IW2DDrawRect 来绘制边界矩形,但矩形没有绑定图像,它实际上是在其他地方绘制的。

我不确定,但在我看来,在变换和图像渲染中应用位置会给你一个双倍的偏移。但是,只要边界矩形x和y与位置匹配,双倍偏移就应该同样适用于两者