ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

俄罗斯方块:二

2021-05-24 21:30:11  阅读:173  来源: 互联网

标签:int id 方块 按钮 btn 俄罗斯 boxs


文章目录

一、计划内容

1.1、按钮

通过按钮的点击,实现方块左、右、下的移动,以及改变形状。

1.2、边界

在游戏区域的边界内能正常操作;超过边界,操作无效。

二、初始化按钮

2.1、完成按钮的初始化

btn_left=(Button)findViewById(R.id.btn_left);
btn_top=findViewById(R.id.btn_top);
btn_right=findViewById(R.id.btn_right);
btn_up=findViewById(R.id.btn_up);
btn_start=findViewById(R.id.btn_start);
btn_pause=findViewById(R.id.btn_pause);

三、捕捉按钮

3.1、完成按钮的监听

public class MainActivity extends AppCompatActivity implements View.OnClickListener
btn_left.setOnClickListener(this);
btn_top.setOnClickListener(this);
btn_right.setOnClickListener(this);
btn_up.setOnClickListener(this);
btn_start.setOnClickListener(this);
btn_pause.setOnClickListener(this);

3.2、实现点击事件的响应

Toast.makeText(this,"点击了按钮",1000).show();

3.3、点击按钮后,需重新绘制图案

view.invalidate();

四、移动方块

4.1、通过点击代表不同方向的按钮,使方块发生移动

//左
case R.id.btn_left:
    move(-1,0);
    break;
//上
case R.id.btn_top:
    rotate();
    break;
//右
case R.id.btn_right:
    move(1,0);
    break;
//下
case R.id.btn_up:
    move(0,1);
    break;

4.2、移动方块

public boolean move(int x,int y){
    System.out.println("移动前坐标:"+ boxs[0].x+" "+ boxs[0].y);
    //遍历方块数组,加上偏移量
    for(int i=0;i<boxs.length;i++){
        boxs[i].x= boxs[i].x+x;
        boxs[i].y= boxs[i].y+y;
    }
    Log.e("移动后坐标:", boxs[0].x+" "+ boxs[0].y);
    return true;
}

五、旋转方块

5.1、通过旋转(向上)按钮,使方块旋转。

//遍历方块数组,每次旋转角度为90
for(int i=0;i<boxs.length;i++){
    int checkX=-boxs[i].y+boxs[0].x+ boxs[0].y;
    int checkY=- boxs[0].x+boxs[i].x+boxs[0].y;
    boxs[i].x=checkX;
    boxs[i].y=checkY;
}

六、边界判断

6.1、方块超过边界时,不能移动

//判断方块移动后的点,是否出界
for(int i=0;i<boxs.length;i++){
    if(checkBundary(boxs[i].x+x,boxs[i].y+y)){
        //坐标出界,移动失败
        return false;
    }
}

6.2、方块超过边界时,不能旋转

//判断方块移动后的点,是否出界
for(int i=0;i<boxs.length;i++){
    int checkX=-boxs[i].y+boxs[0].x+ boxs[0].y;
    int checkY=- boxs[0].x+boxs[i].x+boxs[0].y;
    if(checkBundary(checkX,checkY)){
        //坐标出界,旋转失败
        return false;
    }
}

七、效果

7.1、移动按钮

在这里插入图片描述

7.2、重新绘制方块

在这里插入图片描述

7.3、旋转

在这里插入图片描述在这里插入图片描述

8、补充说明

8.1、屏幕

屏幕的长度与宽度比例不恰当,会导致显示不佳,这也与获得屏幕的宽度,以及设计的游戏区域参数有关,同时还需要注意采用调试的手机。

在这里插入图片描述

标签:int,id,方块,按钮,btn,俄罗斯,boxs
来源: https://blog.csdn.net/qq_43433255/article/details/117092431

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有