AndEngine Vector2类

时间:2012-09-03 11:24:03

标签: android andengine

我想问一个基本问题,以确保。当我们使用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);

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

enter image description here

那么我应该将矢量localAnchorpointA和localAnchorPointB的值设置为将红色矩形的右上角置于白色矩形的中心?像:

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

这对于理解vector2类的用法非常有用。

2 个答案:

答案 0 :(得分:2)

您需要了解Vector2类在游戏开发中所代表和代表的含义。它基本上封装了2D空间中提供的坐标。更进一步,它有许多应用可供使用,从距离计算到其他基本代数计算。 Stiegart Blog会让你对android中的Vector2有一个清晰的认识。希望它澄清混乱和误解。

答案 1 :(得分:0)

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

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

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