java游戏代码Word文件下载.docx
- 文档编号:21744480
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:49
- 大小:29.66KB
java游戏代码Word文件下载.docx
《java游戏代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《java游戏代码Word文件下载.docx(49页珍藏版)》请在冰豆网上搜索。
JTextArea
keyfocus;
//
键盘的操作焦点,隐藏于游戏画面之后
JButton
btnNew,
btnPause,
btnQuit;
showNextPiece
nextPieceArea;
预览下一方块
gameOpBoard
gameOpArea;
游戏画面
Container
c;
int
Level,
Score,
LineRemoved;
等级、得分、移除总行数
double
interval;
暂停时间,用于控制速度
boolean
pause;
是否暂停
Thread
loopThread;
游戏回圈执行绪
static
long
serialVersionUID
=
1;
JTetrix()
c
getContentPane();
//iconLogo
new
ImageIcon(JTetrix.class.getResource("
logo.jpg"
));
Level
Score
0;
LineRemoved
预览下一个方块的面版配置
nextPanel
JPanel();
nextPanel.setLayout(null);
nextPanel.setBorder(BorderFactory.createTitledBorder("
下一个"
nextPanel.setLocation(10,
10);
nextPanel.setSize(150,
120);
nextPieceArea
showNextPiece(5,
6,
15,
15);
nextPieceArea.generateNextPiece();
先产生第一片待取
nextPieceArea.setLocation(40,
20);
nextPanel.add(nextPieceArea);
等级、得分面版配置
scorePanel
scorePanel.setBorder(BorderFactory.createTitledBorder("
等级
/
得分"
scorePanel.setLocation(10,
140);
scorePanel.setSize(150,
160);
scorePanel.add(new
JLabel("
速度等级
"
scorePanel.add(labLevel
1"
SwingConstants.CENTER));
移除行数
scorePanel.add(labLine
0"
目前得分
scorePanel.add(labScore
功能面版配置
opPanel
opPanel.setBorder(BorderFactory.createTitledBorder("
"
opPanel.setLocation(10,
320);
opPanel.setSize(150,
130);
opPanel.add(btnNew
JButton("
开新游戏"
opPanel.add(btnPause
暂停游戏"
opPanel.add(btnQuit
关闭游戏"
游戏操作画面面版配置
gameOpArea
gameOpBoard(10,
22,
18,
18);
gameOpArea.setLocation(20,
gameOpArea.setCurrentPiece(nextPieceArea.getNextTetrix());
先取出一个方块
预览窗格产生下一个方块预览
gamePanel
gamePanel.setLayout(null);
gamePanel.setLocation(180,
gamePanel.setSize(12
*
24
gamePanel.setBorder(BorderFactory.createTitledBorder("
gamePanel.add(gameOpArea);
隐藏的操作面版配置
hidedOpPanel
hidedOpPanel.setLayout(new
BorderLayout());
hidedOpPanel.setLocation(200,
40);
hidedOpPanel.setSize(10
22
keyfocus
JTextArea();
keyfocus.setEditable(false);
hidedOpPanel.add(keyfocus);
加入面版至视窗
c.setLayout(null);
c.add(nextPanel);
c.add(scorePanel);
c.add(opPanel);
c.add(gamePanel);
c.add(hidedOpPanel);
键盘事件处理
keyfocus.addKeyListener(new
KeyAdapter()
void
keyPressed(KeyEvent
e)
key
e.getKeyCode();
if
(key
==
KeyEvent.VK_RIGHT)
gameOpArea.moveRight();
else
KeyEvent.VK_LEFT)
gameOpArea.moveLeft();
KeyEvent.VK_UP)
gameOpArea.RotateRL
(1);
KeyEvent.VK_DOWN)
gameOpArea.RotateRL(0);
KeyEvent.VK_SPACE)
gameOpArea.soonMoveDown();
}
});
开新游戏
btnNew.addActionListener(new
ActionListener()
actionPerformed(ActionEvent
newGame();
keyfocus.requestFocus();
暂停游戏
btnPause.addActionListener(new
pause
true;
JOptionPane.showOptionDialog(null,
程式名称:
\n
v0.1\n"
+
程式设计:
younganne\n"
简介:
一个用Java写的俄罗斯方块游戏\n"
关于JTetrix"
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
null);
false;
interval
2000
Level;
loopThread.interrupt();
关闭游戏
btnQuit.addActionListener(new
System.exit(0);
启动游戏回圈执行绪
loopThread
Thread(this);
loopThread.start();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("
JTetrix
v0.1"
);
setSize(420,
500);
setVisible(true);
游戏回圈的执行绪执行对象
run()
while
(true)
游戏回圈
try
(pause)
999999999;
(gameOpArea.isUpdated())
{//
由游戏画面的阵列是否更新来判断是否取出下一个
更新等级、得分等资讯
gameOpArea.getScore();
labScore.setText("
Score);
gameOpArea.getLineRemoved();
labLine.setText("
LineRemoved);
(int)
((Score
100)
100);
每一百分升级一次
labLevel.setText("
Level);
Thread.sleep((int)
interval);
gameOpArea.MoveDown();
不断下移
catch
(InterruptedException
newGame()
gameOpArea.newState();
main(String[]
args)
frm
JTetrix();
方块的资料结构与操作方法
TetrixPiece
pieceType;
方块样式
int[][]
coordinates
int[4][2];
四个方块,记录X与Y
TetrixPiece()
initialize((int)
(Math.random()
7
1));
TetrixPiece(int
type)
initialize(type);
向左转动
rotateLeft()
(pieceType
5)
不转动正方形方块
return;
tmp;
for
(int
i
<
4;
i++)
tmp
getXCoord(i);
setXCoord(i,
getYCoord(i));
setYCoord(i,
-tmp);
向右转动
rotateRight()
-getYCoord(i));
tmp);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 游戏 代码