package wyf.ytl;
/**
*
* 该类为键盘监听线程类
* 定时检测当前键盘的状态
* 然后根据状态调用相应的处理
*
*/
public class KeyThread extends Thread{
int sleepSpan = 150;
PushBoxActivity pushBoxActivity;//Activity的引用
boolean flag = true;//循环标志
boolean keyFlag = true;//是否监听标志
int action;//键盘状态码
private boolean KEY_UP = false;//向上键是否被按下
private boolean KEY_DOWN = false;//向下键是否被按下
private boolean KEY_LEFT = false;//向左的键被按下
private boolean KEY_RIGHT = false;//向右的键被按下
public KeyThread(PushBoxActivity pushBoxActivity){//构造器
this.pushBoxActivity = pushBoxActivity;
}
@Override
public void run(){//重写的方法
while(flag){
if(keyFlag){//是否需要键盘监听
boolean typeFlag = true;//什么类型。推箱子或者走路
action = pushBoxActivity.action;//得到当前键盘的状态码
if((action & 0x08) != 0){//上
KEY_UP = true;
}
else{
KEY_UP = false;
}
if((action & 0x04) != 0){//下
KEY_DOWN = true;
}
else{
KEY_DOWN = false;
}
if((action & 0x02) != 0){//左
KEY_LEFT = true;
}
else{
KEY_LEFT = false;
}
if((action & 0x01) != 0){//右
KEY_RIGHT = true;
}
else{
KEY_RIGHT = false;
}
if(KEY_UP == true){//向上键被按下
this.keyFlag = false;
if(!(pushBoxActivity.mySprite.i-1 <=0)){//没到最上方时
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i-1][pushBoxActivity.mySprite.j] == 1 || pushBoxActivity.map2[pushBoxActivity.mySprite.i-1][pushBoxActivity.mySprite.j] == 3){//当上侧有箱子时
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i-2][pushBoxActivity.mySprite.j] == 0){//检测箱子的上边是否为空地
if(pushBoxActivity.map1[pushBoxActivity.mySprite.i-2][pushBoxActivity.mySprite.j] == 2 || pushBoxActivity.map1[pushBoxActivity.mySprite.i-2][pushBoxActivity.mySprite.j] == 3){//是否为目的地
pushBoxActivity.map2[pushBoxActivity.mySprite.i-2][pushBoxActivity.mySprite.j] = 3;//绿色的箱子
}
else{
pushBoxActivity.map2[pushBoxActivity.mySprite.i-2][pushBoxActivity.mySprite.j] = 1;
}
pushBoxActivity.map2[pushBoxActivity.mySprite.i-1][pushBoxActivity.mySprite.j] = 0;
pushBoxActivity.gameView.tempi = pushBoxActivity.mySprite.i-2;//移动箱子
pushBoxActivity.gameView.tempj = pushBoxActivity.mySprite.j;
BoxThread bt = new BoxThread(1,pushBoxActivity,pushBoxActivity.gameView.tempi,pushBoxActivity.gameView.tempj);//无极运动箱子
bt.start();//启动箱子移动的线程
typeFlag = false;
}
}
}
SpriteMoveThread smt = new SpriteMoveThread(1,pushBoxActivity, typeFlag);//精灵无极移动
smt.start();
SpriteThread st = new SpriteThread(1, pushBoxActivity, typeFlag);//精灵换帧
st.start();
}
if(KEY_DOWN == true){//向下键被按下
this.keyFlag = false;
if(!((pushBoxActivity.mySprite.i + 1) >= (pushBoxActivity.map2.length-1))){
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i+1][pushBoxActivity.mySprite.j] == 1 || pushBoxActivity.map2[pushBoxActivity.mySprite.i+1][pushBoxActivity.mySprite.j] == 3){//当下侧有箱子时
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i+2][pushBoxActivity.mySprite.j] == 0){//检测箱子的下边是否为空地
if(pushBoxActivity.map1[pushBoxActivity.mySprite.i+2][pushBoxActivity.mySprite.j] == 2 || pushBoxActivity.map1[pushBoxActivity.mySprite.i+2][pushBoxActivity.mySprite.j] == 3){//是否为目的地
pushBoxActivity.map2[pushBoxActivity.mySprite.i+2][pushBoxActivity.mySprite.j] = 3;
}
else{
pushBoxActivity.map2[pushBoxActivity.mySprite.i+2][pushBoxActivity.mySprite.j] = 1;
}
pushBoxActivity.map2[pushBoxActivity.mySprite.i+1][pushBoxActivity.mySprite.j] = 0;
pushBoxActivity.gameView.tempi = pushBoxActivity.mySprite.i+2;
pushBoxActivity.gameView.tempj = pushBoxActivity.mySprite.j;
BoxThread bt = new BoxThread(2,pushBoxActivity,pushBoxActivity.gameView.tempi,pushBoxActivity.gameView.tempj);//无极运动箱子
bt.start();
typeFlag = false;
}
}
}
SpriteMoveThread smt = new SpriteMoveThread(2,pushBoxActivity, typeFlag);//精灵无极移动
smt.start();
SpriteThread st = new SpriteThread(2, pushBoxActivity,typeFlag);//精灵换帧
st.start();
}
if(KEY_LEFT == true){//向左键被按下
this.keyFlag = false;//去掉键盘监听
if(!(pushBoxActivity.mySprite.j-1 <= 0)){
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-1] == 1 || pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-1] == 3){//当左侧有箱子时
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-2] == 0){//检测箱子的左边是否为空地
if(pushBoxActivity.map1[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-2] == 2 || pushBoxActivity.map1[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-2] == 3){//是否为目的地
pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-2] = 3;//绿箱子
}
else{
pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-2] = 1;
}
pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j-1] = 0;
pushBoxActivity.gameView.tempi = pushBoxActivity.mySprite.i;
pushBoxActivity.gameView.tempj = pushBoxActivity.mySprite.j-2;
BoxThread bt = new BoxThread(3,pushBoxActivity,pushBoxActivity.gameView.tempi,pushBoxActivity.gameView.tempj);//无极运动箱子
bt.start();
typeFlag = false;
}
}
}
SpriteMoveThread smt = new SpriteMoveThread(3,pushBoxActivity, typeFlag);//精灵无极移动
smt.start();
SpriteThread st = new SpriteThread(3, pushBoxActivity,typeFlag);//精灵换帧
st.start();
}
if(KEY_RIGHT == true){//向右键被按下
this.keyFlag = false;
if(!(pushBoxActivity.mySprite.j+1 >= pushBoxActivity.map2[pushBoxActivity.mySprite.i].length-1)){
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+1] == 1 || pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+1] == 3){//当左侧有箱子时
if(pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+2] == 0){//检测箱子的左边是否为空地
if(pushBoxActivity.map1[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+2] == 2 || pushBoxActivity.map1[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+2] == 3){//是否为目的地
pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+2] = 3;
}
else{
pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+2] = 1;
}
pushBoxActivity.map2[pushBoxActivity.mySprite.i][pushBoxActivity.mySprite.j+1] = 0;
pushBoxActivity.gameView.tempi = pushBoxActivity.mySprite.i;//移动箱子
pushBoxActivity.gameView.tempj = pushBoxActivity.mySprite.j+2;
BoxThread bt = new BoxThread(4,pushBoxActivity,pushBoxActivity.gameView.tempi,pushBoxActivity.gameView.tempj);//无极运动箱子
bt.start();
typeFlag = false;
}
}
}
SpriteMoveThread smt = new SpriteMoveThread(4,pushBoxActivity, typeFlag);//精灵无极移动
smt.start();
SpriteThread st = new SpriteThread(4, pushBoxActivity,typeFlag);//精灵换帧
st.start();
}
}
try{
Thread.sleep(sleepSpan);//睡觉指
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【安卓程序——3D推箱子游戏】 (1)一个包含源代码和全部配置文件的完整安卓工程包。此程序是一个经典的3D推箱子游戏,它可以在安卓设备上运行,无论是手机还是平板电脑。这个程序非常适合初学者学习安卓开发,也可以供大家自行娱乐,或者作为课程设计项目。 (2)使用Java语言编写,采用了安卓开发的基础框架,包括活动(Activity)、意图(Intent)、广播接收器(Broadcast Receiver)等组件。通过此程序,初学者可以了解安卓开发的基本概念和基本操作,掌握如何使用Java语言开发安卓应用程序。 (3)源代码和配置文件完整,包括了所有必要的文件和资源。这使得学习者可以全面了解程序的各个部分,从界面设计到游戏逻辑的实现,以及如何进行调试和测试。 (4)本程序经过测试,可以保证在安卓设备上正常运行,另外附带了一份详细的运行教程,如果学习者在运行程序时遇到任何问题,可以随时联系博主进行咨询和解决。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
共 164 条
- 1
- 2
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/53468758741a47fe9610df610974d422_qq_42146402.jpg!1)
小新要变强
- 粉丝: 2w+
- 资源: 539
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)