> 文档中心 > 『牛角书』鸿蒙

『牛角书』鸿蒙

俄罗斯方块

 一、页面展示

 二、部分代码展示

config.json:

        "icon": "$media:icon",
        "description": "$string:mainability_description",
        "label": "俄罗斯方块",
        "type": "page",
        "launchType": "standard",
        "metaData": {
          "customizeData": [
            {
              "name": "hwc-theme",
              "value": "androidhwext:style/Theme.Emui.Light.NoTitleBar",
              "extra": ""
            }
          ]
        }

MainAbilitySlice:

四个按钮:

public void drawButton(){
        ShapeElement background = new ShapeElement();
        background.setRgbColor(new RgbColor(174, 158, 143));
        background.setCornerRadius(100);

        Button button1 = new Button(this);
        button1.setText("←");
        button1.setTextAlignment(TextAlignment.CENTER);
        button1.setTextColor(Color.WHITE);
        button1.setTextSize(100);
        button1.setMarginTop(1800);
        button1.setMarginLeft(160);
        button1.setPadding(10,0,10,0);
        button1.setBackground(background);
        button1.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                leftShift();
            }
        });
        layout.addComponent(button1);

        Button button2 = new Button(this);
        button2.setText("变");
        button2.setTextAlignment(TextAlignment.CENTER);
        button2.setTextColor(Color.WHITE);
        button2.setTextSize(100);
        button2.setMarginLeft(480);
        button2.setMarginTop(-130);
        button2.setPadding(10,0,10,0);
        button2.setBackground(background);
        button2.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                changGrids();
            }
        });
        layout.addComponent(button2);

        Button button3 = new Button(this);
        button3.setText("→");
        button3.setTextAlignment(TextAlignment.CENTER);
        button3.setTextColor(Color.WHITE);
        button3.setTextSize(100);
        button3.setMarginLeft(780);
        button3.setMarginTop(-130);
        button3.setPadding(10,0,10,0);
        button3.setBackground(background);
        button3.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                rightShift();
            }
        });
        layout.addComponent(button3);

        Button button = new Button(this);
        button.setText("重新开始");
        button.setTextSize(100);
        button.setTextAlignment(TextAlignment.CENTER);
        button.setTextColor(Color.WHITE);
        button.setMarginTop(5);
        button.setMarginLeft(310);
        button.setPadding(10,10,10,10);
        button.setBackground(background);
        button.setClickedListener(new Component.ClickedListener() {
            @Override
            public void onClick(Component component) {
                initialize();
            }
        });
        layout.addComponent(button);
    }

随机方块:

    private static final int[][] RedGrids1={{0,3},{0,4},{1,4},{1,5}};
    private static final int[][] RedGrids2={{0,5},{1,5},{1,4},{2,4}};
    private static final int[][] GreenGrids1={{0,5},{0,4},{1,4},{1,3}};
    private static final int[][] GreenGrids2={{0,4},{1,4},{1,5},{2,5}};
    private static final int[][] CyanGrids1={{0,4},{1,4},{2,4},{3,4}};
    private static final int[][] CyanGrids2={{0,3},{0,4},{0,5},{0,6}};
    private static final int[][] MagentaGrids1={{0,4},{1,3},{1,4},{1,5}};
    private static final int[][] MagentaGrids2={{0,4},{1,4},{1,5},{2,4}};
    private static final int[][] MagentaGrids3={{0,3},{0,4},{0,5},{1,4}};
    private static final int[][] MagentaGrids4={{0,5},{1,5},{1,4},{2,5}};
    private static final int[][] BlueGrids1={{0,3},{1,3},{1,4},{1,5}};
    private static final int[][] BlueGrids2={{0,5},{0,4},{1,4},{2,4}};
    private static final int[][] BlueGrids3={{0,3},{0,4},{0,5},{1,5}};
    private static final int[][] BlueGrids4={{0,5},{1,5},{2,5},{2,4}};
    private static final int[][] WhiteGrids1={{0,5},{1,5},{1,4},{1,3}};
    private static final int[][] WhiteGrids2={{0,4},{1,4},{2,4},{2,5}};
    private static final int[][] WhiteGrids3={{0,5},{0,4},{0,3},{1,3}};
    private static final int[][] WhiteGrids4={{0,4},{0,5},{1,5},{2,5}};
    private static final int[][] YellowGrids={{0,4},{0,5},{1,5},{1,4}};
    private static final int grids_number=4;
    private int[][] NowGrids;
    private int row_number;
    private int column_number;
    private int Grids;
    private int column_start;

自动下落

    private int Nowrow;
    private int Nowcolumn;
    private Timer timer;

    public void createGrids(){
            Nowcolumn = 0;
            Nowrow = 0;
    }

public boolean down(){
        boolean k;
        if(Nowrow + row_number == 15){
            return false;
        }

        for(int row = 0; row < grids_number; row++){
            k = true;
            for(int i = 0; i < grids_number; i++){
                if(NowGrids[row][0] + 1 == NowGrids[i][0] && NowGrids[row][1] == NowGrids[i][1]){
                    k = false;
                }
            }
            if(k){
                if(grids[NowGrids[row][0] + Nowrow + 1][NowGrids[row][1] + Nowcolumn] != 0)
                    return false;
            }
        }

        return true;
    }