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);//红砲
hongZi[4] = BitmapFactory.decodeResource(getResources(), R.drawable.hongshi);//红仕
hongZi[5] = BitmapFactory.decodeResource(getResources(), R.drawable.hongxiang);//红相
hongZi[6] = BitmapFactory.decodeResource(getResources(), R.drawable.hongzu);//红卒
number[0] = BitmapFactory.decodeResource(getResources(), R.drawable.number0);//黑色数字0
number[1] = BitmapFactory.decodeResource(getResources(), R.drawable.number1);//黑色数字1
number[2] = BitmapFactory.decodeResource(getResources(), R.drawable.number2);//黑色数字2
number[3] = BitmapFactory.decodeResource(getResources(), R.drawable.number3);//黑色数字3
number[4] = BitmapFactory.decodeResource(getResources(), R.drawable.number4);//黑色数字4
number[5] = BitmapFactory.decodeResource(getResources(), R.drawable.number5);//黑色数字5
number[6] = BitmapFactory.decodeResource(getResources(), R.drawable.number6);//黑色数字6
number[7] = BitmapFactory.decodeResource(getResources(), R.drawable.number7);//黑色数字7
number[8] = BitmapFactory.decodeResource(getResources(), R.drawable.number8);//黑色数字8
number[9] = BitmapFactory.decodeResource(getResources(), R.drawable.number9);//黑色数字9
redNumber[0] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber0);//红色数字0
redNumber[1] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber1);//红色数字1
redNumber[2] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber2);//红色数字2
redNumber[3] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber3);//红色数字3
redNumber[4] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber4);//红色数字4
redNumber[5] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber5);//红色数字5
redNumber[6] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber6);//红色数字6
redNumber[7] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber7);//红色数字7
redNumber[8] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber8);//红色数字8
redNumber[9] = BitmapFactory.decodeResource(getResources(), R.drawable.rednumber9);//红色数字9
background = BitmapFactory.decodeResource(getResources(), R.drawable.bacnground);
}
/**
* 该方法是自己定义的并非重写的
* 该方法是死的,只根据数据绘制屏幕
*/
public void onDraw(Canvas canvas){//自己写的绘制方法
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(background, 0,0, null);//清背景
canvas.drawBitmap(qiPan, 10, 10, null);//绘制棋盘
for(int i=0; i<qizi.length; i++){
for(int j=0; j<qizi[i].length; j++){//绘制棋子
if(qizi[i][j] != 0){
canvas.drawBitmap(qizibackground, 9+j*34, 10+i*35, null);//绘制棋子的背景
if(qizi[i][j] == 1){//为黑帅时
canvas.drawBitmap(heiZi[0], 12+j*34, 13+i*35, paint);
}
else if(qizi[i][j] == 2){//为黑车时
canvas.drawBitmap(heiZi[1], 12+j*34, 13+i*35, paint);
}
else if(qizi[i][j] == 3){//为黑马时
canvas.drawBitmap(heiZi[2], 12+j*34, 13+i*35, paint);
}
else if(qizi[i][j] == 4){//为黑炮时
canvas.drawBitmap(heiZi[3], 12+j*34, 13+i*35, paint);
}
else if(qizi[i
没有合适的资源?快使用搜索试试~ 我知道了~
Android应用源码之中国象棋游戏源码.zip项目安卓应用源码下载
共111个文件
png:66个
class:20个
java:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
1 下载量 105 浏览量
2022-03-08
23:11:43
上传
评论 1
收藏 4.55MB ZIP 举报
温馨提示
Android应用源码之中国象棋游戏源码.zip项目安卓应用源码下载Android应用源码之中国象棋游戏源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
资源详情
资源评论
资源推荐
收起资源包目录
Android应用源码之中国象棋游戏源码.zip项目安卓应用源码下载 (111个子文件)
resources.ap_ 1.47MB
Chess.apk 1.49MB
GameView.class 10KB
GuiZe.class 6KB
WelcomeView.class 4KB
MenuView.class 4KB
HelpView.class 3KB
R$drawable.class 2KB
ChessActivity.class 2KB
WelcomeView$TutorialThread.class 2KB
MenuView$TutorialThread.class 2KB
HelpView$TutorialThread.class 2KB
GameView$TutorialThread.class 2KB
WelcomeViewThread.class 1KB
TimeThread.class 922B
ChessActivity$1.class 823B
ChessMove.class 559B
R.class 456B
R$raw.class 417B
R$string.class 394B
R$layout.class 361B
R$attr.class 307B
.classpath 280B
classes.dex 27KB
GameView.java 19KB
GuiZe.java 15KB
MenuView.java 5KB
WelcomeView.java 5KB
R.java 4KB
HelpView.java 4KB
ChessActivity.java 2KB
WelcomeViewThread.java 2KB
TimeThread.java 810B
ChessMove.java 588B
中国象棋示例图片3.jpg 43KB
中国象棋示例图片1.jpg 43KB
中国象棋示例图片2.jpg 21KB
gamesound.mp3 626KB
startsound.mp3 37KB
go.mp3 1KB
bacnground.png 279KB
helpbackground.png 151KB
welcomebackage.png 87KB
qipan.png 32KB
logo2.png 28KB
boy.png 26KB
bordbackground.png 26KB
oldboy.png 19KB
exit.png 19KB
startgame.png 19KB
closesound.png 18KB
opensound.png 18KB
help.png 17KB
logo.png 16KB
win.png 8KB
lost.png 8KB
vs.png 7KB
back.png 7KB
menu.png 7KB
ok.png 7KB
icon.png 4KB
exit2.png 3KB
sound2.png 3KB
icon.png 3KB
left.png 2KB
right.png 2KB
icon.png 2KB
qizi.png 1KB
sound3.png 1KB
current.png 714B
hongpao.png 493B
hongjiang.png 489B
heixiang.png 467B
heipao.png 466B
hongzu.png 425B
hongxiang.png 415B
hongma.png 409B
heishuai.png 408B
heima.png 402B
hongshi.png 388B
heibing.png 376B
hongju.png 372B
heiju.png 364B
rednumber6.png 285B
rednumber9.png 284B
rednumber8.png 284B
number8.png 280B
number9.png 278B
rednumber3.png 275B
rednumber2.png 273B
heishi.png 271B
number2.png 265B
number3.png 264B
rednumber0.png 264B
number6.png 263B
rednumber7.png 257B
number0.png 257B
rednumber5.png 256B
number5.png 245B
number7.png 244B
共 111 条
- 1
- 2
yxkfw
- 粉丝: 81
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0