Как добавить спрайты в определенную часть экрана AndEngine - PullRequest
1 голос
/ 07 ноября 2011

Я использую этот метод для случайного добавления спрайта на экран.

 private void addFace() {
     Random rand = new Random();

        float x = (int) mCamera.getHeight() + mBallTextureRegion.getHeight();
        float minY = mBallTextureRegion.getHeight();
        float maxY = (int)(mCamera.getWidth() - mBallTextureRegion.getWidth());
        float rangeY = maxY - minY;
        float y = rand.nextInt((int)rangeY) + minY;

     this.mFaceCount++;
     Log.e("Faces: ", "Face" + this.mFaceCount);

    Sprite face = null;
     Body body = null;

Единственная проблема в том, что я хотел бы добавить спрайты в верхней части экрана (то есть камеры).но вместо этого они добавляются на боковой стороне экрана.

Есть предложения, как это сделать?

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Прежде всего, координаты (x, y) объекта находятся в его верхнем левом углу.Итак, minY должно быть 0, или вы можете просто сделать:

float y = rand.nextFloat(maxY);

Вам не нужны все эти (int) приведения, вы можете удалить их.Чтобы сделать случайное положение, тоже получите случайный X:

float maxX = this.mCamera.getWidth() - this.mBallTextureRegion.getWidth();
float x = rand.nextFloat(maxX);

Это должно сработать.

0 голосов
/ 18 ноября 2011

На экране Android начало координат системы координат находится в верхнем левом углу.

(0,0)......(1,0)

(0,1)......(1,1)

Так что если вы хотите, чтобы что-то всегда появлялось в верхней части экрана, тогда Y должно быть 0. Всегда.значение X может быть произвольным от 0 до ширины.Это поместит объект сверху и случайным образом в направлении X (влево-вправо)

...