슈팅게임 개발건이 들어와서.. 작업하는 중인데요..

흐르는 배경 처리하는 방법에 관해 나름대로 찾은 방법을

적어보려 합니다.

 

처음으로 시도한 방법은 동일한 이미지 두장을 y ++ 이동시키는 방법

화면보다 이동이 크면 -이미지 높이 으로 해봤습니다. 움직이긴 하는데 문제는 버벅거린다는점.

 

두번째로 시도한 방법은 이미지 한장으로 Matrix 의 postTranslate(x,y) 를 이용한 방법

 

dy += ns;

dy = (dy>bitmapHeight)? 0 : dy;

 

Matrix matrix = new Matrix();

matrix.postTranslate(0, dy);    // dy 좌표로 이동.

 

BitmapShader bs = new BitmapShader(bitmap, TileMode.REPEAT, TileMode.REPEAT);  // 연속된 이미지 생성.

bs.setLocalMatrix(matrix);

 

Paint paint = new Paint();

paint.setShader(bs);

 

canvas.drawPaint(paint);

 

요렇게 처리 했습니다.

소스도 깔금하고, 빠르게 이동시켜도 버벅이지 않고 자연스럽게 이동하네요.

 

게임은 배경컨트롤, 레벨별 적기컨트롤, 아이템컨트롤, 미사일컨트롤, 많은 컨트롤이 필요하네요.

해서 일단 인터페이스를 정의 하고, 펙토리 페턴을 이용 각각의 컨트롤 추가 및 수정이 용의 하도록 구성했고,

싱글톤을 이용 컨트롤및 단계별 필요한 상수를 한곳에서 관리 하도록 하였고,

컨트롤간 메세지 정보 는 큐를 이용, 어떠한 상황에서도 메세지간 충돌이 발생하지 않도록 했습니다.

 

여러분은 어떻게 개발 하시나요?