Egret白鷺開發小游戲中容易犯的錯


 在游戲開發過程中遇到問題,請首先查閱:http://developer.egret.com/cn/github/egret-docs/Engine2D/minigame/minigameFAQ/index.html

1.忘記給可點擊的游戲對象添加點擊開關。

startBtn.touchEnabled=true;

2.button按鈕的點擊效果

(1)新建皮膚text

(2)點擊源碼,修改class為:“skins.皮膚文件名”

(3)將button拖至皮膚處

(4)點擊設計中button按鈕

(5)為button設置抬起,按下,禁用的圖片資源名

 

(6)json中添加詳細信息,前面一樣的,只需改變exml文件名。

(7)代碼中使用button。" "中的內容為(6)中添加的內容。

 3刪除一個對象

執行刪除操作時,“顯示對象”必須擁有父級。換句話說,被刪除的顯示對象必須存在於容器對象當中。

避免這種問題的處理方法是:每次removeChild之前,對即將要被刪除的顯示對象做一次判斷,判斷它是否擁有父級。判斷的代碼如下:

if( spr.parent ) {
    spr.parent.removeChild( spr );
}

 4.點擊一次按鈕響應多次點擊事件

這是博主最近在公司做成就系統模塊碰到的bug,改了一晚上,通過各種調試知道錯誤的原因,但是還是沒發現根源,詢問大佬后才恍然大悟,下面先介紹下bug

點擊成就按鈕進入成就系統,成就系統里面有兩個可以翻頁的按鈕,分別定義為lastBtn,nextBtn。第一次進入游戲一切正常。

第二次進入游戲點擊nexBtn會發現變成了第三個成就(默認成就系統每次打開是第一個成就),再點擊一次nextBtn,顯示第5個成就。

主要代碼如下:

問了各種大佬之后被告知,lastBtn,nextBtn每次添加監聽事件之前沒有移除之前的監聽事件。,於是改代碼如下:

總結:給按鈕添加了監聽事件一定要記得移除。

5.打開排行榜IOS閃爍

ios打開排行榜,數據刷新,導致屏幕閃爍,解決辦法:將開放數據域與主域中幀率調高至60(但是調高有一個影響是,耗電)。

6.好友排行榜無法關閉問題

(前提:世界排行寫在主域,好友排行再子域)在代碼中的邏輯:打開世界排行榜時首先關閉好友排行榜,再顯示世界排行榜;打開好友排行榜時首先關閉世界排行榜,再顯示好友排行榜。這樣的邏輯看上去時完全正確的,但是存在一個很大的隱患,如果你多次連續點擊好友列表,那么你回打開多個好友列表,當你再次打開世界排行時你回發先好友排行顯示再世界排行里面了。

主要代碼如下:

顯示效果:

那么我們如何處理這個問題呢,其實很簡單,我們只需要在打開某個排行榜時先判斷該排行榜是否已經顯示,修改后的代碼如下:

 7.數組報空

有時候,游戲過程中我們可能會經常需要進行清空數組,賦值,清空,賦值。。。操作,你明明在聲明數組的時候已經初始化了,但是在清空之后賦值會報如下錯誤:

這個錯誤我不知道是怎么引起的,但是經過詢問各路大神,我最終解決了,解決辦法就是:避免在聲明是賦值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM