Я видел несколько ответов на эту тему, но никто не очень помог.XNA BoundingBox & Origin
Проще говоря, столкновение BoundingBox. С началом, установленным в 0,0, столкновение происходит нормально (по крайней мере, для того, как я этого хочу). Как я указать происхождение игрока в центре (так он вращается вокруг середины) столкновение, кажется, смещение и он обнаруживает столкновение в неподходящее время
Код (PLayer класс):
box = new BoundingBox(new Vector3(location, 0), new Vector3(location.X + texture.width, location.Y + texture.height, 0));
origin = new Vector2(texture.Width/2, texture.Height/2);
location.X += speed * (float)Math.Cos(rotation - anglecorrection);
location.Y += speed * (float)Math.Sin(rotation - anglecorrection);
public BoundingBox getBox()
{
return box;
}
Код (Игра)
BoundingBox box2 = new BoundingBox(new Vector3(location, 0), new Vector3(location.X + 30, location.Y + 30, 0));
if (player.getBox().Intersects(box2))
{
// Do Stuff
}
Спасибо за вашу помощь :)
Как выглядит ваш код обнаружения столкновения? –
и где этот код? это внутри вашего плеера? переменные экземпляра 'box' и' origin'? если они не то, что с ними происходит? –
В какой мере ваш столкновение? кажется ли он смещен размером вектора происхождения? это компенсируется больше? –