国产成人AV一区二区三区在线_国产成人精品无码免费看_国产成人无码无卡在线观看_国产精品成人A区在线观看_国产日韩精品欧美一区_国产亚洲精品自在久久蜜TV_久草热久草热线频97精品_久久久噜噜噜久久中文福利_久久婷婷五月综合色国产免费观看_日日狠狠久久偷偷色综合0,九一桃色在线观看,久久97精品久久久久久久不卡,国产成人精品亚洲精品

2d手機平面游戲幀數(shù)的問題

訪客2025-02-11 07:30:361

2d游戲明明人物動作是30幀數(shù)但是軟件測試為什么是60幀,,就是我最近玩的游戲出了高幀率模式但是人物幀數(shù)感覺沒有變不過其他和整體確實感覺流暢很多軟件測試也是60幀這是為什么,。

使用Cocos2d-x 3.0開發(fā)游戲之后,發(fā)現(xiàn)游戲在android手機上發(fā)熱非常嚴重,,在魅族2上,幾乎擔心手機會爆炸了~~~采取的一個措施就是降低幀率,因為游戲對于幀率要求不是非常高,。

做過cocos2d開發(fā)的同學應該都知道在win32平臺修改幀率的方式非常簡單,,就是在AppDelegate.cpp文件中修改:

1director->setAnimationInterval(1.0 / 40);

但是這種修改方式在導出android安卓apk到真機測試的時候,發(fā)現(xiàn)左下角的調(diào)試信息還是現(xiàn)實60~65幀,,完全不受影響,,網(wǎng)上搜索之后,發(fā)小安卓的修改需要修改cocos2dx-x生成的java代碼中修改,,具體在文件:Cocos2dxRenderer.java

在代碼中可以看到以下的屬性設置和重寫的方法:

12private static long sAnimationInterval = (long) (1.0 / 60 * Cocos2dxRenderer.NANOSECONDSPERSECOND);public void onDrawFrame(final GL10 gl) {}

如果要修改android平臺的幀率,,可以通過修改這些代碼來改進,具體的操作方法如下:

1.修改幀率將60改成40

1private static long sAnimationInterval = (long) (1.0 / 40 * Cocos2dxRenderer.NANOSECONDSPERSECOND);

2.增加一個屬性變量

1private long renderingElapsedTime = 0;

3.重寫渲染方法onDrawFrame

1234567891011121314151617181920@Overridepublic void onDrawFrame(final GL10 gl) {try {if (renderingElapsedTime * NANOSECONDSPERMICROSECOND < Cocos2dxRenderer.sAnimationInterval) {Thread.sleep((Cocos2dxRenderer.sAnimationInterval - renderingElapsedTime * NANOSECONDSPERMICROSECOND) / NANOSECONDSPERMICROSECOND);}} catch (InterruptedException e) {e.printStackTrace();} // Get the timestamp when rendering startedlong renderingStartedTimestamp = System.currentTimeMillis(); // should render a frame when onDrawFrame() is called or there is a// "ghost"Cocos2dxRenderer.nativeRender(); // Calculate the elapsed time during renderingrenderingElapsedTime = (System.currentTimeMillis() - renderingStartedTimestamp);}

代碼中將渲染消耗的時間算進去,,所以得到的幀率應該來說非常準確了,。

注意,Cocos2dxRenderer中的onDrawFrame官方有實現(xiàn)好的幀率算法,,但是被注釋掉了,,注釋文本說存在一定的bug,幀率不精確,,實際上大部分情況都可已正常使用,,所以最好不要采用了~

這么做了之后,游戲的幀率在38~41左右,,發(fā)熱的問題也基本解決了,。

最后,如果你要更好,,更精確的幀率算法,,也可以留言回復...

測試一般是最佳狀態(tài),也就是說火力全開的那種

cpu性能不夠,,一般cpu和顯示核心價位要一樣

測試是一種理想狀態(tài),,和實際差的很遠、,。

文章評論