【LGame學堂】簡單的精靈
關鍵字:LGame 入門 精靈
笨木頭花心貢獻,啥?花心?不呢,是用心~
轉載請註明,原文地址:http://blog.csdn.net/musicvs/article/details/7530117
:
精靈,按照個人的理解,就是遊戲中的生物,生物嘛,當然是要能懂的。跑來跑去的主角是精靈,和主角打架的怪物也是精靈~還有好多好多精靈,好吧,精靈不神秘,它也不過是一個被封裝的動畫。
public class GameScreen extends Screen { private final String TAG = "GameScreen"; private LImage bgImg = null; /* 背景圖片 */ private Sprite girlSprite = null; /* 精靈:一個弓手女孩 */ private Sprites sprMgr = null; /* 精靈管理器 */ public GameScreen() { /* 背景圖片 */ bgImg = LImage.createImage("assets/bgImg.jpg"); /* 載入精靈資源 */ girlSprite = new Sprite("assets/girl.png", 103, 114); /* 設定精靈初始位置 */ girlSprite.setLocation(50, 250); /* 將精靈加入精靈管理器 */ sprMgr = new Sprites(); sprMgr.add(girlSprite); } @Override public void draw(LGraphics g) { /* 繪製圖片,這個很簡單哈,看看函數說明就好,和Android API差不多~ */ g.drawImage(bgImg, 0, 0); /* -------------繪製精靈---------- */ /* createUI方法會遍曆精靈管理器裡的所有精靈, * 並調用精靈的createUI方法,相當於drawMe, * 就是精靈繪製自己的方法 */ sprMgr.createUI(g); /* update方法也會遍曆精靈管理器裡的所有精靈, * 並調用精靈的update方法,update方法會更新精靈的幀數, * 可以理解為切換到精靈圖片的下一幀。 * 那,參數elapsedTime也就是重新整理間隔了(單位毫秒) */ sprMgr.update(100); } @Override public void alter(LTimerContext timer) {} @Override public void onTouchDown(LTouch e) {} @Override public void onTouchUp(LTouch e) {} @Override public void onTouchMove(LTouch e) {}}
從代碼中可以看出,精靈由一個精靈管理器管理,所有精靈的繪製都通過精靈管理器來調用。
哎吖,由於這個例子實在是有點過於簡單,實在是不知道說些啥~
好吧,那就不說了~
-
囉嗦一下:
好吧,還是有些話想說~Sprite就是一個LGame預設提供的精靈類,如果你不喜歡它,你可以自己創造一個精靈(好吧,多個也行)~怎麼創造?只要你的類實現了ISprite介面,那它就被認為是一個精靈類,其它的,自由發揮~
-
再囉嗦一下:
看看Sprite的構造器:
這個構造器有三個參數:
1. filename 資源路徑
2. row 每一幀截取圖片資源的上的寬
3. col 每一幀截取圖片資源上的高
-
第2、第3個參數稍微解釋一下,這個構造器需要一種這樣的圖片資源:
所有的動作都在一張圖片裡,相信大部分朋友都知道了。參數row就是圖片寬除以每個動作的寬,參數col就是圖片的高。
好吧,囉嗦完畢~
最後的囉嗦:
也許有人已經發現了,我每次用的GameScreen類都是繼承Screen的,其實LGame還有一個CanvasScreen的,但是我暫時還不知道什麼時候用Screen什麼時候用CanvasScreen~等我弄懂了再和大家分享哈,嘿嘿~
源碼下載:http://download.csdn.net/detail/musicvs/4289615
原文第一次發佈於Android-Fans論壇:http://www.android-fans.net/forum.php?mod=viewthread&tid=1493&page=1&extra=#pid4389