2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  信息科學(xué)與工程學(xué)院</b></p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  題目: 小游戲程序程序開發(fā) </p><p>  課程設(shè)計(jì)任務(wù)書及成績(jī)?cè)u(píng)定</p><p> 課程設(shè)計(jì)的任務(wù)和具體要求任務(wù):

2、1、利用本學(xué)期所學(xué)的知識(shí),設(shè)計(jì)并開發(fā)出一個(gè)手機(jī)游戲或手機(jī)應(yīng)用小系統(tǒng)。手機(jī)游戲類例如:貪吃蛇游戲、挖雷游戲、五子棋游戲等;應(yīng)用小系統(tǒng)類,例如:手機(jī)短信的收發(fā)、通訊錄系統(tǒng)等。2、要求界面美觀、功能較齊全;設(shè)計(jì)要求:1、開始顯示初始化游戲界面,請(qǐng)稍后正在加載。2、進(jìn)入游戲列表,請(qǐng)選擇你要玩的游戲,選擇好進(jìn)入游戲。3、開始玩游戲,進(jìn)行小游戲運(yùn)行指導(dǎo)教師簽字: 、 日期:

3、 </p><p> 指導(dǎo)教師評(píng)語成績(jī): 指導(dǎo)教師簽字: 日期: </p><p> 課程設(shè)計(jì)所需軟件、硬件等硬件:計(jì)算機(jī)、打印機(jī)軟件:KVM Ecipse、WTK2.5.2 Java ME</p><p> 課程設(shè)計(jì)進(jìn)度計(jì)劃</p><p> 

4、起至日期工作內(nèi)容備注</p><p> 2012/5/1—2012/5/152012/5/15—2012/6/12012/6/1—2012/6/15確定程序編寫代碼撰寫設(shè)計(jì)書</p><p> 參考文獻(xiàn)、資料索引</p><p> 序號(hào)文獻(xiàn)、資料名稱編著者出版單位</p><p> 1、《基于Eclipse環(huán)境的J2ME應(yīng)用程序開發(fā)》 萬輝

5、 王軍@編著 清華大學(xué)出版社2、《J2ME應(yīng)用教程》 陳旭東,徐保民@編著.清華大學(xué)出版社3、《J2ME移動(dòng)設(shè)備程序設(shè)計(jì)》 胡虛懷 李換@編著.清華大學(xué)出版社.4、《J2ME開發(fā)精講》 詹建飛@編著.電子工業(yè)出版社.5、《J2ME技術(shù)開發(fā)與應(yīng)用》 李研 劉晶晶@編著.機(jī)械工業(yè)出版社.</p><p><b>  摘 要</b></p><p>  J2ME平臺(tái)被認(rèn)

6、為是最杰出的手機(jī)游戲平臺(tái),它為開發(fā)者、設(shè)備制造商、網(wǎng)絡(luò)通信公司和消費(fèi)者廣泛接受。它有一些非常重要的特征對(duì)所有組織都有益。因?yàn)镴2ME應(yīng)用在不同設(shè)備上都是便攜式的,他們常??稍诰W(wǎng)絡(luò)上下載和執(zhí)行。</p><p>  本設(shè)計(jì)通過Alert和Gauge設(shè)計(jì)的進(jìn)度條,進(jìn)行加載游戲等待。</p><p>  通過用List設(shè)計(jì)一個(gè)游戲列表,進(jìn)行選擇游戲。</p><p>  

7、上面的Alert、Form(Gauge)和List是Screen高級(jí)編程的代表,看出Screen都是全屏顯示的,對(duì)屏幕的顯示設(shè)計(jì)是離不開的。</p><p>  通過Canvas或gameCanvas才能畫到屏幕上,通過他們以及各種類庫來進(jìn)行設(shè)計(jì)貪吃蛇和掃雷游戲,最后編程實(shí)現(xiàn)了全過程。</p><p>  本游戲如我們手機(jī)上的小游戲差不多,比較人性化的,合理的設(shè)計(jì),由于本人能力有限時(shí)間有限

8、只能做的這樣,希望大家好好看看,通過本次實(shí)驗(yàn)設(shè)計(jì)可以吧高級(jí)編程和低級(jí)編程都進(jìn)行系統(tǒng)的掌握一下。</p><p><b>  關(guān)鍵詞:</b></p><p>  J2ME 面向?qū)ο?Canvas gameCanvas Alert List Gauge</p><p><b>  目錄</b></p>

9、<p><b>  1、設(shè)計(jì)內(nèi)容3</b></p><p><b>  2、設(shè)計(jì)過程3</b></p><p>  2.1 設(shè)計(jì)方案的論證3</p><p>  2.2、界面設(shè)計(jì)3</p><p><b>  3、設(shè)計(jì)內(nèi)容6</b></p>

10、<p><b>  3.1程序代碼6</b></p><p>  3.1.1 MIDlet主程序代碼(gameCanvas)6</p><p>  3.1.3 掃雷游戲代碼(MineCanvas)同貪吃蛇類似16</p><p><b>  4、實(shí)現(xiàn)結(jié)果16</b></p><p&g

11、t;  4.1游戲加載框16</p><p>  4.2游戲選擇框17</p><p>  4.3貪吃蛇游戲18</p><p>  4.4 掃雷游戲19</p><p><b>  5、實(shí)驗(yàn)小結(jié)19</b></p><p><b>  1、設(shè)計(jì)內(nèi)容</b><

12、/p><p>  本設(shè)計(jì)是從設(shè)計(jì)界面開始的,從游戲的加載,在進(jìn)入游戲的選擇列表,你想玩那個(gè)游戲就玩那個(gè)游戲,給人們提供方便,貪吃蛇和掃雷是個(gè)老幼皆宜的小游戲,貪吃蛇游戲是用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻向上、向左、向右和向下操作,(控制鍵的實(shí)現(xiàn)是由鍵盤的方向鍵的消息函數(shù)實(shí)現(xiàn))遇到食物就進(jìn)行加長(zhǎng)蛇身,就這樣不斷的加長(zhǎng)。掃雷吧就是先設(shè)計(jì)個(gè)方格框有插旗、有數(shù)字、有雷,雷的出現(xiàn)是隨機(jī)的。</p><p>

13、;<b>  2、設(shè)計(jì)過程</b></p><p>  2.1 設(shè)計(jì)方案的論證</p><p>  J2ME語言繼承了JAVA語言易學(xué)易用的特點(diǎn),特別適合于初學(xué)者學(xué)系統(tǒng)編程。隨著21世紀(jì)信息社會(huì)的到來,計(jì)算機(jī)在人們的工作和生活中的深入,要求我們?cè)絹碓蕉嗟嘏c計(jì)算機(jī)打交道,為了使用戶在繁忙的日程工作中得到放松,于是出現(xiàn)了各種各樣的休閑軟件,如聊天工具,游戲等等。通過這學(xué)期

14、來J2ME課程的學(xué)習(xí),我初步掌握了J2ME語言的最基本的知識(shí),于是老師的指導(dǎo)下動(dòng)手用J2ME編寫小游戲(貪吃蛇和掃雷)。</p><p>  游戲是用來給大家娛樂的,所以要能在使用的過程中給大家?guī)砜鞓罚蠹业钠?,激發(fā)大家的娛樂激情。從本游戲的從設(shè)計(jì)界面出發(fā),主要就是本設(shè)計(jì)是從設(shè)計(jì)界面開始的,從游戲的加載,在進(jìn)入游戲的選擇列表,你想玩那個(gè)游戲就玩那個(gè)游戲,給人們提供方便,貪吃蛇和掃雷是個(gè)老幼皆宜的小游戲,貪

15、吃蛇游戲是用戶根據(jù)鍵盤的四個(gè)方向鍵控制翻向上、向左、向右和向下操作,(控制鍵的實(shí)現(xiàn)是由鍵盤的方向鍵的消息函數(shù)實(shí)現(xiàn))遇到食物就進(jìn)行加長(zhǎng)蛇身,就這樣不斷的加長(zhǎng)。掃雷吧就是先設(shè)計(jì)個(gè)方格框有插旗、有數(shù)字、有雷,雷的出現(xiàn)是隨機(jī)的。</p><p><b>  2.2、界面設(shè)計(jì)</b></p><p>  如圖1(代碼流程):</p><p>  如圖2(

16、界面流程圖):</p><p><b>  3、設(shè)計(jì)內(nèi)容</b></p><p><b>  3.1程序代碼</b></p><p>  3.1.1 MIDlet主程序代碼(gameCanvas)</p><p>  import javax.microedition.lcdui.Alert;<

17、;/p><p>  import javax.microedition.lcdui.AlertType;</p><p>  import javax.microedition.lcdui.Choice;</p><p>  import javax.microedition.lcdui.Command;</p><p>  import jav

18、ax.microedition.lcdui.CommandListener;</p><p>  import javax.microedition.lcdui.Display;</p><p>  import javax.microedition.lcdui.Displayable;</p><p>  import javax.microedition.lcd

19、ui.Form;</p><p>  import javax.microedition.lcdui.Gauge;</p><p>  import javax.microedition.lcdui.Image;</p><p>  import javax.microedition.lcdui.Item;</p><p>  import

20、javax.microedition.lcdui.ItemCommandListener;</p><p>  import javax.microedition.lcdui.List;</p><p>  import javax.microedition.lcdui.StringItem;</p><p>  import javax.microedition.

21、lcdui.TextBox;</p><p>  import javax.microedition.lcdui.TextField;</p><p>  import javax.microedition.midlet.MIDlet;</p><p>  import javax.microedition.midlet.MIDletStateChangeExcep

22、tion;</p><p>  public class gameMIDlet extends MIDlet implements Runnable,CommandListener{</p><p><b>  /**顯示*/</b></p><p>  private Display display;</p><p>

23、  private SnakeCanvas snakecanvas;</p><p>  private MineCanvas minecanvas;</p><p>  public static gameMIDlet instance;</p><p><b>  /**加載提示*/</b></p><p>  p

24、rivate Alert alert;</p><p><b>  /**加載條*/</b></p><p>  private Gauge gauge;</p><p><b>  /**數(shù)目列表*/</b></p><p>  private List list;</p><

25、p>  private int curgameIndex = 0;</p><p><b>  /**初始時(shí)間*/</b></p><p>  long firstTime;</p><p>  private Image image;</p><p>  private final Command cmdEnte

26、r = new Command("進(jìn)入",Command.OK,1);</p><p>  private final Command cmdExit = new Command("退出",Command.EXIT,1);</p><p>  private final Command cmdBack = new Command("返回&q

27、uot;,Command.BACK,1);</p><p><b>  /**游戲名*/</b></p><p>  private String[] bookName = {"貪吃蛇","掃雷","紙牌","推箱子"};</p><p>  public game

28、MIDlet() {</p><p>  // TODO Auto-generated constructor stub</p><p>  display = Display.getDisplay(this);</p><p>  alert = new Alert("游戲啟動(dòng)中",null,null,AlertType.INFO);</

29、p><p>  gauge = new Gauge(null,false,5,1);</p><p>  alert.setIndicator(gauge);</p><p>  alert.setTimeout(6000);</p><p>  firstTime = System.currentTimeMillis();</p>

30、<p>  minecanvas= new MineCanvas();</p><p>  snakecanvas=new SnakeCanvas();</p><p>  image = createImage("/123.png");</p><p>  list = new List("游戲名",Choice

31、.IMPLICIT,bookName,new Image[]{image,image});</p><p>  list.addCommand(cmdEnter);</p><p>  list.addCommand(cmdExit);</p><p>  list.setCommandListener(this);</p><p>  ne

32、w Thread(this).start();</p><p><b>  }</b></p><p>  private Image createImage(String file){</p><p>  Image image = null;</p><p><b>  try{</b><

33、/p><p>  image = Image.createImage(file);</p><p>  }catch(Exception e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return image;<

34、/p><p><b>  }</b></p><p>  protected void destroyApp(boolean arg0){</p><p>  // TODO Auto-generated method stub</p><p><b>  }</b></p><p&

35、gt;  protected void pauseApp() {</p><p>  // TODO Auto-generated method stub</p><p><b>  }</b></p><p>  protected void startApp(){</p><p>  // TODO Auto-gen

36、erated method stub</p><p>  display.setCurrent(alert);</p><p><b>  }</b></p><p>  public void exitApp(){</p><p><b>  try {</b></p><p&

37、gt;  destroyApp(true);</p><p>  notifyDestroyed();</p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p>

38、<p><b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 控制進(jìn)度提示</b></p><p><b>  */</b></p

39、><p>  public void run() {</p><p>  // TODO Auto-generated method stub</p><p>  while(true){</p><p>  int time = (int)(System.currentTimeMillis() - firstTime);</p>

40、<p>  gauge.setValue(time/1000);</p><p>  if(time >= alert.getTimeout()){</p><p>  //alert.setString("歡迎進(jìn)入游戲,請(qǐng)稍后");</p><p>  //sleep(1000);</p><p>

41、  display.setCurrent(list);</p><p>  alert.setIndicator(null);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p>

42、<p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 各個(gè)窗體事件</b></p><p><b>  */</b></p><p>  public void commandAction(

43、Command command, Displayable displayable) {</p><p>  // TODO Auto-generated method stub</p><p>  if(command == cmdEnter){</p><p>  if(displayable.equals(list)){</p><p>

44、  curgameIndex = list.getSelectedIndex();</p><p>  if(curgameIndex==0){</p><p>  display.setCurrent(snakecanvas);</p><p>  }else if(curgameIndex==1){</p><p>  display.s

45、etCurrent(minecanvas);</p><p>  }else if(curgameIndex==2){}</p><p>  }else if(curgameIndex==3){}</p><p>  }else if(command == cmdExit){</p><p>  notifyDestroyed();&

46、lt;/p><p>  destroyApp(true);</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.1.2 貪吃蛇游戲代碼(SnakeCanvas)&

47、lt;/p><p>  import java.util.Random;</p><p>  import javax.microedition.lcdui.Canvas;</p><p>  import javax.microedition.lcdui.Graphics;</p><p>  public class SnakeCanvas

48、extends Canvas implements Runnable {</p><p>  /**食物的左上角X坐標(biāo)*/</p><p>  private int foodX;</p><p>  /**食物的左上角Y坐標(biāo)*/</p><p>  private int foodY;</p><p>  /**食物

49、的顏色值*/</p><p>  private int foodC;</p><p><b>  /**貪吃蛇*/</b></p><p>  private int[] snake = new int[200*3];</p><p>  /**貪吃蛇食物寬度*/</p><p>  priva

50、te final int SNAKE_W = 4;</p><p>  /**貪吃蛇食物長(zhǎng)度*/</p><p>  private final int SNAKE_H = 4;</p><p>  /**貪吃蛇的身體長(zhǎng)度,即包含食物的個(gè)數(shù)*/</p><p>  private int snakeNum;</p><p&

51、gt;<b>  /**方向變量*/</b></p><p>  private int direction;</p><p><b>  /**方向上*/</b></p><p>  private final int DIR_UP = 0;</p><p><b>  /**方向下*/

52、</b></p><p>  private final int DIR_DOWN = 1;</p><p><b>  /**方向左*/</b></p><p>  private final int DIR_LEFT = 2;</p><p><b>  /**方向右*/</b>&l

53、t;/p><p>  private final int DIR_RIGHT = 3;</p><p>  /**Random對(duì)象,控制食物的隨機(jī)出現(xiàn)*/</p><p>  Random random = new Random();</p><p>  /**可選顏色值*/</p><p>  private final

54、 int[] COLOR = {0xff0000,0x00ff00,0x0000ff,0xffff00,0xff00ff,0x00ffff,0xff000f};</p><p><b>  /**線程對(duì)象*/</b></p><p>  private Thread thread;</p><p>  /**線程控制變量*/</p>

55、<p>  private boolean isShow = true;</p><p>  /**游戲是否退出控制變量*/</p><p>  private boolean isExit = false;</p><p><b>  /**屏幕寬*/</b></p><p>  private int

56、SCREEN_W;</p><p><b>  /**屏幕高*/</b></p><p>  private int SCREEN_H;</p><p>  public SnakeCanvas() {</p><p>  // TODO Auto-generated constructor stub</p>

57、<p>  /**獲取屏幕寬度和高度*/</p><p>  SCREEN_W = this.getWidth();</p><p>  SCREEN_H = this.getHeight();</p><p>  //初始化貪吃蛇的長(zhǎng)度</p><p>  snakeNum = 7;</p><p> 

58、 for(int i = 0;i < snakeNum;i++){</p><p>  snake[i*3+0] = 100 - SNAKE_W * i;</p><p>  snake[i*3+1] = 40;</p><p>  snake[i*3+2] = COLOR[i%7];</p><p><b>  }</

59、b></p><p>  //初始化貪吃蛇的移動(dòng)方向</p><p>  direction = DIR_RIGHT;</p><p><b>  //初始化食物坐標(biāo)</b></p><p>  foodX = 100;</p><p>  foodY = 100;</p>&

60、lt;p>  foodC = 0xff;</p><p><b>  //啟動(dòng)游戲線程</b></p><p>  thread = new Thread(this);</p><p>  thread.start();</p><p><b>  }</b></p><p

61、>  public void run() {</p><p>  // TODO Auto-generated method stub</p><p>  while(true){</p><p>  //游戲邏輯控制循環(huán)體</p><p>  while(isShow){</p><p>  //獲取每一幀的開

62、始時(shí)間點(diǎn)</p><p>  long st = System.currentTimeMillis();</p><p>  //游戲主邏輯控制函數(shù)</p><p><b>  main();</b></p><p><b>  //刷新屏幕</b></p><p>  re

63、paint();</p><p>  serviceRepaints();</p><p>  //獲取每一幀邏輯處理完后的時(shí)間點(diǎn)與開始時(shí)間點(diǎn)之間的時(shí)間差</p><p>  int ct = (int)(System.currentTimeMillis() - st);</p><p>  //設(shè)置游戲幀的睡眠時(shí)間</p>&

64、lt;p>  if(ct < 300){</p><p><b>  try{</b></p><p>  Thread.sleep(300 - ct);</p><p>  }catch(Exception e){</p><p>  e.printStackTrace();</p><

65、p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //游戲退出控制</b></p><p>  if(isExit){</p><p>  

66、gameMIDlet.instance.exitApp();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void main(){</p><p&g

67、t;  /**先判斷是否能吃到食物*/</p><p>  //定義貪吃蛇下一步的位移量</p><p>  int stepX = 0;</p><p>  int stepY = 0;</p><p>  //判斷方向,以便得到貪吃蛇下一步的位移量</p><p>  switch(direction){</

68、p><p>  case DIR_UP:</p><p>  stepY = -SNAKE_H;</p><p><b>  break;</b></p><p>  case DIR_DOWN:</p><p>  stepY = SNAKE_H;</p><p><b

69、>  break;</b></p><p>  case DIR_LEFT:</p><p>  stepX = -SNAKE_W;</p><p><b>  break;</b></p><p>  case DIR_RIGHT:</p><p>  stepX = SNAK

70、E_W;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  //得到貪吃蛇蛇頭下一步的位置</p><p>  int newX = snake[0*3+0] + stepX;</p><p>  int newY

71、= snake[0*3+1] + stepY;</p><p>  //判斷下一步是否有食物,如果有則吞食,并隨機(jī)再在屏幕內(nèi),蛇身外生成新的食物</p><p>  if(newX == foodX && newY == foodY){</p><p>  snakeNum++;</p><p>  for(int i=sna

72、keNum - 1; i > 0; i--)</p><p><b>  {</b></p><p>  snake[i*3+0] = snake[(i-1)*3+0];</p><p>  snake[i*3+1] = snake[(i-1)*3+1];</p><p>  snake[i*3+2] = snak

73、e[(i-1)*3+2];</p><p><b>  }</b></p><p>  snake[0*3+0] = foodX;</p><p>  snake[0*3+1] = foodY;</p><p>  snake[0*3+2] = foodC;</p><p>  //食物被吃掉后需

74、要生成新的食物</p><p>  makeFood();</p><p><b>  }</b></p><p>  /**判斷下一步是否超出屏幕而越界,或者碰到自身,游戲結(jié)束*/</p><p>  if(isGameOver()){</p><p>  isShow = false;<

75、/p><p>  isExit = true;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  /**蛇身移動(dòng)過程*/</p><p>  for(int i = snakeNum - 1;i > 0;i--)

76、{</p><p>  snake[i*3+0] = snake[(i-1)*3+0];</p><p>  snake[i*3+1] = snake[(i-1)*3+1];</p><p><b>  }</b></p><p>  //第一個(gè)單元格移動(dòng)</p><p>  stepX = 0;

77、</p><p>  stepY = 0;</p><p>  switch(direction){</p><p>  case DIR_UP:</p><p>  stepY = -SNAKE_H;</p><p><b>  break;</b></p><p>  

78、case DIR_DOWN:</p><p>  stepY = SNAKE_H;</p><p><b>  break;</b></p><p>  case DIR_LEFT:</p><p>  stepX = -SNAKE_W;</p><p><b>  break;<

79、/b></p><p>  case DIR_RIGHT:</p><p>  stepX = SNAKE_W;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  snake[0*3+0] += stepX;&

80、lt;/p><p>  snake[0*3+1] += stepY;</p><p>  if(snake[0*3+0]==0){</p><p>  snake[0*3+0]=SCREEN_W - SNAKE_W;</p><p>  }else if(snake[0*3+0]==SCREEN_W - SNAKE_W){</p>

81、<p>  snake[0*3+0]=0;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  *生成新的食物</b></p>&l

82、t;p><b>  */</b></p><p>  private void makeFood(){</p><p><b>  //食物坐標(biāo)</b></p><p>  foodX = Math.abs(random.nextInt() % (SCREEN_W - SNAKE_W + 1)) / SNAKE_W

83、* SNAKE_W;</p><p>  foodY = Math.abs(random.nextInt() % (SCREEN_H - SNAKE_H + 1)) / SNAKE_H * SNAKE_H;</p><p><b>  //食物顏色</b></p><p>  foodC = COLOR[Math.abs(random.next

84、Int()%COLOR.length)];</p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 判斷游戲是否結(jié)束</p><p><b>  * 結(jié)束條件:</b></p><p>  *

85、 1、蛇頭超出邊界</p><p>  * 2、蛇頭碰到自身</p><p><b>  */</b></p><p>  private boolean isGameOver(){</p><p><b>  //邊界判別</b></p><p>  //

86、 if(snake[0*3+0] < 0 || snake[0*3+0] > (SCREEN_W - SNAKE_W) ||</p><p>  // snake[0*3+1] < 0 || snake[0*3+1] > (SCREEN_H - SNAKE_H)){</p><p>  // retu

87、rn true;</p><p>  // }</p><p><b>  //碰到自身</b></p><p>  for(int i = 4;i < snakeNum;i++){</p><p>  if(snake[0*3+0] == snake[i*3+0]</p><p&

88、gt;  && snake[0*3+1] == snake[i*3+1]){</p><p>  return true;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return false;</p><p

89、><b>  }</b></p><p><b>  /**</b></p><p><b>  * 繪制函數(shù)</b></p><p><b>  */</b></p><p>  protected void paint(Graphics g) {

90、</p><p>  // TODO Auto-generated method stub</p><p><b>  //屏幕擦除</b></p><p>  g.setColor(0);</p><p>  g.fillRect(0,0,SCREEN_W,SCREEN_H);</p><p>

91、<b>  //繪制貪吃蛇</b></p><p>  for(int i=0; i<snakeNum; i++){</p><p>  drawSnake(g,snake[i*3+0],snake[i*3+1],snake[i*3+2]);</p><p><b>  }</b></p><p&

92、gt;<b>  //繪制食物</b></p><p>  drawSnake(g,foodX,foodY,foodC);</p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 繪制貪吃蛇和食物</p><

93、;p>  * @param g</p><p>  * @param x</p><p>  * @param y</p><p>  * @param color</p><p><b>  */</b></p><p>  private void drawSnake(Graphics

94、g,int x,int y,int color){</p><p>  g.setColor(0xffffff);</p><p>  g.fillArc(x,y,SNAKE_W,SNAKE_H,0,360);</p><p>  g.setColor(color);</p><p>  g.fillArc(x+1,y+1,SNAKE_W-1

95、,SNAKE_H-1,0,360);</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 事件處理</b></p><p><b>  */</b></p><p> 

96、 public void keyPressed(int keyCode){</p><p>  int action = this.getGameAction(keyCode);</p><p><b>  //改變方向</b></p><p>  switch(action){</p><p><b>  c

97、ase UP:</b></p><p>  if(direction != DIR_DOWN){</p><p>  direction = DIR_UP;</p><p><b>  }</b></p><p><b>  break;</b></p><p>

98、  case DOWN:</p><p>  if(direction != DIR_UP){</p><p>  direction = DIR_DOWN;</p><p><b>  }</b></p><p><b>  break;</b></p><p>  cas

99、e LEFT:</p><p>  if(direction != DIR_RIGHT){</p><p>  direction = DIR_LEFT;</p><p><b>  }</b></p><p><b>  break;</b></p><p>  case

100、RIGHT:</p><p>  if(direction != DIR_LEFT){</p><p>  direction = DIR_RIGHT;</p><p><b>  }</b></p><p><b>  break;</b></p><p>  case F

101、IRE:</p><p><b>  //暫停和繼續(xù)</b></p><p>  isShow = !isShow;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }<

102、;/b></p><p><b>  }</b></p><p>  3.1.3 掃雷游戲代碼(MineCanvas)同貪吃蛇類似</p><p><b>  4、實(shí)現(xiàn)結(jié)果</b></p><p><b>  4.1游戲加載框</b></p><p&g

103、t;<b>  4.2游戲選擇框</b></p><p><b>  4.3貪吃蛇游戲</b></p><p><b>  4.4 掃雷游戲</b></p><p><b>  5、實(shí)驗(yàn)小結(jié)</b></p><p>  于課程設(shè)計(jì)時(shí)間較短,所以該游戲還有許

104、多不盡如人意的地方,如游戲沒開始結(jié)束了,退出游戲不能存儲(chǔ)進(jìn)度等多方面問題。這些都有待進(jìn)一步改善,如在游戲中還可以更換背景音樂,以適合不同的玩家,在每通過一關(guān)可以給玩家播放一段flash,吸引玩家去挑戰(zhàn)極限,不斷提高玩家的興趣。</p><p>  課程設(shè)計(jì)已經(jīng)結(jié)束了,但在課程設(shè)計(jì)的這些體會(huì)要應(yīng)用到今后的日常學(xué)習(xí)中去。在新的學(xué)期,我覺得自己要在以下幾個(gè)方面加以注意:</p><p>  首先

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論