一、實習目的
熟悉j2me開發(fā)手機游戲的環(huán)境和配置,學習java程序語言并能夠利用java進行軟件開發(fā),能夠?qū)崿F(xiàn)一個簡單的java手機游戲,通過培訓增強分析程序源代碼及編程的能力。
二、實習任務
學習j2me語言及java手機游戲的開發(fā)和設計,基本的理論原理,并在培訓后以小組的形式完成一個小型的java手機游戲程序。
三、實習時間及地點
實習時間:2009年2 月23日——2009年3月1日 實習地點: 信科s311b
四、實習內(nèi)容及過程
實習內(nèi)容:j2me手機游戲開發(fā)
實習過程:
1.游戲的準備工作
通過培訓學習了j2me開發(fā)工具包中幾個常用類的使用方法和java的基本語法和相關(guān)知識,并通過具體的操作來加深對函數(shù)的理解,也增強了個人動手能力。同時跟著老師,學會了j2me環(huán)境的配置,知道了怎樣一步步地實現(xiàn)游戲的功能。
在自己編寫游戲之前,先做好相關(guān)的游戲準備工作。主要要在自己的電腦上對開發(fā)環(huán)境進行安裝和配置,同時要確定本小組設計的游戲題目,針對所設計的游戲要實現(xiàn)的功能找到相關(guān)的素材,比如.png類型的圖片。
2.游戲的設計思路
通過參考其他游戲的規(guī)則,將自己的游戲設計為一個射擊游戲,即:先登陸游戲,然后可以在無限的時間內(nèi)將隨機出現(xiàn)的敵機擊落,并且在攻擊敵機的時候不能夠讓敵方的子彈擊中或不能與敵機相撞,否則玩家生命值減1及子彈數(shù)量減少一倍,直到玩家生命值為0,這時游戲結(jié)束。如果擊中一定數(shù)目的敵機,將進入下一關(guān)。在敵機中有少數(shù)的敵機帶有升級包,被擊中后將成為玩家升級子彈和增加生命值的升級包,玩家拾到后子彈的數(shù)量將增加一倍(但最多只能夠增加到原有子彈的三倍),同時生命值增加一點。在游戲中共設置了四種敵機類型,兩種普通的敵機和兩種高級敵機。游戲中將根據(jù)玩家擊落的敵機數(shù)增加敵機移動的速度,同時對逃脫的敵機進行統(tǒng)計,如果超過一定數(shù)量的敵機逃脫則游戲結(jié)束。
3.游戲的具體實現(xiàn)
test.java – 主類,運行在手機平臺上必須要繼承middle父類,及調(diào)用相應的控制游戲運行方法。
mycanvas.java – 游戲顯示及調(diào)用類,其中定義了各種游戲中需要的變量和創(chuàng)建其他類的實例。
player.java – 玩家類,其中定義了玩家的位置及運動軌跡。
enemy.java – 敵機類,定義了敵機的類型,敵機的位置,敵機的運行軌跡。
enemy類的實現(xiàn)和注釋:
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 {
// 根據(jù)不同的類型導入不同的敵人圖片
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;
}
/**
* 得到敵人類型
*
* @return
*/
public int gettype() {
return type;
}
/**
* 設置敵人類型
*
* @param type
*/
public void settype(int type) {
this.type = type;
}
}
ball.java – 子彈類,其中定義了子彈的位置及子彈運行軌跡
五、實習收獲與體會
通過這幾天的培訓,我逐步熟悉了java游戲開發(fā),也深刻的體會到了要實現(xiàn)一個游戲程序的困難,在游戲中一個很簡單的動作,往往涉及到一系列的代碼?偟膩碚f,我學會了怎么配置基于j2me的java游戲開發(fā)環(huán)境,以及對簡單的類之間的繼承,接口的連接等,了解了基本類的定義和對象屬性的設置;也讓我學到了一些基本的游戲設計和開發(fā)方法,并對每個游戲動作如何在代碼中實現(xiàn)出來有了一定了解。
這次通過參加培訓,然后自己動手來完成一個java游戲的開發(fā),增強了我們的動手能力,讓我們可以自主的去構(gòu)思要實現(xiàn)的功能以及需要的函數(shù)、類等,提高了我們對于程序的總體把握能力。在設計游戲和編寫代碼的時候,由于剛開始對游戲的運行規(guī)則沒有定義好,在寫代碼的時候做了幾次修改,這增加了開發(fā)所要的時間,降低了開發(fā)效率。開始定義的碰撞也不太合理,使得子彈離敵機距離稍大也算打中敵機,看起來就是子彈沒有打中,敵機也被殲滅了,后來進行了調(diào)整。在整個游戲的開發(fā)過程中,我認識到程序的調(diào)試和改錯方面有許多的技巧,例如段首的提示符給予的信息以及被特殊標出的下劃線,都可以作為參考。代碼開發(fā)是一項比較煩瑣的工作,長久就會失去耐心,就會容易出錯,所以要做到耐心和細心,才能夠減少錯誤,進而減少調(diào)試所需的時間。
六、致謝
非常感謝鄭老師在培訓的時候給予我們的幫助!在這次培訓中,不但讓我學習了如何編寫java程序和利用j2me開發(fā)手機游戲,讓我對java游戲開發(fā)有了初步的認識;更讓我學習到如何去逐步設計一個游戲,對游戲開發(fā)有了較深的認識,并通過小組協(xié)作完成了小游戲的編寫,這都有賴于老師的細心指導。在此,再次向您表示我衷心的感謝!
七、指導教師評語
八、評閱人意見
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。