?? mainframe.java
字號:
if(cols[0]<=0)
break;
if(flagBlocks[rows[0]][cols[0]-1]!=0)
break;
clear();
rows[0]--;
rows[2]++;
rows[3]--;
cols[0]++;
cols[2]--;
cols[3]--;
status=3;
show();
break;
case 3:
clear();
rows[0]--;
rows[2]++;
rows[3]++;
cols[0]--;
cols[2]++;
cols[3]--;
status=4;
show();
break;
case 4:
if(cols[0]>=9)
break;
if(flagBlocks[rows[0]][cols[0]+1]!=0)
break;
clear();
rows[0]++;
rows[2]--;
rows[3]++;
cols[0]--;
cols[2]++;
cols[3]++;
status=1;
show();
break;
}
}
}
//類型7方塊
class BlockSeven extends Block{
public BlockSeven() {
rows[0] = 1;
rows[1] = 1;
rows[2] = 1;
rows[3] = 1;
cols[0] = 3;
cols[1] = 4;
cols[2] = 5;
cols[3] = 6;
color = Color.red;
}
public void turn() {
switch(status){
case 1:
clear();
rows[0]+=2;
rows[1]++;
rows[3]--;
cols[0]+=2;
cols[1]++;
cols[3]--;
status=2;
show();
break;
case 2:
if(cols[0]<=1||cols[0]>=9)
break;
if(flagBlocks[rows[0]][cols[0]-1]!=0)
break;
if(flagBlocks[rows[0]][cols[0]+1]!=0)
break;
clear();
rows[0]-=2;
rows[1]--;
rows[3]++;
cols[0]-=2;
cols[1]--;
cols[3]++;
status=1;
show();
break;
}
}
}
//游戲主線程
class TetrisThread extends Thread {
int blockType=0;
int count=0;
public void run() {
while (true) {
//判斷游戲狀態
if(block.getIsBottom()&&(!block.getIsTop())){
//獲取當前方塊類型
blockType = nextBlockType;
//創建方塊
switch (blockType) {
case 0:
block = new BlockOne();
break;
case 1:
block = new BlockTwo();
break;
case 2:
block = new BlockThree();
break;
case 3:
block = new BlockFour();
break;
case 4:
block = new BlockFive();
break;
case 5:
block = new BlockSix();
break;
case 6:
block = new BlockSeven();
break;
default:
block = new BlockOne();
}
//隨機生成下一方塊類型
nextBlockType=(int) (Math.random() * 1000%7);
//在方塊提示區中顯示下一方塊
showNextBlock(nextBlockType);
}
if(block.getIsTop())
{//判斷方塊是否到頂,如果是則設置游戲結束標志
isEnd=true;
}
//獲取方塊當前動作,并進行相應的操作。
switch(block.getDirection()){
case 1://左移
block.left();
block.setDirection(block.NORMAL);
break;
case 2://右移
block.right();
block.setDirection(block.NORMAL);
break;
case 3://翻轉
block.turn();
block.setDirection(block.NORMAL);
break;
case 4://下落到底部
block.downToBottom();
block.setDirection(block.NORMAL);
break;
default://正常下落
if (!isEnd && !isPause) {
try {
Thread.sleep(speed/50);
}
catch (Exception ex) {}
if( count<50)
count++;
else
{
block.downOneLine();
count=0;
}
}
}
}
}
}
void jMenuItem1_mouseClicked(MouseEvent e) {
start();
}
void jMenuItem1_actionPerformed(ActionEvent e) {
start();
}
//鍵盤事件處理
void this_keyPressed(KeyEvent e) {
//判斷游戲狀態
if(!isEnd&&!isPause){
//根據鍵值設置方塊動作
if (e.getKeyCode() == KeyEvent.VK_UP) {
block.setDirection(block.TURN);
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
block.setDirection(block.DOWN);
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
block.setDirection(block.LEFT);
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
block.setDirection(block.RIGHT);
}
}
}
void jMenuItem2_actionPerformed(ActionEvent e) {
if(isPause){
isPause=false;
jMenuItem2.setText("暫停");
}else{
isPause=true;
jMenuItem2.setText("繼續");
}
}
void jRadioButtonMenuItem1_actionPerformed(ActionEvent e) {
initLevel = 1;
initSpeed = 500;
}
void jRadioButtonMenuItem2_actionPerformed(ActionEvent e) {
initLevel = 2;
initSpeed = 450;
}
void jRadioButtonMenuItem3_actionPerformed(ActionEvent e) {
initLevel = 3;
initSpeed = 400;
}
void jRadioButtonMenuItem4_actionPerformed(ActionEvent e) {
initLevel = 4;
initSpeed = 350;
}
void jRadioButtonMenuItem5_actionPerformed(ActionEvent e) {
initLevel = 5;
initSpeed = 300;
}
void jRadioButtonMenuItem6_actionPerformed(ActionEvent e) {
initLevel = 6;
initSpeed = 250;
}
void jRadioButtonMenuItem7_actionPerformed(ActionEvent e) {
initLevel = 7;
initSpeed = 200;
}
void jRadioButtonMenuItem8_actionPerformed(ActionEvent e) {
initLevel = 8;
initSpeed = 150;
}
void jRadioButtonMenuItem9_actionPerformed(ActionEvent e) {
initLevel = 9;
initSpeed = 100;
}
void jRadioButtonMenuItem10_actionPerformed(ActionEvent e) {
initLevel = 10;
initSpeed = 50;
}
}
class MainFrame_jMenuItem1_mouseAdapter extends java.awt.event.MouseAdapter {
MainFrame adaptee;
MainFrame_jMenuItem1_mouseAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.jMenuItem1_mouseClicked(e);
}
}
class MainFrame_jMenuItem1_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jMenuItem1_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuItem1_actionPerformed(e);
}
}
class MainFrame_this_keyAdapter extends java.awt.event.KeyAdapter {
MainFrame adaptee;
MainFrame_this_keyAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.this_keyPressed(e);
}
}
class MainFrame_jMenuItem2_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jMenuItem2_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuItem2_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem1_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem1_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem1_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem2_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem2_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem2_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem3_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem3_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem3_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem4_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem4_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem4_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem5_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem5_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem5_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem6_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem6_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem6_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem7_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem7_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem7_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem8_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem8_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem8_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem9_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem9_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem9_actionPerformed(e);
}
}
class MainFrame_jRadioButtonMenuItem10_actionAdapter implements java.awt.event.ActionListener {
MainFrame adaptee;
MainFrame_jRadioButtonMenuItem10_actionAdapter(MainFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonMenuItem10_actionPerformed(e);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -