程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> J2ME 2D小游戲入門之旅(二)完善周邊工具類

J2ME 2D小游戲入門之旅(二)完善周邊工具類

編輯:關於JSP

二、完善周邊工具類(圖象、GameObject、Font)
雖然我們有了midp2.0的支持,但是有時還是需要一些輔助工具,方便我們使用。這怕是在進行真正的游戲設計之前最有趣的了。
1,首先是一個ImageTools工具類,提供一個方法幫助調用Image
public class ImageTools {
protected ImageTools() {
}
public static Image getImage(String str){
Image img=null;
try {
img = Image.createImage(str);
}
catch (Exception ex) {
System.out.println(ex);
}
finally{
return img;
}
}
}
2.GameObject,提供一個通用的游戲對象。
有了Sprite類,為什麼還要GameObject呢?其實我們一般是將Sprite,看作成一個高級的Image,往往一個Sprite要被多個游戲對象調用,GameObject其實就是Sprite的狀態類。GameObject提供簡單的生命周期概念,動畫更新速度;
public class GameObject {
public Sprite sprite;//內置的Sprite
public boolean alive;//存活標記
private int lifecount=0;//生命周期計數器
public int lifetime=0;//生命周期,以桢為單位
public int speed=0;//動畫桢更新速度,(0至無窮,0代表每一桢跟新一個畫面)
private int animcount=0;// /動畫桢更新計數器
public GameObject(Image img,int width,int height){
sprite=new Sprite(img,width,height);
reset();
}
public void move(int dx,int dy){//相對移動
sprite.move(dx,dy);
}
public void moveto(int x,int y){//絕對移動
sprite.setPosition(x,y);
}
public void update(){//更新狀態,動畫桢更新,生命周期更新
if(!alive)
return;
if(++animcount>speed){
animcount=0;
sprite.nextFrame();
if(lifetime!=0 && ++lifecount>lifetime)
alive=false;
}
}
public void paint(Graphics g){//Paint
if(!alive)
return;
sprite.paint(g);
}
public void reset(){//復位
alive=true;

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