1

我想问一个基本问题只是为了确定。当我们使用 Vector2 类在 andengine 中表示一些向量时,就像我们在联合创建中使用时一样:

jointDef.localAnchorA.set(new Vector2(1, 1));

传递的值,即 1、1 是否分别代表 1 米?

多一点解释。假设我创建了两个实体:

Rectangle rect1 = new Rectangle(10, 10, 100, 100, vertexBufferObjectManager);
        Body body1 = PhysicsFactory.createBoxBody(mPhysicsWorld, rect1, BodyType.DynamicBody, FIXTURE_DEF);

        Rectangle rect2 = new Rectangle(110, 110, 50, 50, vertexBufferObjectManager);
        Body body2 = PhysicsFactory.createBoxBody(mPhysicsWorld, rect2, BodyType.DynamicBody, FIXTURE_DEF);

并想在下图所示的位置创建一个旋转关节:

在此处输入图像描述

那么向量 localAnchorpointA 和 localAnchorPointB 应该设置什么值,以使红色矩形的右上角接触白色矩形的中心?喜欢:

jointDef.localAnchorA.set(new Vector2(?, ?));
    jointDef.localAnchorB.set(new Vector2(?, ?));

这对于理解 vector2 类的使用非常有帮助。

4

2 回答 2

2

您需要了解 Vector2 类在游戏开发中代表什么。它基本上将提供的坐标封装在 2D 空间中。更进一步,它可以用于许多应用,从距离计算到其他基本代数计算。Stiegart 博客将让您对 android 中的 Vector2 有一个非常清晰的认识。希望它能澄清困惑和误解。

于 2012-09-03T11:44:56.340 回答
0

Vector2 没有关联的单位,您可以在渲染时决定坐标空间在屏幕上的样子(通过选择合适的相机)。对于天使你必须使用弧度。

但正如我所见,您正在将它传递给 Box2D 物理引擎。建议使用接近 m/kg/s 的单位。让你的角色高 2m 将是一个不错的选择。在你的小行星游戏中让你的宇宙飞船 Enterprise 10 公里的距离太大了。

更多信息可以在这篇文章中找到:http: //box2d.org/2011/12/pixels/

于 2012-09-03T11:54:50.853 回答