2011-11-07 70 views
1

我使用這種方法隨機添加一個Sprite到屏幕上。如何在屏幕的特定部分添加子畫面AndEngine

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

首先,實體的(x,y)座標位於左上角。所以,minY0,或者你可以只是做:

float y = rand.nextFloat(maxY); 

你並不需要所有這些(int)類型轉換,可以將它們刪除。

爲了使定位隨機,隨機獲得一個X太:

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

這應該工作。

0

在android屏幕上,座標系的原點位於左上角。

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

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

所以,如果你想要某些東西總是在屏幕的頂部產卵,那麼Y將需要爲0。 X值可以是任意的從0到寬度的任意值。這將把物體放置在頂部,並隨機在X(左 - 右)方向