象棋,很多人多接觸過,學者寫了一個,大神可以指點一下~直接上代碼:
貼出主要代碼,想要Demo的點擊下載:中國象棋Demo
package wyf.ytl; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.media.MediaPlayer; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; /** * 該類是整個程序最主要的類,是主游戲的界面 * 該界面繼承自SurfaceView并實現了SurfaceHolder.Callback接口 * 其中包含了一個刷幀的線程類 * */ public class GameView extends SurfaceView implements SurfaceHolder.Callback{ private TutorialThread thread;//刷幀的線程 TimeThread timeThread ; ChessActivity activity;//聲明Activity的引用 Bitmap qiPan;//棋盤 Bitmap qizibackground;//棋子的背景圖片 Bitmap win;//勝利的圖片 Bitmap lost;//失敗的圖片 Bitmap ok;//確定按鈕 Bitmap vs;//黑方紅方VS的圖片 Bitmap right;//向右的指針 Bitmap left;//向左的指針 Bitmap current;//“當前”文字 Bitmap exit2;//退出按鈕圖片 Bitmap sound2;//聲音按鈕圖片 Bitmap sound3;//當前是否播放了聲音 Bitmap time;//冒號 Bitmap redtime;//紅色冒號 Bitmap background;//背景圖片 MediaPlayer go;//下棋聲音 Paint paint;//畫筆 boolean caiPan = true;//是否為玩家走棋 boolean focus = false;//當前是否有選中的棋子 int selectqizi = 0; //當然選中的棋子 int startI, startJ;//記錄當前棋子的開始位置 int endI, endJ;//記錄當前棋子的目標位置 Bitmap[] heiZi = new Bitmap[7];//黑子的圖片數組 Bitmap[] hongZi = new Bitmap[7];//紅子的圖片數組 Bitmap[] number = new Bitmap[10];//數字的圖片數組,用于顯示時間 Bitmap[] redNumber = new Bitmap[10];//紅色數字的圖片,用于顯示時間 GuiZe guiZe;//規則類 int status = 0;//游戲狀態。0游戲中,1勝利, 2失敗 int heiTime = 0;//黑方總共思考時間 int hongTime = 0;//紅方總共思考時間 int[][] qizi = new int[][]{//棋盤 {2,3,6,5,1,5,6,3,2}, {0,0,0,0,0,0,0,0,0}, {0,4,0,0,0,0,0,4,0}, {7,0,7,0,7,0,7,0,7}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {14,0,14,0,14,0,14,0,14}, {0,11,0,0,0,0,0,11,0}, {0,0,0,0,0,0,0,0,0}, {9,10,13,12,8,12,13,10,9}, }; public GameView(Context context,ChessActivity activity) {//構造器 super(context); this.activity = activity;//得到Activity的引用 getHolder().addCallback(this); go = MediaPlayer.create(this.getContext(), R.raw.go);//加載下棋的聲音 this.thread = new TutorialThread(getHolder(), this);//初始化刷幀線程 this.timeThread = new TimeThread(this);//初始化思考時間的線程 init();//初始化所需資源 guiZe = new GuiZe();//初始化規則類 } public void init(){//初始化方法 paint = new Paint();//初始化畫筆 qiPan = BitmapFactory.decodeResource(getResources(), R.drawable.qipan);//棋盤圖片 qizibackground = BitmapFactory.decodeResource(getResources(), R.drawable.qizi);//棋子的背景 win = BitmapFactory.decodeResource(getResources(), R.drawable.win);//勝利的圖片 lost = BitmapFactory.decodeResource(getResources(), R.drawable.lost);//失敗的圖片 ok = BitmapFactory.decodeResource(getResources(), R.drawable.ok);//確定按鈕圖片 vs = BitmapFactory.decodeResource(getResources(), R.drawable.vs);//vs字樣的圖片 right = BitmapFactory.decodeResource(getResources(), R.drawable.right);//向右的指針 left = BitmapFactory.decodeResource(getResources(), R.drawable.left);//向左的指針 current = BitmapFactory.decodeResource(getResources(), R.drawable.current);//文字“當前” exit2 = BitmapFactory.decodeResource(getResources(), R.drawable.exit2);//退出按鈕圖片 sound2 = BitmapFactory.decodeResource(getResources(), R.drawable.sound2);//聲音按鈕圖片 time = BitmapFactory.decodeResource(getResources(), R.drawable.time);//黑色冒號 redtime = BitmapFactory.decodeResource(getResources(), R.drawable.redtime);//紅色冒號 sound3 = BitmapFactory.decodeResource(getResources(), R.drawable.sound3); heiZi[0] = BitmapFactory.decodeResource(getResources(), R.drawable.heishuai);//黑帥 heiZi[1] = BitmapFactory.decodeResource(getResources(), R.drawable.heiju);//黑車 heiZi[2] = BitmapFactory.decodeResource(getResources(), R.drawable.heima);//黑馬 heiZi[3] = BitmapFactory.decodeResource(getResources(), R.drawable.heipao);//黑炮 heiZi[4] = BitmapFactory.decodeResource(getResources(), R.drawable.heishi);//黑士 heiZi[5] = BitmapFactory.decodeResource(getResources(), R.drawable.heixiang);//黑象 heiZi[6] = BitmapFactory.decodeResource(getResources(), R.drawable.heibing);//黑兵 hongZi[0] = BitmapFactory.decodeResource(getResources(), R.drawable.hongjiang);//紅將 hongZi[1] = BitmapFactory.decodeResource(getResources(), R.drawable.hongju);//紅車 hongZi[2] = BitmapFactory.decodeResource(getResources(), R.drawable.hongma);//紅馬 hongZi[3] = BitmapFactory.decodeResource(getResources(), R.drawable.hongpao);//紅
主站蜘蛛池模板:
丹凤县|
施甸县|
通州市|
丹东市|
府谷县|
克拉玛依市|
鄂尔多斯市|
儋州市|
新乡县|
荣成市|
新乡县|
新沂市|
额敏县|
疏附县|
新营市|
江永县|
海门市|
宜州市|
准格尔旗|
山丹县|
兴安盟|
始兴县|
宁陕县|
三穗县|
边坝县|
区。|
思茅市|
吉木乃县|
黎城县|
宽甸|
安阳县|
宣城市|
乌审旗|
房山区|
蓬安县|
长治县|
北安市|
仙游县|
乳山市|
广德县|
额济纳旗|