2013-09-25 1 views
-3

나는 드로잉 함수를 가진 원 클래스를 가지고있다. 나는 3 개의 다른 색으로 3 개의 원을 만드는 뷰 클래스를 가지고있다. 내가 올바른 위치에 ,, 왼쪽 ,, 1 개 중간에 화면 ,, 1에 성공적으로 1 원을 그립니다 ... 원의 높이가 작은 다른 ...나는 3 개의 동일한 비트 맵을 가지고 있는데, 하나의 중간과 하나의 인라인 뒤에 하나를 그리는 방법

O 
    O 
O 

상상과 거의 같은 높이입니다 그 3 개의 공,하지만 높이가 적습니다 (공이 왼쪽이나 오른쪽으로 움직일 때 교차합니다). 지금 내 문제는 오른쪽 구석에있는 공을 왼쪽 코너로 이동하려고하고 동시에 오른쪽 구석의 왼쪽 아래 모서리에 볼을 더 넣으려는 것입니다. 가운데 공보다 위에 있지만, 내가 원했던 것은 중간 공 뒤에 맨 위 공이 나타나고, 마지막 공이 지금처럼 중간 공 위에 나타난다는 것입니다. 어떻게 할 수 있습니까?

편집 :::

public class picture { 
private Bitmap bitmapPicture; // the actual bitmap 
private int x;   // the X coordinate 
private int y;   // the Y coordinate 

     ... 


public void draw(Canvas canvas,Paint paint) { 
    canvas.drawBitmap(bitmapPicture, x , y , paint); 

    } 
some functions to move it to the right,, and left... 
..... 
} 

내보기 클래스 :

public class GamePanel extends View implements Runnable{ 
    private Picture[] picture; 
     ..... 

     protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     Paint paint = new Paint(); 
     for(int i=0;i<cupsNumber;i++){ 
     cup[i].draw(canvas,paint); 
     } 
     invalidate(); 
    } 

} 

이제 내보기 클래스에 내가 활성 함수가 오른쪽으로 이상 = 난에 0을 눌러 화면을 이동하고 왼쪽에있는 i = 2의 그림 (오른쪽 위 모서리에있는 i = 0, 왼쪽 아래 모서리에있는 i = 2) 이제 둘 다 중간 그림과 교차하지만 중간에 완전히 숨기지는 않습니다. 너비, 나는 모든 사진을 볼 수있다, 내 문제는, 나는 볼을 볼 때 왼쪽으로 움직이는 가운데 볼과 공 오른쪽 중간에 볼 (그리고 때로는 무작위로, 그들은 둘 다 중간 뒤에 등처럼) 내가 원하는 것은, 그 공이 중간에 볼 뒤에 나타나는 것이고, 마지막에있는 공 중간에 공 위에 나타나려면 어떻게해야합니까?

답변

0

사용자가 직접 비트 맵을 관리해야 할 수 있습니다.

비트 맵을 그리는 데 사용하는 View 클래스는 실제로 onDraw()을 재정의하는 View의 하위 클래스 여야합니다. 예 :

public class myCircleDrawer extends View { 
    Bitmap circle1, circle2, circle3; 

    @Override 
    public void onDraw(canvas c) { 
      c.drawBitmap(bitmap1); 
    } 
} 

당신이 그 (것)들에게

편집 이동할 수 있습니다 (x, y)를 변경하는 데 사용할 비트 맵의 ​​좌표를하는 방법을 학습하기 위해 Canvas 문서를 읽어보세요 :

확인을 지금 내가 이해하고있다. 당신이하려고하는 것이 게임 인 경우, SurfaceViewSurfaceView.Renderer을 확인해 보는 것이 좋습니다. 그 이유는 onDraw()을 무시하는 대신 draw() 함수 호출을 직접 관리해야하기 때문입니다. 이 모든 것은 엔티티 속성을 업데이트 한 후에 수행됩니다.

+0

나는 더 이해하기 쉽게 내 게시물을 편집했습니다. – user2816793

관련 문제