程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> J2ME 2D小游戲入門之旅(六) 計時器和獎懲與評價

J2ME 2D小游戲入門之旅(六) 計時器和獎懲與評價

編輯:關於JAVA

六、計時器和獎懲與評價

我們該加入我們的計時器了,我要從游戲開始時刻開始計時,並不斷的更新到屏幕上,在游戲結束後計時器要停止工作。

首先在初始化的時候將當前時刻記錄下來:

gametime=0;

gametimeoffset=System.currentTimeMillis();

以後只要游戲不gameover就在每個更新周期都進行一次計算:

gametime=(System.currentTimeMillis()-gametimeoffset)/1000;

//轉換為秒

下面要做的就是將它顯示出來,還記得我們曾經實現的字體類了嗎,這下子有用了,首先是實例化一個字體類:

img=ImageTools.getImage("/pic/b_number.png");
fontbig=new Font(g,img,10,15,
new char[]{'0','1','2','3','4','5','6','7','8','9'});

然後就是顯示:

fontbig.drawString(String.valueOf(gametime),screenwidth/2-15,10);

還真是方便yeah!

接著是獎勵系統,我們規定每過20s就加一個bomb給玩家。

int awardindex=(int)gametime/20;//計算獎勵時間
if(awardindex>bombawardtop)
awardindex=bombawardtop;
if(bombaward[awardindex]!=0){//如果本20s沒有獎勵
bombnum+=bombaward[awardindex];
bombaward[awardindex]=0;//獎勵過了
}

盡可能簡單和給出些提示是我寫本文的原則, 所以評價系統,很ez。

我們建立一個輔助類,提供一個方法,輸入游戲時間,返回一個String評語。

public class StringTools {
protected StringTools() {
}

public static String timeOpinion(long gametime){
if(gametime<10){
return "Do you play with your foot?";
//return "i can't belive,your are a game master";
}else if(gametime<16){
return "come boy, you can do it!";
}else if(gametime<20){
return "what a pity! try again.";
}else if(gametime<25){
return "very well, you are a real man.";
}else if(gametime<30){
return "i know you have talent of this game.";
}else if(gametime<40){
return "i can't belive, your are a game master.";
}else{
return "oh my god, are you a human?";
}
}
}

之後顯示出來就好了,我手頭沒有合適大小的字體圖片,我直接使用

g.drawString(StringTools.timeOpinion(gametime),5,22,g.LEFT|g.TOP);

想在手機小小的屏幕容下那麼東西是挺費勁的,其實這也是我對手機上玩游戲沒什麼興趣,不過我對手機網絡應用沖滿了信心。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved