版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告</p><p> 項(xiàng)目名稱: 俄羅斯方塊游戲 </p><p><b> 目 錄</b></p><p> 1. 系統(tǒng)概述……………………………………………… 3</p><p> 2. 項(xiàng)目開(kāi)發(fā)計(jì)劃書以及小組人
2、員分工表……………… 4</p><p> 3. 設(shè)計(jì)說(shuō)明書…………………………………………… 5</p><p> 4. 系統(tǒng)操作界面………………………………………… 7</p><p> 5. 源程序編碼…………………………………………… 28</p><p> 6. 測(cè)試計(jì)劃……………………………………………… 29&l
3、t;/p><p> 7. 改進(jìn)意見(jiàn)……………………………………………… 31</p><p> 8.課程設(shè)計(jì)心得體會(huì)……………………………… 32</p><p> 9. 參考書籍、資料……………………………………… 34</p><p><b> 系統(tǒng)概述</b></p><p&g
4、t;<b> 1.1現(xiàn)狀分析</b></p><p> 在個(gè)人電腦日益普及的今天,一些有趣的桌面游戲已經(jīng)成為人們?cè)谑褂糜?jì)算機(jī)進(jìn)行工作或?qū)W習(xí)之余休閑娛樂(lè)的首選,而俄羅斯方塊游戲是人們最熟悉的小游戲之一,它以其趣味性強(qiáng),易上手等諸多特點(diǎn)得到了大眾的認(rèn)可,因此開(kāi)發(fā)此游戲軟件可滿足人們的一些娛樂(lè)的需求。</p><p> 此俄羅斯方塊游戲可以為用戶提供一個(gè)可在普通個(gè)人電
5、腦上運(yùn)行的,界面美觀的,易于控制的俄羅斯方塊游戲。</p><p><b> 1.2項(xiàng)目要求</b></p><p> 俄羅斯方塊游戲是一款適合大眾的游戲軟件,它適合不同年齡的人玩。本軟件要實(shí)現(xiàn)的功能如下:(1)游戲區(qū):玩家可以在游戲區(qū)中堆積方塊,并能夠在游戲過(guò)程中隨時(shí)了解得分情況。</p><p> ?。?)游戲控制:玩家可以通過(guò)游戲控制
6、功能來(lái)選擇開(kāi)始新的一局游戲,暫?;蛲顺鲇螒?。</p><p> 級(jí)別設(shè)置:玩家可以根據(jù)自己的需要自行設(shè)定游戲的開(kāi)始級(jí)別,級(jí)別越高,游戲的速度越快,難度越大。</p><p> 1.3系統(tǒng)功能模塊示意圖</p><p> 項(xiàng)目開(kāi)發(fā)計(jì)劃書以及小組人員分工表</p><p> 1.1 項(xiàng)目開(kāi)發(fā)計(jì)劃書</p><p>
7、 1.2 小組人員分工表</p><p><b> 設(shè)計(jì)說(shuō)明</b></p><p><b> 1.1游戲區(qū)模塊</b></p><p><b> 1.2控制區(qū)模塊</b></p><p><b> 1.3系統(tǒng)流程圖</b></p>
8、<p><b> 1.4模塊簡(jiǎn)介</b></p><p><b> 功能模塊</b></p><p> ?。?)游戲區(qū)模塊(創(chuàng)建游戲區(qū),處理玩家操作,顯示操作結(jié)果)</p><p> (2)游戲控制模塊(開(kāi)始,暫停繼續(xù),提高等級(jí),降低等級(jí),停止,新游戲,幫助)</p><p>&l
9、t;b> 系統(tǒng)操作界面</b></p><p> 游戲打開(kāi)界面 </p><p><b> 游戲進(jìn)行中界面</b></p><p><b> 源程序編碼</b></p><p> import javax.swing.*;&l
10、t;/p><p> import java.awt.*;</p><p> import javax.swing.border.Border;</p><p> import java.awt.event.*;</p><p> public class ErsBlocksGame extends JFrame {</p>
11、<p> public final static int alinescore = 100;</p><p> public final static int everylevelscore = alinescore * 20;</p><p> public final static int maxlevel = 10;</p><p> pub
12、lic final static int initlevel = 5;</p><p> private GameCanvas canvas;</p><p> private ErsBlock block;</p><p> private boolean playing = false;</p><p> private Cont
13、rolPanel ctrlPanel;</p><p> private JMenuBar bar = new JMenuBar();</p><p> private JMenu</p><p> mGame = new JMenu("游戲"),</p><p> mControl = new JMenu(&qu
14、ot;控制"),</p><p> mhelp = new JMenu("幫助");</p><p> private JMenuItem</p><p> miNewGame = new JMenuItem("新游戲"),</p><p> milevelup = new JMenu
15、Item("提高級(jí)數(shù)"),</p><p> mileveldown = new JMenuItem("降低級(jí)數(shù)"),</p><p> miExit = new JMenuItem("退出"),</p><p> miPlay = new JMenuItem("開(kāi)始"),<
16、/p><p> miPause = new JMenuItem("暫停"),</p><p> miResume = new JMenuItem("重新開(kāi)始"),</p><p> miStop = new JMenuItem("停止"),</p><p> miCtrlBloc
17、k = new JMenuItem("方塊控制鍵");</p><p> public ErsBlocksGame(String title)</p><p><b> {</b></p><p> super(title);</p><p> setSize(315, 392);</p
18、><p> Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();</p><p> setLocation((scrSize.width - getSize().width) / 2,</p><p> (scrSize.height - getSize().height) / 2);&l
19、t;/p><p> createMenu();</p><p> Container container = getContentPane();</p><p> container.setLayout(new BorderLayout(6, 0));</p><p> canvas = new GameCanvas(20, 12);&l
20、t;/p><p> ctrlPanel = new ControlPanel(this);</p><p> container.add(canvas, BorderLayout.CENTER);</p><p> container.add(ctrlPanel, BorderLayout.EAST);</p><p> addWindo
21、wListener(new WindowAdapter() {</p><p> public void windowClosing(WindowEvent we) {</p><p> stopGame();</p><p> System.exit(0);</p><p><b> }</b></p&g
22、t;<p><b> });</b></p><p> addComponentListener(new ComponentAdapter() {</p><p> public void componentResized(ComponentEvent ce) {</p><p> canvas.fanning(); &l
23、t;/p><p><b> }</b></p><p><b> });</b></p><p><b> show();</b></p><p> canvas.fanning();</p><p><b> }</b>&l
24、t;/p><p> private void createMenu()</p><p><b> {</b></p><p> bar.add(mGame);</p><p> bar.add(mControl);</p><p> bar.add(mhelp);</p>&l
25、t;p> mGame.add(miNewGame);</p><p> mGame.addSeparator();</p><p> mGame.add(milevelup);</p><p> mGame.addSeparator();</p><p> mGame.add(mileveldown);</p>
26、<p> mGame.addSeparator();</p><p> mGame.add(miExit);</p><p> mControl.add(miPlay);</p><p> mControl.addSeparator();</p><p> mControl.add(miPause);</p>
27、<p> mControl.addSeparator();</p><p> mControl.add(miResume);</p><p> mControl.addSeparator();</p><p> mControl.add(miStop);</p><p> mhelp.add(miCtrlBlock);&
28、lt;/p><p> setJMenuBar(bar);</p><p> miNewGame.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae) </p><p><b> {</b&g
29、t;</p><p> stopGame();</p><p><b> reset();</b></p><p> setLevel(initlevel);</p><p><b> }</b></p><p><b> });</b><
30、;/p><p> mileveldown.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae)</p><p><b> {</b></p><p> int curLevel = g
31、etLevel();</p><p> if (curLevel > 1) </p><p> setLevel(curLevel - 1);</p><p><b> }</b></p><p><b> });</b></p><p> milevelup
32、.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae)</p><p><b> {</b></p><p> int curLevel = getLevel();</p><p>
33、 if (curLevel > 1) </p><p> setLevel(curLevel+1);</p><p><b> }</b></p><p><b> });</b></p><p> miExit.addActionListener(new ActionListene
34、r() {</p><p> public void actionPerformed(ActionEvent ae) </p><p><b> {</b></p><p> System.exit(0);</p><p><b> }</b></p><p><
35、;b> });</b></p><p> miPlay.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae)</p><p><b> {</b></p><p>
36、; playGame();</p><p><b> }</b></p><p><b> });</b></p><p> miPause.addActionListener(new ActionListener() {</p><p> public void actionPerfor
37、med(ActionEvent ae)</p><p><b> {</b></p><p> pauseGame();</p><p><b> }</b></p><p><b> });</b></p><p> miResume.add
38、ActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae)</p><p><b> {</b></p><p> resumeGame();</p><p><b> }</
39、b></p><p><b> });</b></p><p> miStop.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae)</p><p><b> {&
40、lt;/b></p><p> stopGame();</p><p><b> }</b></p><p><b> });</b></p><p> miCtrlBlock.addActionListener(new ActionListener() {</p>&l
41、t;p> public void actionPerformed(ActionEvent ae) </p><p><b> { </b></p><p> reportGameMethod();</p><p><b> }</b></p><p><b> });&l
42、t;/b></p><p><b> }</b></p><p> public void reset() </p><p><b> {</b></p><p> ctrlPanel.reset(); </p><p> canvas.reset(); &l
43、t;/p><p><b> }</b></p><p> public boolean isPlaying() </p><p><b> {</b></p><p> return playing;</p><p><b> }</b></
44、p><p> public ErsBlock getCurBlock()</p><p><b> {</b></p><p> return block;</p><p><b> }</b></p><p> public GameCanvas getCanvas(
45、)</p><p><b> {</b></p><p> return canvas;</p><p><b> }</b></p><p> public void playGame()</p><p><b> {</b></p&g
46、t;<p><b> play();</b></p><p> ctrlPanel.setPlayButtonEnable(false);</p><p> miPlay.setEnabled(false);</p><p> ctrlPanel.requestFocus();</p><p>&l
47、t;b> }</b></p><p> public void pauseGame() </p><p><b> {</b></p><p> if (block != null) </p><p> block.pauseMove();</p><p> ctrl
48、Panel.setPauseButtonLabel(false);</p><p> miPause.setEnabled(false);</p><p> miResume.setEnabled(true);</p><p><b> }</b></p><p> public void resumeGame(
49、) </p><p><b> {</b></p><p> if (block != null)</p><p> block.resumeMove();</p><p> ctrlPanel.setPauseButtonLabel(true);</p><p> miPause.se
50、tEnabled(true);</p><p> miResume.setEnabled(false);</p><p> ctrlPanel.requestFocus();</p><p><b> }</b></p><p> public void stopGame()</p><p&g
51、t;<b> {</b></p><p> playing = false;</p><p> if (block != null)</p><p> block.stopMove();</p><p> miPlay.setEnabled(true);</p><p> miPaus
52、e.setEnabled(true);</p><p> miResume.setEnabled(false);</p><p> ctrlPanel.setPlayButtonEnable(true);</p><p> ctrlPanel.setPauseButtonLabel(true);</p><p><b> }
53、</b></p><p> public int getLevel() </p><p><b> {</b></p><p> return ctrlPanel.getLevel();</p><p><b> }</b></p><p> publi
54、c void setLevel(int level)</p><p><b> {</b></p><p> if (level < 11 && level > 0) ctrlPanel.setLevel(level);</p><p><b> }</b></p><
55、p> public int getScore() </p><p><b> {</b></p><p> if (canvas != null)</p><p> return canvas.getScore();</p><p><b> return 0;</b></p&
56、gt;<p><b> }</b></p><p> public int getScoreForLevelUpdate()</p><p><b> {</b></p><p> if (canvas != null) </p><p> return canvas.get
57、ScoreForLevelUpdate();</p><p><b> return 0;</b></p><p><b> }</b></p><p> public boolean levelUpdate()</p><p><b> {</b></p>
58、<p> int curLevel = getLevel();</p><p> if (curLevel < maxlevel)</p><p><b> {</b></p><p> setLevel(curLevel + 1);</p><p> canvas.resetScoreFo
59、rLevelUpdate();</p><p> return true;</p><p><b> }</b></p><p> return false;</p><p><b> }</b></p><p> private void play() {<
60、/p><p><b> reset();</b></p><p> playing = true;</p><p> Thread thread = new Thread(new Game());</p><p> thread.start();</p><p><b> }<
61、;/b></p><p> private void reportGameMethod() {</p><p> JOptionPane.showMessageDialog(this, "J為向左移動(dòng),L為向右移動(dòng),K為加速向下,I 為翻轉(zhuǎn)變化");</p><p><b> }</b></p>&
62、lt;p> private void reportGameOver() {</p><p> JOptionPane.showMessageDialog(this, "游戲結(jié)束!");</p><p><b> } </b></p><p> private class Game implements Runn
63、able </p><p><b> {</b></p><p> public void run() </p><p><b> {</b></p><p> int col = (int) (Math.random() * (canvas.getCols() - 3)),</p&g
64、t;<p> style = ErsBlock.STYLES[(int) (Math.random() * 7)][(int) </p><p> (Math.random() * 4)];</p><p> while (playing)</p><p><b> {</b></p><p>
65、if (block != null)</p><p><b> { </b></p><p> if (block.isAlive()) </p><p><b> {</b></p><p><b> try </b></p><p>&
66、lt;b> {</b></p><p> Thread.currentThread().sleep(100);</p><p> } catch (InterruptedException ie) </p><p><b> {</b></p><p> ie.printStackTrace(
67、);</p><p><b> }</b></p><p><b> continue;</b></p><p><b> }</b></p><p><b> }</b></p><p> checkFullLine()
68、; </p><p> if (isGameOver())</p><p><b> { </b></p><p> miPlay.setEnabled(true);</p><p> miPause.setEnabled(true);</p><p> miRes
69、ume.setEnabled(false);</p><p> ctrlPanel.setPlayButtonEnable(true);</p><p> ctrlPanel.setPauseButtonLabel(true);</p><p> reportGameOver();</p><p><b> return;&
70、lt;/b></p><p><b> }</b></p><p> block = new ErsBlock(style, -1, col, getLevel(), canvas);</p><p> block.start();</p><p> col = (int) (Math.random() *
71、 (canvas.getCols() - 3));</p><p> style = ErsBlock.STYLES[(int) (Math.random() * 7)][(int) </p><p> (Math.random() * 4)];</p><p> ctrlPanel.setShowBeforeStyle(style);</p>
72、<p><b> }</b></p><p><b> }</b></p><p> public void checkFullLine() </p><p> { int row ;</p><p> for (int i = 0; i < canvas.getRow
73、s(); i++)</p><p><b> {</b></p><p> //int row = 1;</p><p> boolean fullLineColorBox = true;</p><p> for (int j = 0; j < canvas.getCols(); j++) </p&
74、gt;<p><b> {</b></p><p> if (!canvas.getBox(i, j).isColorBox())</p><p><b> {</b></p><p> fullLineColorBox = false;</p><p><b>
75、break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if (fullLineColorBox)</p><p><b> {</b></p><p><b>
76、 row = i;</b></p><p> canvas.removeLine(row);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> pri
77、vate boolean isGameOver()</p><p><b> {</b></p><p> for (int i = 0; i < canvas.getCols(); i++)</p><p><b> {</b></p><p> ErsBox box = canva
78、s.getBox(0, i);</p><p> if (box.isColorBox()) </p><p> return true;</p><p><b> }</b></p><p> return false;</p><p><b> }</b><
79、;/p><p><b> }</b></p><p> public static void main(String[] args)</p><p><b> {</b></p><p> new ErsBlocksGame("俄羅斯方塊游戲");</p>&l
80、t;p><b> }</b></p><p><b> }</b></p><p> class ControlPanel extends JPanel</p><p><b> {</b></p><p> private JTextField</p&g
81、t;<p> tfLevel = new JTextField("" + ErsBlocksGame.initlevel),</p><p> tfScore = new JTextField("0");</p><p> private JButton</p><p> btPlay = new JBu
82、tton("開(kāi)始"),</p><p> btPause = new JButton("暫停"),</p><p> btStop = new JButton("停止"),</p><p> btTurnLevelUp = new JButton("提高等級(jí)"),</p>
83、;<p> btTurnLevelDown = new JButton("降低等級(jí)");</p><p> private JPanel showbefore = new JPanel(new BorderLayout());</p><p> private ShowBeforePanel plShowBeforeBlock = new Show
84、BeforePanel();</p><p> private JPanel plInfo = new JPanel(new GridLayout(4, 1));</p><p> private JPanel plButton = new JPanel(new GridLayout(5, 1));</p><p> private Timer timer;&
85、lt;/p><p> private ErsBlocksGame game;</p><p> public ControlPanel(final ErsBlocksGame game) {</p><p> setLayout(new GridLayout(3, 1, 0, 4));</p><p> this.game = game;
86、</p><p> showbefore.add(new JLabel("下一個(gè)方塊"), BorderLayout.NORTH);</p><p> showbefore.add(plShowBeforeBlock);</p><p> plInfo.add(new JLabel("等級(jí)"));</p>
87、<p> plInfo.add(tfLevel);</p><p> plInfo.add(new JLabel("得分"));</p><p> plInfo.add(tfScore); </p><p> tfLevel.setEditable(false);</p><p> tfScore.se
88、tEditable(false);</p><p> plButton.add(btPlay);</p><p> plButton.add(btPause);</p><p> plButton.add(btStop);</p><p> plButton.add(btTurnLevelUp);</p><p&g
89、t; plButton.add(btTurnLevelDown);</p><p> add( showbefore);</p><p> add(plInfo);</p><p> add(plButton);</p><p> addKeyListener(new ControlKeyListener());</p>
90、<p> btPlay.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae) {</p><p> game.playGame();</p><p><b> }</b></p>
91、<p><b> });</b></p><p> btPause.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae) {</p><p> if (btPause.getText().e
92、quals(new String("暫停"))) {</p><p> game.pauseGame();</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p>
93、<p> game.resumeGame();</p><p><b> }</b></p><p><b> }</b></p><p><b> });</b></p><p> btStop.addActionListener(new ActionL
94、istener() {</p><p> public void actionPerformed(ActionEvent ae) </p><p><b> {</b></p><p> game.stopGame();</p><p><b> }</b></p><p
95、><b> });</b></p><p> btTurnLevelUp.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae) {</p><p><b> try {</b>
96、</p><p> int level = Integer.parseInt(tfLevel.getText());</p><p> if (level < ErsBlocksGame.maxlevel)</p><p> tfLevel.setText("" + (level + 1));</p><p>
97、 } catch (NumberFormatException e) {}</p><p> requestFocus();</p><p><b> }</b></p><p><b> });</b></p><p> btTurnLevelDown.addActionListener
98、(new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae) </p><p><b> {</b></p><p><b> try {</b></p><p> int level = Integ
99、er.parseInt(tfLevel.getText());</p><p> if (level > 1)</p><p> tfLevel.setText("" + (level - 1));</p><p> } catch (NumberFormatException e) {}</p><p>
100、requestFocus();</p><p><b> }</b></p><p><b> });</b></p><p> addComponentListener(new ComponentAdapter() {</p><p> public void componentResiz
101、ed(ComponentEvent ce)</p><p><b> {</b></p><p> plShowBeforeBlock.fanning();</p><p><b> }</b></p><p><b> });</b></p><p
102、> timer = new Timer(500, new ActionListener() {</p><p> public void actionPerformed(ActionEvent ae) </p><p><b> {</b></p><p> tfScore.setText("" + game.
103、getScore());</p><p> int scoreForLevelUpdate =</p><p> game.getScoreForLevelUpdate();</p><p> if (scoreForLevelUpdate >= ErsBlocksGame.everylevelscore</p><p> &a
104、mp;& scoreForLevelUpdate > 0)</p><p> game.levelUpdate();</p><p><b> }</b></p><p><b> });</b></p><p> timer.start();</p><p
105、><b> }</b></p><p> public void setShowBeforeStyle(int style)</p><p><b> {</b></p><p> plShowBeforeBlock.setStyle(style);</p><p><b>
106、 }</b></p><p> public int getLevel() </p><p><b> {</b></p><p> int level = 0;</p><p><b> try {</b></p><p> level = Inte
107、ger.parseInt(tfLevel.getText());</p><p> } catch (NumberFormatException e) {}</p><p> return level;</p><p><b> }</b></p><p> public void setLevel(int le
108、vel) </p><p><b> {</b></p><p> if (level > 0 && level < 11)</p><p> tfLevel.setText("" + level);</p><p><b> }</b><
109、;/p><p> public void setPlayButtonEnable(boolean enable)</p><p><b> {</b></p><p> btPlay.setEnabled(enable);</p><p><b> }</b></p><p&
110、gt; public void setPauseButtonLabel(boolean pause) </p><p><b> {</b></p><p> btPause.setText(pause ? "暫停" : "繼續(xù)");</p><p><b> }</b>&l
111、t;/p><p> public void reset() </p><p><b> {</b></p><p> tfScore.setText("0");</p><p> plShowBeforeBlock.setStyle(0);</p><p><b>
112、; }</b></p><p> public void fanning()</p><p><b> {</b></p><p> plShowBeforeBlock.fanning();</p><p><b> }</b></p><p> pr
113、ivate class ShowBeforePanel extends JPanel</p><p><b> {</b></p><p> private Color backColor = Color.darkGray, frontColor = Color.red;</p><p> private ErsBox[][] boxes
114、 =new ErsBox[ErsBlock.boxes_rows][ErsBlock.boxes_cols];</p><p> private int style, boxWidth, boxHeight;</p><p> private boolean isTiled = false;</p><p> public ShowBeforePanel()
115、 </p><p><b> {</b></p><p> for (int i = 0; i < boxes.length; i++)</p><p><b> {</b></p><p> for (int j = 0; j < boxes[i].length; j++)&l
116、t;/p><p> boxes[i][j] = new ErsBox(false);</p><p><b> }</b></p><p><b> }</b></p><p> public ShowBeforePanel(Color backColor, Color frontColor)
117、</p><p><b> {</b></p><p><b> this();</b></p><p> this.backColor = backColor;</p><p> this.frontColor = frontColor;</p><p><b
118、> }</b></p><p> public void setStyle(int style) </p><p><b> {</b></p><p> this.style = style;</p><p> repaint();</p><p><b>
119、 }</b></p><p> public void paintComponent(Graphics g)</p><p><b> {</b></p><p> super.paintComponent(g);</p><p> if (!isTiled) </p><p&g
120、t; fanning();</p><p> int key = 0x8000;</p><p> for (int i = 0; i < boxes.length; i++)</p><p><b> {</b></p><p> for (int j = 0; j < boxes[i].leng
121、th; j++)</p><p><b> {</b></p><p> Color color = (((key & style) != 0) ? frontColor : backColor);</p><p> g.setColor(color);</p><p> g.fill3DRect(j *
122、 boxWidth, i * boxHeight,</p><p> boxWidth, boxHeight, true);</p><p> key >>= 1;</p><p><b> }</b></p><p><b> }</b></p><p>
123、;<b> }</b></p><p> public void fanning() </p><p><b> {</b></p><p> boxWidth = getSize().width / ErsBlock.boxes_cols;</p><p> boxHeight = ge
124、tSize().height / ErsBlock.boxes_rows;</p><p> isTiled = true;</p><p><b> }</b></p><p><b> }</b></p><p> private class ControlKeyListener ext
125、ends KeyAdapter</p><p><b> {</b></p><p> public void keyPressed(KeyEvent ke)</p><p><b> {</b></p><p> if (!game.isPlaying()) </p><
126、;p><b> return;</b></p><p> ErsBlock block = game.getCurBlock();</p><p> switch (ke.getKeyCode())</p><p><b> {</b></p><p> case KeyEvent.
127、VK_DOWN:</p><p> block.moveDown();</p><p><b> break;</b></p><p> case KeyEvent.VK_LEFT:</p><p> block.moveLeft();</p><p><b> break;&
128、lt;/b></p><p> case KeyEvent.VK_RIGHT:</p><p> block.moveRight();</p><p><b> break;</b></p><p> case KeyEvent.VK_UP:</p><p> block.turn
129、Next();</p><p><b> break;</b></p><p><b> default:</b></p><p><b> break;</b></p><p><b> }</b></p><p><
130、;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> class GameCanvas extends JPanel </p><p><b> {</b></p><p
131、> private Color backColor = Color.gray, frontColor = Color.green;</p><p> private int rows, cols, score = 0, scoreForLevelUpdate = 0;</p><p> private ErsBox[][] boxes;</p><p>
132、 private int boxWidth, boxHeight;</p><p> public GameCanvas(int rows, int cols)</p><p><b> {</b></p><p> this.rows = rows;</p><p> this.cols = cols;<
133、;/p><p> boxes = new ErsBox[rows][cols];</p><p> for (int i = 0; i < boxes.length; i++) </p><p><b> {</b></p><p> for (int j = 0; j < boxes[i].length
134、; j++)</p><p><b> {</b></p><p> boxes[i][j] = new ErsBox(false);</p><p><b> }</b></p><p><b> }</b></p><p><b>
135、 }</b></p><p> public GameCanvas(int rows, int cols,</p><p> Color backColor, Color frontColor) </p><p><b> {</b></p><p> this(rows, cols);</p
136、><p> this.backColor = backColor;</p><p> this.frontColor = frontColor;</p><p><b> }</b></p><p> public void setBackgroundColor(Color backColor)</p>
137、<p><b> {</b></p><p> this.backColor = backColor;</p><p><b> }</b></p><p> public Color getBackgroundColor()</p><p><b> {</b
138、></p><p> return backColor;</p><p><b> }</b></p><p> public void setBlockColor(Color frontColor)</p><p><b> {</b></p><p> t
139、his.frontColor = frontColor;</p><p><b> }</b></p><p> public Color getBlockColor()</p><p><b> {</b></p><p> return frontColor;</p>&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《c++俄羅斯方塊》課程設(shè)計(jì)--俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)報(bào)告
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 課程設(shè)計(jì)---俄羅斯方塊
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 課程設(shè)計(jì)--俄羅斯方塊設(shè)計(jì)報(bào)告
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊編程課程設(shè)計(jì)報(bào)告
- 俄羅斯方塊游戲課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告-俄羅斯方塊
- c課程設(shè)計(jì)--俄羅斯方塊
- 簡(jiǎn)單俄羅斯方塊課程設(shè)計(jì)
- java俄羅斯方塊課程設(shè)計(jì)
- 俄羅斯方塊課程設(shè)計(jì)論文
- arm課程設(shè)計(jì)俄羅斯方塊
- c語(yǔ)言課程設(shè)計(jì)報(bào)告-俄羅斯方塊
評(píng)論
0/150
提交評(píng)論