2015-02-06 4 views
0

글 머리 기호와 같은 특정 시점에 많은 스프라이트를 생성하는 게임을 만들고 있습니다. andengine의 일반 풀인 객체 풀링을 사용하고 있습니다. 하지만 제가 직면하고있는 문제는 처음으로 객체를 만들 때 뒤처져 있다는 것입니다. 처음으로, 물체가 장면에 붙어있을 때. 한 번에 100 개의 스프라이트를 붙일 때 뒤떨어집니다.Andengine - 개체 풀 또는 일반 풀 최적화

그래서 필요한 모든 객체를로드하고로드 장면에서 풀에로드 할 수 있는지 생각했습니다. 이제 다음과 같이 내 코드가에 대한

..

bullets = bullet_pool.obtainPoolItem(); 

if(!bullets.hasParent()) 
    { 
    Presentscene.attachChild(bullets); 
    } 

나에게 몇 가지 아이디어를 제안 해주십시오.

게임 전에 풀에 100 개의 개체 (스프라이트)를로드 할 수 있으므로 게임 중간에 풀에 새로운 개체를 만들 때 지연되지 않도록하십시오.

답변

1

게임의로드 순서에서 원하는 총알의 양을 미리로드 할 수 있습니다. 이런 식으로 뭔가 : 당신은 당신의 게임이 실행되기 전에 preloadBullets를 호출하는 경우

private void preloadBullets(){ 
    Bullet[] bulletArr = new Bullet[1000]; 
    // Create the new bullets 
    for (int i=0; i<1000; ++i){ 
     bulletArr[i] = bullet_pool.obtainPoolItem(); 
    } 
    // Recycle all bullets 
    for (int i=0; i<1000; ++i){ 
     bullet_pool.recyclePoolItem(bulletArr[i]); 
    } 
} 

이 방법, 당신은 빨리 항목을 얻기위한 수영장에서 재생 1,000 총알을해야합니다.

+0

감사합니다 ... this helped –