1 / 16

藍芽手機遊戲連線同步之實作

藍芽手機遊戲連線同步之實作. 指導教授 : 壽大衛 專題組員 : 陳道生 余宗勳. 專題分工. 資料蒐集 : 陳道生、余宗勳 遊戲策劃 : 陳道生 碰撞觸發判斷 : 陳道生 藍芽資料傳輸 : 余宗勳 遊戲結束判斷 : 陳道生 、余宗勳 遊戲美工 : 陳道生. 研究動機. 藍芽是一種低成本、低功率的無線連接技術,在電腦週邊、手機週邊也有許多利用藍芽傳輸達到無線通訊的產品。藍芽傳輸訊息是免費,故其遊戲性非常高,從線上遊戲的推出以來受到廣大民眾的熱烈反應,這顯示單機版的遊戲已不再具有吸引力,故以藍芽微平台進行手機對戰的時代已經來臨。

red
Download Presentation

藍芽手機遊戲連線同步之實作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 藍芽手機遊戲連線同步之實作 指導教授:壽大衛 專題組員 : 陳道生 余宗勳

  2. 專題分工 資料蒐集 : 陳道生、余宗勳 遊戲策劃 : 陳道生 碰撞觸發判斷 : 陳道生 藍芽資料傳輸 : 余宗勳 遊戲結束判斷 : 陳道生 、余宗勳 遊戲美工 : 陳道生

  3. 研究動機 • 藍芽是一種低成本、低功率的無線連接技術,在電腦週邊、手機週邊也有許多利用藍芽傳輸達到無線通訊的產品。藍芽傳輸訊息是免費,故其遊戲性非常高,從線上遊戲的推出以來受到廣大民眾的熱烈反應,這顯示單機版的遊戲已不再具有吸引力,故以藍芽微平台進行手機對戰的時代已經來臨。 • 藉著不斷革新並為使用者開發程式及工具,藍牙技術聯盟始終位居藍牙技術在個人區域網路市場(PAN)的領先地位。「PTS對業界來說是無可取替的,它也將在持續成長的藍牙技術領域中,扮演重要的角色」 • 藍芽的前瞻性高,且以遊戲為專題非常吸引人,這些條件為依據 故以手機藍芽同步遊戲展現對戰之有趣性

  4. 研究流程 修正學長BUG, 發現同步遊戲興趣 依學長範例為底, 同步為主要目的開發新遊戲 模擬器測試 實機測試 完成

  5. 研究問題 • 探究Bluetooth,增進對Bluetooth之瞭解 • Bluetooth如何傳輸 • 碰撞偵測 • 如何利用對戰展現同步

  6. 遊戲控制

  7. MIDP行動資訊裝置套件(Mobile Information Device Profile ☆ MIDP是基於J2ME架構的技術套件,主要提供一組無線通訊平台的環境,可用來開發可移動小型資訊設備上所需的應用系統。 ☆ MIDP源自於J2ME架構下的CLDC,依此架構而設計的行動電話,即稱之為Java手機 (Java Enabled Phone)。MIDP提供手機所需的各種核心功能,包括使用者介面、網路連結、資料儲存等,是一個完整且標準的Java應用程式介面(API)的總集合。 ☆ CLDC (Connected Limit Devices Configuration) CLDC 服務於512KB 以下的應用程式、有限能源供應(通常使用電池)、有限或非持續網路連接、簡單(或無)的用戶介面,適用於性能相對較差資源較有限的消費性電子產品(運算能力較低、記憶體容量較有限)如:手機、PDA。

  8. 玩家移動 • getkeyState() 會回傳一個整數值 UP_PRESSED (Up key) DOWN_PRESSED (Down key) 玩家追逐球,產生碰撞 實作應用: if ((keyState & UP_PRESSED) !=0) club1YSpeed=-5; else if ((keyState & DOWN_PRESSED) !=0) club1YSpeed=5;

  9. 碰撞觸發 碰撞可分 矩形碰撞偵測 (Rectangle collision detection) 內縮矩行碰撞偵測 (Shrunken rectangle collision detection) 影像資料碰撞偵測 (Image data collision detection) 其中以影像資料碰撞偵測精細度最高,但對於處理資料的負擔也越重,為減少手機之負擔,故以矩形碰撞偵測為此次專題的主軸

  10. 矩形碰撞偵測(Rectangle collision detection) 我們使用 MIDP (Mobile Information Device Profile 行動資訊裝置套件)來偵測碰撞的發生,前三種簡述的碰撞偵測全都叫做 collidesWith( ) ballSprite.collidesWith(clubSprite,true) 一但發生,在X軸上將球的速度改為負值

  11. 手機連線畫面

  12. 使用者選擇要扮演的角色

  13. 所遇問題與解決 I 數值傳送不一 同步顧名思義就是雙方動作同步化的問題,舉例來說,當甲機操縱者按下按鈕,會觸動BluePadCanvas的pointerReleased(),把位移量給傳送到乙機,傳送的部份會在BluePad裡面執行。一開始作法是將乙機所收到的位移量由BluePad再傳到BluePadCanvas裡的update(),使其移動,但是這樣卻發生了問題,傳送的值不一定相等。 比方說,甲機按了兩次按鈕,那應該只會移動兩次而已,但是乙機卻不一定會收到兩次位移量,而是有可能完全沒收到,或是一次移動6-8次的位移量。 解決方法: 後來經過了多方測試,發覺其實不用特地把值再丟到BluePadCanvas,可以直接在BluePad裡收到位移量後,呼叫move()直接移動棍子,因而解決了傳送值不一定相同的問題,這解決方法也同時應用在球上。

  14. 所遇問題與解決 II 流暢度問題: 雖然最後的位移量相同,但可能甲機移動之後,乙機還會延遲才到定位,如此會發生肉眼可辨識出來的DELAY問題,會影響到遊戲的進行。 解決方法: 1. 是藍芽偵測狀態的時間,第二個是frameDelay的大小,frameDelay數值越小,FPS越大。藍芽偵測狀態的時間,原本為300毫秒會偵測一次狀態,後來經過多次的測試,只有frameDelay =1 (毫秒)偵測一次時,看起來才會比較順暢。 改善情況: 依然會有微小的延遲 解決方法: 2. 調整frameDelay的大小,經測試,frameDelay約為15以下才會比較順暢。 ☆這兩個大問題解決掉之後,同步化問題才算是大概的解決了。

  15. 所遇問題與解決 III 當以手邊的資源實機操作時,卻無法正常運作 碰到的困難點: 在模擬器運作時,假如程式有問題的時,會顯示出問題點,進而改進,但當手機測試時,手機只會顯示無法執行,不會顯示問題點。 嘗試了解問題: 1. 從最簡單的小程式了解問題,用Morrison出版的”手機遊戲程式設計”裡的小遊戲進行測試,卻依然無法執行 2. 將可能的問題點改為註解測試,到最後程式碼幾乎只剩下把螢幕畫黑的簡單小功能,依然無法執行。 3. 找同學借有藍芽功能的手機測試,上傳後可以執行,證明程式碼並沒問題。 結論推測: 使用2007年推出的手機作為平台,成功執行此程式,由此做個推斷, NOKIA6670上的JAVA平台過於老舊,因此以NOKIA6233為專題展示平台。

  16. ~END~

More Related