Android 发动机性能问题
我正在做一个赛车游戏,看起来像老式的“杆位”(有点) 我从50个矩形创建道路(RoadFragment是一个矩形,附加两个白色小矩形以模拟道路的路缘): 正如您在每次更新中看到的,都会对这些碎片进行计算,以根据贝塞尔曲线计算出的因子移动它们。还有一些其他的精灵在场景中:视差背景,玩家的汽车,一些其他的汽车(但不超过两辆,其他的很少。我总共画了150个矩形和大约10个精灵Android 发动机性能问题,android,performance,andengine,rectangles,onupdate,Android,Performance,Andengine,Rectangles,Onupdate,我正在做一个赛车游戏,看起来像老式的“杆位”(有点) 我从50个矩形创建道路(RoadFragment是一个矩形,附加两个白色小矩形以模拟道路的路缘): 正如您在每次更新中看到的,都会对这些碎片进行计算,以根据贝塞尔曲线计算出的因子移动它们。还有一些其他的精灵在场景中:视差背景,玩家的汽车,一些其他的汽车(但不超过两辆,其他的很少。我总共画了150个矩形和大约10个精灵 所以,在Galaxy S5上,它看起来非常漂亮和平滑,但在Galaxy S3 mini等稍旧的手机上,它会结巴并且无法播放。问
所以,在Galaxy S5上,它看起来非常漂亮和平滑,但在Galaxy S3 mini等稍旧的手机上,它会结巴并且无法播放。问题是:有没有什么技巧、变化或想法可以让它更平滑?可能是渲染这些矩形的代码部分的问题?您需要批处理精灵
可能是渲染这些矩形的代码部分的问题?您需要批处理精灵
int y = 0;
int widthCut = 8; // 4 przy 100 prostokatach, 8 przy 50
for(int rectIndex = 0; rectIndex < rectangleCount; rectIndex++)
{
RoadFragment roadFragment = new RoadFragment(400, 0, 500, 300 / rectangleCount, RaceScene.vbom);
roadFragments.add(rectIndex, roadFragment);
this.attachChild(roadFragments.get(rectIndex));
roadFragments.get(rectIndex).setY(rectIndex * 6);
roadFragments.get(rectIndex).setWidth(500 - y);
y = y + widthCut;
}
timeToUpdate = timeToUpdate + pSecondsElapsed;
if(timeToUpdate > 0.00f){
timeToUpdate = 0;
for(int rectangleIndex = 0; rectangleIndex < rectangleCount; rectangleIndex++) {
roadFragments.get(rectangleIndex).setX(getBezierX((float)rectangleIndex, (float)rectangleCount, 400, 400, 400 + curveOffset));
}
}