스마트폰게임에 대한 흥미제로인 우리 마나님께서 웬일 게임을 하고 있는 것이 아닌가...수많은 아기자기 재밌는 게임의 홍수속에서
아주 단순한 클래식 보드게임을 하고 있는 것이다..
우리 마나님은 정신 사나운 게임을 싫어한다...그래서 문득 아주 먼 옛날 처음 프로그래밍에 손을 대기 시작했을때 만들었던 리버시게임이 생각이 났다..그리고 일본 출장갔을때 본 한정판 리버시게임판....
그래서 안드로이드 리버시게임을 다시 한번 만들어 보고 싶어졌다..그것도 프라다스타일의 한정판 리버시!!
먼저...이미지를 만들었다....
기존의 흰돌, 까만돌이 아닌 골드와 실버로 ㅋㅋ~~
그리고 판도 프라다스타일로.....흠..맘에 안들지만 디자인 전공이 아니니 뭐..이정도로 만족을...
그리고 이클립스를 열고...대충 오늘은 기본 셋팅정도....
그리고 간단하게 코딩...
[LimitedReversi.java]
public class LimitedReversi extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); LinearLayout l = new LinearLayout(this); setContentView(l); l.addView(new ReversiView(this));
}
} |
[ReversiView]
public class ReversiView extends View{ private Paint paint = new Paint();
private int Width, Height; private Resources res = this.getContext().getResources(); private final Bitmap IMG_BOARD = BitmapFactory.decodeResource(res, R.drawable.board); private final Bitmap IMG_GOLD = BitmapFactory.decodeResource(res, R.drawable.gold); private final Bitmap IMG_SILVER = BitmapFactory.decodeResource(res, R.drawable.silver); private final Bitmap IMG_GUIDE = BitmapFactory.decodeResource(res, R.drawable.guide); private final Bitmap IMG_BACK = BitmapFactory.decodeResource(res, R.drawable.background); private final int TITLE = 0; private final int PLAYER = 1; private final int COM = 2; private final int TURN = 3; private final int REVERS = 4; private final int CONTROL = 5; private final int PASS = 6; private final int RESULT = 7;
private int[] board = new int[100]; private int page = TITLE;
public ReversiView(Context context) { super(context); // 화면 해상도 구하기 Display display = ((WindowManager)context.getSystemService(context.WINDOW_SERVICE)).getDefaultDisplay(); Width = display.getWidth(); Height = display.getHeight();
}
@Override protected void onDraw(Canvas c) { int i; c.drawBitmap(IMG_BACK, 0, 0,paint); //보드를 표시하자 c.drawBitmap(IMG_BOARD, 0, 0, paint); for(i=11;i<=88;i++) { if(board[i]==PLAYER) c.drawBitmap(IMG_GOLD, 48*(i%10), 48*(i/10), paint); if(board[i]==COM) c.drawBitmap(IMG_SILVER, 48*(i%10), 48*(i/10), paint);
} switch(page){ case TITLE: break; case TURN: break; case PLAYER: break; case COM: break; case REVERS: break; case CONTROL: break; case PASS: break; case RESULT: break;
} } //터치입력처리 public boolean onTouchEvent(MotionEvent me){ if(me.getAction()==MotionEvent.ACTION_DOWN){ switch(page){ case TITLE: break; case PLAYER: break; case COM: break; case PASS: break; case RESULT: break;
} } return true;
}
} |
테스트 디바이스로 버림받고 살고 있는 나의 첫 스마트폰...갤럭시s에 넣어보니..음..그럭저럭..만족....
이제 시간날때 화면터치로 돌 놓는 것과 로직을 구성해야 겠다..