Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 如何在andengine中将实体设置为网格_Android_Box2d_Andengine - Fatal编程技术网

Android 如何在andengine中将实体设置为网格

Android 如何在andengine中将实体设置为网格,android,box2d,andengine,Android,Box2d,Andengine,我将创建一个独特的实体,在Andengine中指定顶点 我用这些顶点制作了一个网格,但在将实体注册到网格时遇到了问题 Eclispe在此代码段的最后一行加上红色下划线: Mesh UniqueBodyMesh = new Mesh(0, 0, MeshTriangles,UniqueBodyVerticesTriangulated.size(), DrawMode.TRIANGLES,this.getVertexBufferObjectManager()); UniqueBodyMesh.set

我将创建一个独特的实体,在Andengine中指定顶点

我用这些顶点制作了一个网格,但在将实体注册到网格时遇到了问题

Eclispe在此代码段的最后一行加上红色下划线:

Mesh UniqueBodyMesh = new Mesh(0, 0, MeshTriangles,UniqueBodyVerticesTriangulated.size(), DrawMode.TRIANGLES,this.getVertexBufferObjectManager());
UniqueBodyMesh.setColor(1f, 0f, 0f);
mScene.attachChild(UniqueBodyMesh);
FixtureDef uniqueBodyFixtureDef = PhysicsFactory.createFixtureDef(20f,0.5f, 0.5f);
Body uniqueBody = PhysicsFactory.createTrianglulatedBody(mPhysicsWorld,UniqueBodyMesh, UniqueBodyVerticesTriangulated,BodyType.DynamicBody, uniqueBodyFixtureDef);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(UniqueBodyMesh, uniqueBody));

我试着编写一个类来扩展网格,实现iReashape,并使用我自己的算法计算形状的宽度和高度,但它似乎完全错误,不起作用

class myMesh extends Mesh implements IAreaShape
{

    private float mWidth;
    private float mHeight;

    float[] mBufferData;

    public myMesh(float pX, float pY, float[] pBufferData,
            int pVertexCount, DrawMode pDrawMode,
            VertexBufferObjectManager pVertexBufferObjectManager) {

        super(pX, pY, pBufferData, pVertexCount, pDrawMode, pVertexBufferObjectManager);
        mBufferData = pBufferData;
    }

    @Override
    public float getWidth() {
        float minX = 100000;
        float maxX = -100000;
        for(int i=0;i<mBufferData.length;i+=3)
        {
            if(mBufferData[i] < minX)
            {
                minX = mBufferData[i];
            }
            if(mBufferData[i] > maxX)
            {
                maxX = mBufferData[i];
            }
        }
        System.out.println("Width : " + (maxX - minX));
        mWidth = maxX - minX;
        return mWidth;
    }

    @Override
    public float getHeight() {
        float minY = 100000;
        float maxY = -100000;
        for(int i=1;i<mBufferData.length;i+=3)
        {
            if(mBufferData[i] < minY)
            {
                minY = mBufferData[i];
            }
            if(mBufferData[i] > maxY)
            {
                maxY = mBufferData[i];
            }
        }

        this.mHeight = maxY - minY;
        return mHeight;
    }

    @Override
    public float getWidthScaled() {
        return getWidth();
    }

    @Override
    public float getHeightScaled() {
        return getHeight();
    }

    @Override
    public void setHeight(float pHeight) {
        this.mHeight = pHeight;

    }

    @Override
    public void setWidth(float pWidth) {
        this.mWidth = pWidth;

    }

    @Override
    public void setSize(float pWidth, float pHeight) {
        setWidth(pWidth);
        setHeight(pHeight);

    }

}
类myMesh扩展了网格实现IAreaShape
{
私人浮动宽度;
私人浮动mhweight;
浮动[]mBufferData;
公共myMesh(float pX、float pY、float[]pBufferData、,
int pVertexCount,DrawMode pDrawMode,
VertexBufferObjectManager(pVertexBufferObjectManager){
super(pX、pY、pBufferData、pVertexCount、pDrawMode、pVertexBufferObjectManager);
mBufferData=pBufferData;
}
@凌驾
公共浮点getWidth(){
浮点数minX=100000;
浮点最大值=-100000;
对于(int i=0;i maxX)
{
maxX=mBufferData[i];
}
}
System.out.println(“宽度:”+(maxX-minX));
mWidth=最大值-最小值;
返回mWidth;
}
@凌驾
公众浮标高度(){
浮点数=100000;
浮动最大值=-100000;
对于(int i=1;i max)
{
maxY=mBufferData[i];
}
}
this.mHeight=maxY-minY;
返回mhweight;
}
@凌驾
公共浮点数getWidthScaled(){
返回getWidth();
}
@凌驾
公共浮点数getHeightScaled(){
返回getHeight();
}
@凌驾
公共空间设置高度(浮标高度){
this.mHeight=pHeight;
}
@凌驾
公共空白设置宽度(浮动宽度){
this.mWidth=pWidth;
}
@凌驾
公共无效设置大小(浮动宽度、浮动高度){
设置宽度(pWidth);
设定高度(pHeight);
}
}

}

您的问题是否得到了帮助?否则,我可以为您提供帮助。我使用CodeAndWeb PhysicsEditor应用程序找到了解决问题的另一个解决方案,但如果您可以帮助我将实体设置为网格,则该解决方案将是gr8。谢谢您等待一段时间,我将为您提供答案。@Siddharth答案在哪里??