zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java编写俄罗斯方块详解编程语言

JAVA编程语言 详解 编写 俄罗斯 方块
2023-06-13 09:20:28 时间
{ 0x6440, 0x0e20, 0x44c0, 0x8e00 },//左L型 { 0x0660, 0x0660, 0x0660, 0x0660 } //田字形 int blockType; // 块的模式号(0-6) int turnState; // 块的翻转状态(0-3) int blockState; // 块的下落状态 int row;//行 int col;//列 Game_Draw scr; //声明类型
blockType = (int)(Math.random()*7) ;//随机从7中生成一中方块 //turnState = (int) (Math.random()*3) ; blockState = 1; row = scr.getInitRow(); col = scr.getInitCol(); dispBlock(1);
if (((int) pattern[blockType][turnState] k) != 0) { scr.drawUnit(row - i, col + j, s); k = k /2; Game_Command.java import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
static final int button_play = 1; // 给按钮分配编号 static final int button_levelup = 2; static final int button_leveldown = 3; static final int button_quit = 4; static final int button_pause = 5; static boolean pause_resume = true; int curButton; // 当前按钮 Game_Draw scr;
import java.awt.event.KeyListener; public class Game_Draw extends Canvas implements KeyListener{ final int unitSize = 30; // 小方块边长 int rowNum; // 正方格的行数 int columnNum; // 正方格的列数 int maxAllowRowNum; // 允许有多少行未削 int blockInitRow; // 新出现块的起始行坐标 int blockInitCol; // 新出现块的起始列坐标 int[][] scrArr; // 屏幕数组 Game_Box b=new Game_Box(this); // 对方快的引用 Game_MyTimer time;
public void drawUnit(int row, int col, int type) { System.out.println(getSize().height); scrArr[row][col] = type; Graphics g = getGraphics(); switch (type) { // 表示画方快的方法 case 0: g.setColor(Color.BLACK); break; // 以背景为颜色画 case 1: g.setColor(Color.blue); break; // 画正在下落的方块 case 2: g.setColor(Color.GRAY); break; // 画已经落下的方法 g.fill3DRect(col * unitSize, getSize().height - (row + 1) * unitSize, unitSize, unitSize, true); g.dispose();
public int getScrArrXY(int row, int col) { if (row 0 || row = rowNum || col 0 || col = columnNum) return (-1); else return (scrArr[row][col]);
Game_Layout.score += full_line_num; Game_Layout.scoreField.setText("" + Game_Layout.score);
setLayout(new GridLayout(1, 2));//整体分为两个部分 gameScr.addKeyListener(gameScr);//就收键盘监听,监听的内容是游戏主界面 timer = new Game_MyTimer(gameScr); timer.setDaemon(true); timer.start(); timer.suspend(); add(gameScr); JPanel rightScr = new JPanel(); rightScr.setLayout(new GridLayout(2, 1, 0,0)); //rightScr.setSize(120, 480); //LeftScr.setSize(1000, 40); add(rightScr); //add(LeftScr); // 右边信息窗体的布局 Game_MyPanel infoScr = new Game_MyPanel(); infoScr.setLayout(new GridLayout(4, 1, 0, 0));//4行一列 水平0 垂直5 //infoScr.setSize(120, 300); rightScr.add(infoScr); // 定义标签和初始值 JLabel scorep = new JLabel("分数:"); JLabel levelp = new JLabel("级数:"); scoreField = new TextField(8);//定义文本长度 levelField = new TextField(8); scoreField.setEditable(false);//文本不可以编辑 levelField.setEditable(false); infoScr.add(scorep); infoScr.add(scoreField); infoScr.add(levelp); infoScr.add(levelField); //scorep.setSize(10,10); //scoreField.setSize(new Dimension(20, 60)); //levelp.setSize(new Dimension(20, 60)); //levelField.setSize(new Dimension(20, 60)); scoreField.setText("0"); levelField.setText("1"); // 右边控制按钮窗体的布局 Game_MyPanel controlScr = new Game_MyPanel(); //控制面板 controlScr.setLayout(new GridLayout(4, 1, 0, 10));//5行 1列 水平间隔为0 垂直为 5 rightScr.add(controlScr); // 定义按钮play JButton play_b = new JButton("开始游戏"); //play_b.setSize(new Dimension(50, 20)); play_b.addActionListener(new Game_Command(1, gameScr)); // 定义按钮Level UP JButton level_up_b = new JButton("提高级数"); level_up_b.addActionListener(new Game_Command(2,gameScr)); // 定义按钮Level Down JButton level_down_b = new JButton("降低级数"); level_down_b.addActionListener(new Game_Command(3,gameScr)); // 定义按钮Quit JButton quit_b = new JButton("退出游戏"); quit_b.addActionListener(new Game_Command(4, gameScr)); controlScr.add(play_b); controlScr.add(level_up_b); controlScr.add(level_down_b); //controlScr.add(pause_b); controlScr.add(quit_b); setVisible(true); gameScr.requestFocus(); Game_MyPanel.java import java.awt.Insets; import java.awt.Panel; class Game_MyPanel extends Panel { public Insets getInsets() { return new Insets(30, 60, 30, 60);//顶 左 底 右 Game_MyTime.java public class Game_MyTimer extends Thread{

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10163.html

cjava