成人免费看黄网站无遮挡,caowo999,se94se欧美综合色,a级精品九九九大片免费看,欧美首页,波多野结衣一二三级,日韩亚洲欧美综合

在中興軟件技術(shù)從事手機游戲開(kāi)發(fā)的實(shí)習報告

時(shí)間:2021-06-17 14:08:04 實(shí)習報告 我要投稿

在中興軟件技術(shù)從事手機游戲開(kāi)發(fā)的實(shí)習報告

  一、實(shí)習目的

在中興軟件技術(shù)從事手機游戲開(kāi)發(fā)的實(shí)習報告

  熟悉j2me開(kāi)發(fā)手機游戲的環(huán)境和配置,學(xué)習java程序語(yǔ)言并能夠利用java進(jìn)行軟件開(kāi)發(fā),能夠實(shí)現一個(gè)簡(jiǎn)單的java手機游戲,通過(guò)培訓增強分析程序源代碼及編程的能力。

  二、實(shí)習任務(wù)

  學(xué)習j2me語(yǔ)言及java手機游戲的開(kāi)發(fā)和設計,基本的理論原理,并在培訓后以小組的形式完成一個(gè)小型的java手機游戲程序。

  三、實(shí)習時(shí)間及地點(diǎn)

  實(shí)習時(shí)間:2009年2 月23日——2009年3月1日 實(shí)習地點(diǎn): 信科s311b

  四、實(shí)習內容及過(guò)程

  實(shí)習內容:j2me手機游戲開(kāi)發(fā)

  實(shí)習過(guò)程:

  1.游戲的準備工作

  通過(guò)培訓學(xué)習了j2me開(kāi)發(fā)工具包中幾個(gè)常用類(lèi)的使用方法和java的基本語(yǔ)法和相關(guān)知識,并通過(guò)具體的操作來(lái)加深對函數的理解,也增強了個(gè)人動(dòng)手能力。同時(shí)跟著(zhù)老師,學(xué)會(huì )了j2me環(huán)境的配置,知道了怎樣一步步地實(shí)現游戲的功能。

  在自己編寫(xiě)游戲之前,先做好相關(guān)的游戲準備工作。主要要在自己的電腦上對開(kāi)發(fā)環(huán)境進(jìn)行安裝和配置,同時(shí)要確定本小組設計的游戲題目,針對所設計的游戲要實(shí)現的功能找到相關(guān)的素材,比如.png類(lèi)型的圖片。

  2.游戲的設計思路

  通過(guò)參考其他游戲的規則,將自己的游戲設計為一個(gè)射擊游戲,即:先登陸游戲,然后可以在無(wú)限的時(shí)間內將隨機出現的敵機擊落,并且在攻擊敵機的時(shí)候不能夠讓敵方的子彈擊中或不能與敵機相撞,否則玩家生命值減1及子彈數量減少一倍,直到玩家生命值為0,這時(shí)游戲結束。如果擊中一定數目的敵機,將進(jìn)入下一關(guān)。在敵機中有少數的敵機帶有升級包,被擊中后將成為玩家升級子彈和增加生命值的'升級包,玩家拾到后子彈的數量將增加一倍(但最多只能夠增加到原有子彈的三倍),同時(shí)生命值增加一點(diǎn)。在游戲中共設置了四種敵機類(lèi)型,兩種普通的敵機和兩種高級敵機。游戲中將根據玩家擊落的敵機數增加敵機移動(dòng)的速度,同時(shí)對逃脫的敵機進(jìn)行統計,如果超過(guò)一定數量的敵機逃脫則游戲結束。

  3.游戲的具體實(shí)現

  test.java – 主類(lèi),運行在手機平臺上必須要繼承middle父類(lèi),及調用相應的控制游戲運行方法。

  mycanvas.java – 游戲顯示及調用類(lèi),其中定義了各種游戲中需要的變量和創(chuàng )建其他類(lèi)的實(shí)例。

  player.java – 玩家類(lèi),其中定義了玩家的位置及運動(dòng)軌跡。

  enemy.java – 敵機類(lèi),定義了敵機的類(lèi)型,敵機的位置,敵機的運行軌跡。

  enemy類(lèi)的實(shí)現和注釋?zhuān)?/p>

  import javax.microedition.lcdui.*;

  public class enemy {

  private int x, y;

  private int type;// 設置敵人的圖片格式

  private boolean isblod; // 掉血的敵機,如果被擊落將變?yōu)橥婕业淖訌椛壷?/p>

  public boolean isblod() {

  return isblod;

  }

  /**

  * 設置敵人被擊中后是否掉落升級玩家子彈的物品

  *

  * @param isblod

  */

  public void setblod(boolean isblod) {

  this.isblod = isblod;

  }

  image img;

  public enemy(int xx, int yy, int type) {

  this.x = xx;

  this.y = yy;

  this.type = type;

  stringbuffer s = new stringbuffer();

  int i = mycanvas.time % 3;

  string str;

  try {

  // 根據不同的類(lèi)型導入不同的敵人圖片

  switch (type) {

  case 0:

  s.append("/plan0");

  s.append(i);

  s.append(".png");

  str = s.tostring();

  img = image.createimage(str);// plan 0

  break;

  case 1:

  s.append("/plan0");

  s.append(i);

  s.append(".png");

  str = s.tostring();

  img = image.createimage(str);// plan 1

  break;

  case 2:

  img = image.createimage("/boss0.png");// boss 0

  break;

  case 3:

  s.append("/plan1");

  s.append(i);

  s.append(".png");

  str = s.tostring();

  img = image.createimage(str);// plan 1

  break;

  case 4:

  s.append("/plan1");

  s.append(i);

  s.append(".png");

  str = s.tostring();

  img = image.createimage(str);// plan 2

  case 5:

  img = image.createimage("/boss1.png");// boss 1

  case 6:

  img = image.createimage("/blod.png");// blod

  break;

  case 7:

  img = image.createimage("/explored.png");// explored

  break;

  }

  } catch (exception e) {

  system.out.println("設置敵人的圖片不能為空");

  }

  }

  public void draw(graphics g) {

  g.drawimage(img, x, y, 0);

  }

  public void cycle() {

  switch (gettype()) {

  case 0:

  y += gety() % 1 + 1;

  break;

  case 1:

  y += gety() % 2 + 1;

  break;

  case 2:

  y += gety() % 2 + 2;

  break;

  case 3:

  y += gety() % 2 + 3;

  break;

  case 4:

  y += gety() % 2 + 5;

  break;

  case 5:

  y += gety() % 2 + 8;

  break;

  case 6:

  y += gety() % 1 + 1;

  break;

  }

  }

  /**

  * 設置敵人的x坐標

  *

  * @param xx

  */

  public void setx(int xx) {

  x = xx;

  }

  /**

  * 得到敵人當前的x坐標

  *

  * @return

  */

  public int getx() {

  return x;

  }

  /**

  * 設置敵人的y坐標

  *

  * @param yy

  */

  public void sety(int yy) {

  y = yy;

  }

  /**

  * 得到敵人當前的y坐標

  *

  * @return

  */

  public int gety() {

  return y;

  }

  /**

  * 得到敵人類(lèi)型

  *

  * @return

  */

  public int gettype() {

  return type;

  }

  /**

  * 設置敵人類(lèi)型

  *

  * @param type

  */

  public void settype(int type) {

  this.type = type;

  }

  }

  ball.java – 子彈類(lèi),其中定義了子彈的位置及子彈運行軌跡

  五、實(shí)習收獲與體會(huì )

  通過(guò)這幾天的培訓,我逐步熟悉了java游戲開(kāi)發(fā),也深刻的體會(huì )到了要實(shí)現一個(gè)游戲程序的困難,在游戲中一個(gè)很簡(jiǎn)單的動(dòng)作,往往涉及到一系列的代碼?偟膩(lái)說(shuō),我學(xué)會(huì )了怎么配置基于j2me的java游戲開(kāi)發(fā)環(huán)境,以及對簡(jiǎn)單的類(lèi)之間的繼承,接口的連接等,了解了基本類(lèi)的定義和對象屬性的設置;也讓我學(xué)到了一些基本的游戲設計和開(kāi)發(fā)方法,并對每個(gè)游戲動(dòng)作如何在代碼中實(shí)現出來(lái)有了一定了解。

  這次通過(guò)參加培訓,然后自己動(dòng)手來(lái)完成一個(gè)java游戲的開(kāi)發(fā),增強了我們的動(dòng)手能力,讓我們可以自主的去構思要實(shí)現的功能以及需要的函數、類(lèi)等,提高了我們對于程序的總體把握能力。在設計游戲和編寫(xiě)代碼的時(shí)候,由于剛開(kāi)始對游戲的運行規則沒(méi)有定義好,在寫(xiě)代碼的時(shí)候做了幾次修改,這增加了開(kāi)發(fā)所要的時(shí)間,降低了開(kāi)發(fā)效率。開(kāi)始定義的碰撞也不太合理,使得子彈離敵機距離稍大也算打中敵機,看起來(lái)就是子彈沒(méi)有打中,敵機也被殲滅了,后來(lái)進(jìn)行了調整。在整個(gè)游戲的開(kāi)發(fā)過(guò)程中,我認識到程序的調試和改錯方面有許多的技巧,例如段首的提示符給予的信息以及被特殊標出的下劃線(xiàn),都可以作為參考。代碼開(kāi)發(fā)是一項比較煩瑣的工作,長(cháng)久就會(huì )失去耐心,就會(huì )容易出錯,所以要做到耐心和細心,才能夠減少錯誤,進(jìn)而減少調試所需的時(shí)間。

  六、致謝

  非常感謝鄭老師在培訓的時(shí)候給予我們的幫助!在這次培訓中,不但讓我學(xué)習了如何編寫(xiě)java程序和利用j2me開(kāi)發(fā)手機游戲,讓我對java游戲開(kāi)發(fā)有了初步的認識;更讓我學(xué)習到如何去逐步設計一個(gè)游戲,對游戲開(kāi)發(fā)有了較深的認識,并通過(guò)小組協(xié)作完成了小游戲的編寫(xiě),這都有賴(lài)于老師的細心指導。在此,再次向您表示我衷心的感謝!

  七、指導教師評語(yǔ)

  八、評閱人意見(jiàn)

【在中興軟件技術(shù)從事手機游戲開(kāi)發(fā)的實(shí)習報告】相關(guān)文章:

游戲開(kāi)發(fā)實(shí)習報告08-31

游戲項目開(kāi)發(fā)的實(shí)習報告06-01

軟件技術(shù)實(shí)習報告12-19

游戲項目開(kāi)發(fā)實(shí)習總結12-15

軟件技術(shù)開(kāi)發(fā)合同03-02

軟件技術(shù)實(shí)習報告例文03-20

軟件技術(shù)實(shí)習報告范文04-18

游戲開(kāi)發(fā)實(shí)習日記分享04-25

軟件技術(shù)開(kāi)發(fā)合同模板12-09