2011-03-25 179 views
1

我剛開始用攪拌機和Python,我一直在嘗試使用Python 2.5.1訪問攪拌機對象

我訪問使用攪拌器遊戲引擎立方體的旋轉特性的旋轉連接到多維數據集在我的場景此python腳本:

cont = GameLogic.getCurrentController() 
own = cont.owner 

print own.RotX, own.RotY, own.RotZ 

我得到的是這樣的錯誤:
Python腳本錯誤從控制器「續#CONTR#1」: 回溯(最近通話最後一個): 文件「starter」,第4行,在 AttributeError:'KX_GameOb ject'object has no attribute'RotX'

有人可以告訴我如何訪問旋轉屬性嗎?感覺就像我瘋了!

謝謝,
威爾

回答

1

據我記得你可以通過getDRot訪問旋轉屬性()函數,其中getDRot()[0] = ROTX,getDRot()[1] = ROTY, getDRot()[2] = rotZ。但我不確定您是否可以在所有者對象上調用它。從我很久以前寫的一些片段中,我將這個功能稱爲執行器。所以,你的球必須有一個執行機構,然後你就可以

​​
3

您可以使用屬性localOrientation,這似乎是訪問的旋轉,在遊戲引擎不使用運動致動器不允許的唯一途徑當前旋轉的打印。

localOrientation由一個列表或一個3x3矩陣組成。矩陣的每一行都是相應軸將指向的點。 對於默認立方體:

import GameLogic 
cont = GameLogic.getCurrentController() 
own = cont.owner 

print(own.localOrientation) 

將產生 矩陣((1.0,0.0,0.0),(0.0,1.0,0.0),(0.0,0.0,1.0)),因爲對象的點的X軸到點(1,0,0),y指向(0,1,0),z到(0,0,1)

希望這有助於!

編輯: 剛剛玩過這個,我想說,如果事情是奇怪的記住,這是LOCAL的方向。如果事情不正常,請檢查對象的本地位置!我剛剛感到非常困惑,因爲我沒有意識到我的對象的本地位置是(0,0,0),即使它看起來像是在(9,-10,0)