1

我正在使用 andengine 和 box2d 扩展。我正在使用基于如下所示的正弦方程生成的线体生成一些山丘。

public ArrayList<Line> CreateSinusoidalHills(PhysicsWorld world, int length, float density, float elasticity,
                                    float friction, int resolution, Engine engine, Scene scene)
{
    // resolution argument is how far the line is drawn for every iteration
    ArrayList<Line> lineList = new ArrayList<Line>();

    float xIndex = 0;
    float offset = 150; //TODO: add offset to function arguments
    for (int x=0;x<length;x++)

    {

        Line line = new Line(xIndex,(float)Math.cos(xIndex)*100+offset,xIndex+resolution,
                (float)Math.cos(xIndex+50)*100+offset,10.0f,engine.getVertexBufferObjectManager());
        line.setColor(new Color(200,90,254));
        lineList.add(line);
        xIndex = xIndex + resolution;

    }
    return lineList;
}

我想让这条生成曲线下方的区域与场景的背景颜色不同,但我不知道如何实现这一点。我尝试在每条线下方创建矩形,但我失去了很多性能(如我所料)。我想也许我可以使用这些 x,y 点来创建一个与山丘完全相同的多边形(此时我可以改变它的颜色)但我也无法弄清楚如何做到这一点(我可以创建多边形,我只是不知道如何将它添加到场景中,因为它的工作方式似乎与矩形不同)。任何帮助将不胜感激。

这是我的第一篇文章,所以如果我没有遵循正确的提问协议,请告诉我。谢谢!

4

0 回答 0