2012-07-16 65 views
1

我試圖讓我的相機在cocos3d中的位置,但我有麻煩。下面是我的initializeWorld看起來像節點的位置始終爲空。 Cocos3d

[self addContentFromPODFile: @"leggo.pod"]; 

CC3Camera* cam2 = (CC3Camera*) [self getNodeNamed:@"Camera"]; 
[self addChild:cam2]; 

//the location and rotation is just for testing 
//cam2.location = cc3v(0,57.101,71.694); 
//cam2.rotation = cc3v(-38,0,0); 

CC3Vector camLoc = cam2.location; 
NSLog(@"cam2 position is x=%@ y=%@ z=%@", camLoc.x, camLoc.y, camLoc.z); 

誰能告訴我爲什麼camLoc.x,camLoc.y和camLoc.z的值總是空?我試圖在延遲後獲得位置,但它們仍然爲空。我沒有想法。看起來我正在接近這個similar issue,但我仍然無法弄清楚。謝謝

+0

我是新來的cocos2d/3d,獲取職位真的能幫助我理解它是如何工作的,因爲我將collada文件從攪拌機轉換爲pod。我試圖看看cocos3d在座標上做了什麼。如果有人能夠幫助我,我會很感激,即使這是一個完全不同的方法來獲得職位。 – davis 2012-07-16 22:11:13

+0

是位置對象中的x,y,z字符串?也許你的%@在NSLog語句中應該改爲某種數字的%f或%d,這取決於它們是float還是double)。 – YvesLeBorg 2012-07-16 23:05:31

回答

3

它們爲空,因爲您使用了錯誤的格式字符串。 %@僅用於id類型,但座標是簡單的浮點值。請使用:

NSLog(@"cam2 position is x=%f y=%f z=%f", camLoc.x, camLoc.y, camLoc.z); 

PS:學會使用調試器。如果您已經設置了一個簡單的斷點並查看了您可能立即看到的局部變量,則這些值不是「真正的」。

+0

真棒,工作,非常感謝。 – davis 2012-07-16 23:13:44