Android 发动机性能问题

Android 发动机性能问题,android,performance,andengine,rectangles,onupdate,Android,Performance,Andengine,Rectangles,Onupdate,我正在做一个赛车游戏,看起来像老式的“杆位”(有点) 我从50个矩形创建道路(RoadFragment是一个矩形,附加两个白色小矩形以模拟道路的路缘): 正如您在每次更新中看到的,都会对这些碎片进行计算,以根据贝塞尔曲线计算出的因子移动它们。还有一些其他的精灵在场景中:视差背景,玩家的汽车,一些其他的汽车(但不超过两辆,其他的很少。我总共画了150个矩形和大约10个精灵 所以,在Galaxy S5上,它看起来非常漂亮和平滑,但在Galaxy S3 mini等稍旧的手机上,它会结巴并且无法播放。问

我正在做一个赛车游戏,看起来像老式的“杆位”(有点)

我从50个矩形创建道路(RoadFragment是一个矩形,附加两个白色小矩形以模拟道路的路缘):

正如您在每次更新中看到的,都会对这些碎片进行计算,以根据贝塞尔曲线计算出的因子移动它们。还有一些其他的精灵在场景中:视差背景,玩家的汽车,一些其他的汽车(但不超过两辆,其他的很少。我总共画了150个矩形和大约10个精灵


所以,在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));

        }

    }