中國象棋android原始碼分析
阿新 • • 發佈:2019-01-08
大家好,今天我給大家分享一箇中國象棋的Android遊戲原始碼。先來一張圖片看看效果。
1、原始碼結構
所有類都放置到com.bn.chess包裡.
2、類及類關係介紹
(1)Chess_DJB_Activity->WelcomeView->GameView,在GameView中實現對元件的呼叫操作
(2)元件類關係圖
元件類的屬性為公共靜態屬性,方法為公共方法。
3、程式碼分析
(1) 類物件結構圖
採用組織結構圖進行繪製,主要繪製組合關係和繼承關係
(2) 類方法關係圖
採用思維導圖進行繪製,對於元件之間的呼叫,不進行繪製
(3) 接下來我們從入口函式進行分析
(1)handleMessage(Message msg)
{
goToGameView(); //進入遊戲介面
}
goToGameView()
{
GameView(Chess_DJB_Activity.this)
}
(2)onCreate(Bundle savedInstanceState)
{
goToWelcomeView(); //進入歡迎介面
}
GoToWelcomeView() //進入歡迎介面
{
WelcomeView(this);
}
(3) onKeyDown(int keyCode, KeyEvent e)
{}
(4) WelcomeView(Chess_DJB_Activity activity)
{}
(5)surfaceCreated(SurfaceHolder holder)
{
onDraw(canvas);//進行繪製
myholder.unlockCanvasAndPost(canvas);//解鎖畫布
}
(6) GameView(Context context) //GameView初始化
{
initColer();//初始化難度滾動條顏色陣列
LoadUtil.Startup();//初始化棋盤
initArrays();//初始化陣列
initBitmap(); ///初始化圖片
}
(7) onDraw(Canvas canvas)
{
onDrawWindowindow(canvas,sXtartCk,sYtartCk);//小視窗
onDrawWindowMenu(canvas,ViewConstant.sXtart,ViewConstant.sYtart);
}
(8) surfaceCreated(SurfaceHolder holder)//SurfaceView建立
{
onDraw(canvas);//繪製
holder.unlockCanvasAndPost(canvas);//釋放鎖
newThread() ; //新執行緒
}
(9) onTouchEvent(MotionEvent e)
{
onDrawcanvas();//重繪方法
LoadUtil.Startup();//初始化棋盤
initArrays();//初始化陣列
LoadUtil.UndoMovePiece(chess.mvResult, chess.pcCaptured);
LoadUtil.UndoMovePiece(chess.mvResult, chess.pcCaptured);
}
onDrawcanvas()//重繪方法
{
onDraw(canvas);//繪製
holder.unlockCanvasAndPost(canvas);//釋放鎖
}
(4)資源連結:http://download.csdn.net/download/zzxszt/10183032