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

J2ME 2D小游戲入門之旅(三) 控制飛機的移動

編輯:關於JSP

實在是等不及了吧?加把勁,讓我們加入游戲的主角飛機吧。
 
你可以將這個游戲定位在動作游戲,一個動作游戲需要不斷的從用戶端獲得輸入,基本上不間斷,所以plane需要不斷的改變位置。那麼這個基於桢的游戲應該定在多少桢合適呢?這需要在手機中測試,在模擬器上,如果定在15-18桢左右,是比較合適的。聽csdn的幾位xd說有的游戲僅僅定在12桢,所以不同的游戲是不一定的。基本上動作游戲對機子的要求是要高一點。我們的游戲框架是線性的,即輸出顯示和接受輸入是在同一個線程中,15桢以下的游戲處理輸入會顯得比較苯,高於20桢如果處理器速度較慢,很容易出現輸入卡在緩沖區,處理不過來的情況。現階段盡量讓桢數降下來吧,你不能和pc上用dx編程時,統一30fps的情況相提並論。
在這個以控制精靈移動為主要內容的游戲中,我們不封裝任何的游戲事件,我們的程序可能有些稚嫩,沒關系,一步一步來吧。
1. 飛機
plane是一個標准的plane。由三桢畫面組成,:
在構造函數中,我們加入對飛機的初始化對象語句:
Image img=ImageTools.getImage("/pic/MyPlaneFrames.png");
plane=new GameObject(img,24,24);
在gameInit()中初始化狀態,位置居中:
plane.reset();
plane.moveto((screenwidth-plane.sprite.getWidth())/2,(screenheight-plane.sprite.getHeight())/2);
在gameMain中加入:
plane.paint(g);
接下來,讓飛機在控制下移動,主要是在gameMain中加入輸入處理,如果飛機左移就更新畫面到飛機左傾的畫面,如果飛機右傾反之,沒有輸入的時候讓飛機處於正常。
if (gameover) {
}else{
if (keyevent) {
if(key_up){
plane.move(0, -3);
plane.sprite.setFrame(0);
}
if(key_down){
plane.move(0, 3);
plane.sprite.setFrame(0);
}
if(key_left){
plane.move( -3, 0);
plane.sprite.setFrame(1);
}
if(key_right){
plane.move(3, 0);
plane.sprite.setFrame(2);
}
if(key_fire){
}
}
}
else {
plane.sprite.setFrame(0);

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