1. 程式人生 > >中國象棋android原始碼分析

中國象棋android原始碼分析

        大家好,今天我給大家分享一箇中國象棋的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