一、 TouchSensor(觸摸傳感器)節點
TouchSensor(觸摸傳感器)節點產生基于定點輸入設備(通常是鼠標)的事件。這些事件表明用戶是否正在點選某個幾何體和用戶在什么地方,以及在什么時候按了定點設備的鍵。它的主要域或事件有:
description -- 這個節點功能的文字提示。
enabled -- 設置傳感器節點是否有效。默認值為True。
isActive -- 當點擊或移動鼠標(指點設備時)發送事件。按下鼠標主鍵時isActive=True, 放開時
isActive=False。
isOver -- 當指點設備移動過傳感器表面時發送事件。
hitPoint_changed -- 事件輸出在子節點局部坐標系統點擊點的定位。
hitNormal_changed -- 事件輸出了點擊點的表面的法線向量。
hitTexCoord_changed -- 事件輸出了點擊點的表面的紋理坐標。
touchTime -- 當傳感器被指點設備點擊時產生時間事件。
需要說明的是:
(1) 若定點設備未指向傳感器的兄弟幾何體,而用戶開始將定點設備移到傳感器的兄弟幾何體時,傳感器將產生一個isOver事件,并將其值設置為True;相反,若定點設備已經指向傳感器的兄弟幾何體,此時用戶將定點設備移出傳感器的兄弟幾何體,傳感器將產生一個isOver事件,并將其值設置為False。
(2) 當用戶將定點設備從幾何體的一點移動到另一點時,傳感器將發送一系列事件: hitPoint_changed、hitNormal_changed、hitTexCoord_changed,分別表明用戶所指的位置、該點的法向量和紋理坐標。
(3) 當用戶點擊被TouchSensor監視的對象時,傳感器將產生值為True的isActive事件;而當用戶釋放定點設備的鍵時,傳感器將產生isActive為False的事件。
(4) 若用戶在指向幾何體時按下鼠標鍵,然后在仍然指向這個幾何體(或又回到這個幾何體)時釋放鼠標鍵,傳感器將要發送一個touchTime事件,表明鍵被釋放的時間。可以使用這一事件來模擬許多常用的用戶接口(如只有在用戶點擊和釋放定點設備按鍵時才產生的動作)。
下面舉兩個例子來說明:
示例1:當鼠標處在立方體的時候,就會有一個小球跟隨鼠標移動。
示例代碼如下:
(圖片較大,請拉動滾動條觀看)
示例的結果如下圖所示:
說明:需要將觸摸傳感器節點和要觸摸的形體節點放在同一個父節點處。
示例2:當單擊中間小球時,將打開點光源,照亮四周的兩個球。
示例代碼如下:
示例的結果如下圖所示:
二、 PlaneSensor(平移傳感器)節點
PlaneSensor 傳感器節點用于指點設備在平行于Z=0平面上的動作,只要用戶點按、拖動該傳感器的兄弟幾何體,此節點均將拖動(如用戶使用鼠標進行的拖動)解釋為在傳感器的局部xy平面上的變換。其主要域或事件如下:
新聞熱點
疑難解答