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