Cocos2d經典面試題(二)

2021-10-07 19:54:28 字數 1951 閱讀 3662

1.在c++程式中呼叫被c編譯器編譯後的函式,為什麼要加extern 「c」?

答案:

c++語言支援函式過載,c語言不支援函式過載.函式被c++編譯後在庫中的名字與c語言的不同.

假設某個函式的原型為:void foo(int x,int y);

該函式被c編譯器編譯後在庫中的名字為_foo,而c++編譯器則會產生像foo_int_int之類的名字.

c++提供了c連線交換指定符號extern 「c」來解決名字匹配的問題;

2.#define double(x) x+x,i = 5*double(5);i是多少?

答案:

30
3.在函式引數傳遞時,值傳遞與引用傳遞有什麼區別,函式寫法有什麼不同?

答案:

值傳遞只是將實參的值拷貝給形參,改變形參的值並不會改變實參的值;

引用傳遞是實參與形參共享一段記憶體,改變形參的值會改變實參,加個&符號.

4.fun(-1)的返回值時多少?

int func(unsigned int x)

return countx;

}答案:

32
5.用lua實現乙個氣泡排序演算法.
function sort(tb)

for i=1,#tb - 1 do

for j=1,#tb - i do

if tb[j] > tb[j+1] then

tb[j],tb[j+1] = tb[j+1],tb[j]

endend

endend

6.lua語言中,a是乙個table,a.b的另外一種演算法是多少.

答案:

a[「b」]
7.寫出這段程式執行結果.

a = {}

a[「x」] = 10

b = a

print(b[「x」])

b[「x」] = 20

print(a[「x」])

答案:

10   

20

8. print(string.sub(「ab\nab\1012345」,2,-2))輸出什麼

注:ascall碼值 10對應『n』 101對應『e』

答案:

b

abe234

9.用lua語言實現c++中的a?b:c,並說明需要滿足什麼要求.

答案:

a and b or c(b不能為假)
10.如何設定觸控優先順序,如何設定觸控事件不穿透?

答案:

1.設定優先順序有兩種方式:1.以節點的顯示作為優先順序  2.固定優先順序

2.設定不穿透:setswallowtouch(true)

11.請寫乙個帶有不定引數的lua函式,並輸出所有的引數.

答案:

function printarg(...)

local arg =

for i,v in ipairs(arg) do

print(i,v)

endend

12.autorelease和release的區別

答案:

autorelease:將節點加入自動釋放池中

release:將節點的引用計數-1,如果引用計數為0,則釋放記憶體

13. cocos2d-x如何進行記憶體優化

答案:

1.替換jpg,使用psd,減少重複資源;

2.剔除不必要的資源;

3.打包時檢視log紀錄,由此判斷需要減少的檔案型別;

4.優化,壓縮,減少大小;

5.優化,壓縮網格和動畫,減少檔案大小;

6.剔除system.dll和system.xml.dll ,盡量不要依賴他們,或用其他元件來代替。

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...

Cocos2D研究院之初識Cocos2d(二)

在正式介紹cocos2d之前,我先囉嗦一下本人對這套引擎的看法。我認為coos2d最大的作用就是降低開發成本 貌似所有引擎都是這樣 對於研發部門來說,最大的成本就是時間,所以節省時間是降低成本最有效的方式,cocos2d幾乎封裝了所有開發ios遊戲需要的底層 使剛剛接觸oc的開發者也能很快的製作出效...

Cocos2D研究院之初識Cocos2d(二)

在正式介紹cocos2d之前,我先囉嗦一下本人對這套引擎的看法。我認為coos2d最大的作用就是降低開發成本 貌似所有引擎都是這樣 對於研發部門來說,最大的成本就是時間,所以節省時間是降低成本最有效的方式,cocos2d幾乎封裝了所有開發ios遊戲需要的底層 使剛剛接觸oc的開發者也能很快的製作出效...