我正在使用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点来创建一个多边形,它是山丘的确切形状(此时我可以改变它的颜色),但我也无法弄清楚如何做到这一点(我可以创建多边形,我只是不知道如何将它添加到场景中,因为它似乎与矩形的工作方式不同。任何帮助都会非常感激。
这是我的第一篇文章,如果我没有按照正确的协议提问,请告诉我。谢谢!