⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ketrisblock.java

📁 手机版俄罗斯方块,结合了网上的一部分源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * KetrisBlock.java
 *
 * Created on 2007年9月20日, 下午5:45
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.j2me.game.ketris;

import javax.microedition.lcdui.*;

import java.util.Random;

/**
 *
 * <p>Title: </p>
 * <p>Description: 该类为封装下坠物对象及其操作</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author: an unknown Japanese,Jagie
 * @version 1.0
 */

public class KetrisBlock {
    
    
    
    //各种砖块,1-7为活动砖块颜色,8为墙砖颜色
    public static final int[] BRICK_COLORS = {
        0x00FF0000, 0x0000FF00, 0x00FFFF00, 0x000000FF, 0x00FF00FF, 0x0000FFFF,
        0x00C0DCC0, 0x00808080};
    
    /**
     * blockpattern的编码规则:blockpattern表示一个下坠物体的形状,一种下坠物的颜色是固定的。
     * 对于一个下坠物,用一个三维数祖表示,第一维用rot表示(旋转值),第二维用x(也就是行),第三维用y表示(也就是列)。
     * 所以 blockpattern1:田字及四种旋转形状
     * blockpattern2:反L字及四种旋转形状
     * blockpattern3:L字及四种旋转形状
     * blockpattern4:1字及四种旋转形状
     * ........................
     */
    
    protected int blockpattern1[][][] = {
        {
            {0, 0, 0, 0},{ 0, 1, 1, 0},{0, 1, 1, 0},{0, 0, 0, 0}
        }
        ,
        {
            {0, 0, 0, 0},{0, 1, 1, 0},{0, 1, 1, 0},{0, 0, 0, 0}
        }
        ,
        {
            {0, 0, 0, 0},{0, 1, 1, 0},{0, 1, 1, 0},{0, 0, 0, 0}
        }
        ,
        {
            {0, 0, 0, 0},{0, 1, 1, 0},{0, 1, 1, 0},{0, 0, 0, 0}
        }
    };
    
    protected int blockpattern2[][][] = {
        {
            {
                0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 1, 1, 1}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 1, 0, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    1, 1, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 0, 0}
        }
    };
    
    protected int blockpattern3[][][] = {
        {
            {
                0, 1, 0, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 1, 1, 1}
                , {
                    0, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 0, 1, 0}
                , {
                    1, 1, 1, 0}
                , {
                    0, 0, 0, 0}
        }
    };
    
    protected int blockpattern4[][][] = {
        {
            {
                0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 0, 0, 0}
                , {
                    1, 1, 1, 1}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 1, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 0, 0, 0}
                , {
                    1, 1, 1, 1}
                , {
                    0, 0, 0, 0}
        }
    };
    
    protected int blockpattern5[][][] = {
        {
            {
                0, 0, 0, 0}
                , {
                    1, 1, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 1, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    1, 1, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 1, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
    };
    
    protected int blockpattern6[][][] = {
        {
            {
                0, 0, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    1, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 1, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 0, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    1, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 1, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 0, 1, 0}
                , {
                    0, 0, 0, 0}
        }
    };
    
    protected int blockpattern7[][][] = {
        {
            {
                0, 0, 0, 0}
                , {
                    1, 1, 1, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 1, 0, 0}
                , {
                    1, 1, 0, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 1, 0, 0}
                , {
                    1, 1, 1, 0}
                , {
                    0, 0, 0, 0}
                , {
                    0, 0, 0, 0}
        }
        , {
            {
                0, 1, 0, 0}
                , {
                    0, 1, 1, 0}
                , {
                    0, 1, 0, 0}
                , {
                    0, 0, 0, 0}
        }
    };
    
    private int blockpattern[][][]; /* 当前坠物形状,为以上定义的七个下坠物之一 */
    private int blockNextpattern[][]; /* 下一个坠物形状,显示在游戏容器的右边 */
    
    private int x; //blockpattern左上角x坐标,x=i表示左上角距离游戏容器左上角x轴上i个小砖块单位
    private int y; //blockpattern左上角y坐标,y=i表示左上角距离游戏容器左上角y轴上i个小砖块单位
    private int oldx; //x的旧值
    private int oldy; //y的旧值
    private int rot; //旋转值,0-3
    private int oldrot; //旋转旧值
    private int pattern; /* 组成当前坠物所用小砖块id(1-7),同时也表示一种下坠物形状 */
    private int next; /* 组成下一个坠物所用小砖块id(1-7),同时也表示一种下坠物形状 */
    
    private KetrisMap map;
    protected Random rand;
    
    /* 构造,保存map,初始化blockimage,rand,next */
    public KetrisBlock(KetrisMap map) {
        this.map = map;
        rand = new Random();
        next =Math.abs(rand.nextInt()) % 7 + 1;
    }
    
    /* 初始化 */
    protected void init() {
        
        pattern = next;
        next = Math.abs(rand.nextInt()) % 7 + 1;
        
        /* 得到当前下坠物 */
        switch (pattern) {
            case 1:
                readPattern(blockpattern1);
                break;
            case 2:
                readPattern(blockpattern2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -