Список спрайтовых массивов никогда не работает! Нужна помощь в понимании того, как создавать массивы экземпляров классов в JAVA - PullRequest
1 голос
/ 05 мая 2010

// Экземпляр Particle Stuct частный Sprite [] mParticles = новый Sprite [10];

/// Particle emitter Properties
private Context mContext;

private int mPositionX, mPositionY, mWidth, mHeight, mNumParticles;


private Rect srcRect, dstRect;

/*** Constructor ! ***/
public ParticleEmitter(Context c, Sprite spriteImage, int num_particles) {

    super(c);
    mContext = c;

    Sprite[] Particles = new Sprite[10];

    Particles[0] = new Sprite(mContext, R.drawable.icon);

//  mParticles = spriteImage;
    //mParticles[num_particles].InitAttributes(c, R.drawable.icon);

    // Allocate Particles instances and copy into mParticle member
    //mParticles = new Sprite[num_particles];
 //   Sprite sprite1 =  new Sprite(mContext, R.drawable.icon);
//    Sprite sprite2 =  new Sprite(mContext, R.drawable.icon);

  //  mParticles[0] = spriteImage;
   // mParticles[1] =  sprite2;
/*  for(int i = 0; i < num_particles; i++)
    {
       mParticles[i].InitAttributes(mContext, R.drawable.icon);
       mParticles[i].setXPosition(i);
    }  */

//   mParticles[0].InitAttributes(mContext, R.drawable.icon);


    // nullify our positioning attributes
    mPositionX = mPositionY = 0;

}

1 Ответ

2 голосов
/ 05 мая 2010

Когда вы говорите, new Sprite[10] создает массив из десяти ссылок Sprite, которые по умолчанию равны null. Он не создает никаких новых объектов Sprite. После этого вы, вероятно, захотите создать новый объект Sprite, который будет прикреплен в каждом из этих десяти мест. Например:

Sprite[] rgSprite = new Sprite[10];
for (int i = 0; i < rgSprite.length; i++) {
    rgSprite[i] = new Sprite(mContext, R.drawable.icon);
}
...