2011-11-07 3 views
1

이 방법을 사용하여 임의로 스프라이트를 화면에 추가합니다.화면의 특정 부분에 스프라이트를 추가하는 방법

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해야한다, 또는 당신은 다만 수 : 당신은, 당신이 그들을 삭제할 수 있습니다이 (int) 캐스트의 모든 필요하지 않습니다

float y = rand.nextFloat(maxY); 

. 위해

는, 임의의 위치를 ​​확인도 임의의 X를 얻을 수 있습니다 :

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

이 작동합니다.

0

안드로이드 화면에서 좌표계의 원점은 왼쪽 상단에 있습니다.

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

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

그래서 항상 화면 상단에 무언가를 표시하려면 Y가 0이어야합니다. X 값은 무작위로 0에서부터 임의의 폭이 될 수 있습니다. 이렇게하면 물체가 맨 위에 놓이고 X (왼쪽/오른쪽) 방향으로 무작위로 배열됩니다.

관련 문제