网络游戏脚本及编程
網絡游戲腳本及編程
2010年07月18日
網絡游戲腳本及編程
判斷題
1、程序設計語言經歷了機器語言、匯編語言到高級語言的多個階段。 T
2、腳本根目錄下的main.cs是不可缺的,在tge.exe執行時會第一個自動載入。 T
3、Torque腳本中標識符只能以字母開頭。 T
4、在Torque腳本中,標識符區分大小字。 F
5、switch 后表達式的值逐個和case 后的常量表達式比較,當表達式的值和末常量表達式
的值相等時就順次執行,與c 語言的switch 相同。
6、exec()表示編譯,并執行文件代碼,并通過參數所指定的文件路徑找到文件。 t
7、exec()執行后,沒有返回值。 F
8、torque中的函數定義的基本形式和C/C++類似,也可以return返回一個值。 F
9、Torque腳本支持遞歸調用。 t
10、在調用需傳參數的函數時,如果這些參數的沒有被賦值則這個參數默認為0。 f
11、網絡游戲中游戲邏輯判斷代碼一般放在客戶端。 F
12、Torque中可以通過使用包來實現函數的動態重載。 T
13、在使用包時,可以通過parent::來調用上層包的函數。 T
14、torque 可以通過腳本編寫定義一個對象,然后加入游戲。 t
15、3D 對象shape 都有交互能力。 f
16、按F11 后再按F5 即切換到World Editor Creator 界面。 f
17、torque 只使用shapebasedata 來描述所有基于模型的對象。 f
18、shapebasedata 繼承自gamebasedata。 t
19、shapebasedata 的category 屬性在編輯器中分類顯示時期作用。 t
20、torque 中的item 是動態對象,但不可以移動。 f
21、區域觸發器,就是在游戲世界中的某一位置劃出一塊觸發區,若玩家進入這塊觸發區,
將會在服務器端引發消息。 T
23、Animation Triggers觸發器被用來同步走動過程中的腳步聲。 T
24、所謂Animation triggers,就是在游戲世界中某位置劃出一塊觸發區,若玩家進入這塊
觸發區,將會在服務器端引發消息. T
25、Weapon State Triggers武器狀態觸發器用來管理和控制武器狀態。 T
26、TriggerData中的tickPeriodMS指定引擎檢查觸發器狀態的頻率,單位是秒。F
27、TriggerData 中的tickPeriodMS 指定引擎檢查觸發器狀態的頻率,單位是毫秒。 T
28、torque 像許多游戲引擎一樣使用開源的聲音api opengl。 f
29、可以用程序代碼直接激活聲音,也可以將聲音綁定到對象上。 t
30、audiodescription 繼承sidatablick,而simdatablock 是由simdata 繼承。 f
31、audiodescription 的volume 是表示聲音的默認值。 t
32、audiodescription 的is3d 屬性使聲音具有3d 效果。 t
33、在客戶機和服務器上創建的audiodescription 是相同的。 f
34、在GUI 中,屏幕也可以看作是一個大控件,其余的控件都是它的子控件。 T
35、生成GUI 控件既可以使用腳本代碼手動生成,也可以使用GUI 編輯器。 T
36、GUI 編輯器的Control Inspector view 用于顯示控件的屬性。 F
37、在GUI 編輯器中,要往一個父控件中添加一個子控件,只需左鍵單擊父控件,再添加子
容器即可。 F
38、屏幕上當前顯示的GUI 是通過Canvas.setContent()函數實現的。 T
39、torque引擎是圍繞客戶機/服務器結構設計的。 t
40、設計較好的聯機游戲將會盡可能多的把決策放在客戶機端,以減少服務器的壓力。f
41、函數onservercreated()是服務器端的模塊加載接口。 t
42、torque只支持四種模式,即獨立服務器,主機服務器,純客戶機,客戶機服務器。f
43、游戲即時通信是靠commandtoserver和commandtoclient來實現的。 t
44、gameconection提供了由客戶端連接到服務器的功能機制,用戶可以用腳本改寫。t
45、gameconnection是由networkconnection產生的。 t
46、在torque 中,角色模型和道具模型是DTS 格式的,動畫文件是DSQ 格式的。 T
47、Torque 支持骨骼動畫,可以在3D max 中制作好各個動畫,如站立、跳躍等,再用插件
導出為Torque 支持的DSQ 文件。 T
48、TSShapeConstructor 類的對象在腳本中是直接由引擎來訪問的一個對象,引擎使用它
的屬性值來尋動畫文件的路徑。
49、人物編輯器包括四個字編輯器。 f
50、天空盒會隨玩家的旋轉而旋轉,以使玩家感覺天空不動。 f
51、torque不支持室內場景。 f
52、天空盒使用的圖片的分辨率越高,則fov就要越小。 t
53、mission area中的mirror按鈕制作地形的鏡像,left和right按鈕每次調整90度。 f
54、terrain texture編輯器中,可以手工放置紋理。 f
55、world編輯器由world editor creator和world editor inspector組成。 t
單選題
1. 第一款真正意義上的3D 游戲引擎是()D
A Wolfenstein 3D
B Doom
C Build
D Quake
2. 游戲引擎中最重要最復雜的模塊是()A
A 3D 渲染
B 模型與動畫
C 物理系統
D 粒子系統
3. 關于游戲中的動畫系統,說法正確的是()A
A 目前游戲中的動畫系統分為兩種
B 模型動畫系統是靠內置的骨骼帶動運動
C 骨骼動畫系統可以直接改變骨骼的大小
D 骨骼動畫系統比較常見
4. 物理系統的核心是()D
A 光線跟蹤
B 可見性檢測
C 重力系統
D 碰撞檢測
5. 能夠暗示環境和氣氛,使玩家獲得身臨其境的感覺的模塊是()C
A 渲染模塊
B 網絡模塊
C 音效模塊
D 物理模塊
6. 游戲主循環的作用是()C
A 獲取網絡信息
B 調整物理模塊的參數
C 相應玩家通過各種平臺的輸入
D 初始化相關庫
7. 以下關于計算機程序語言的說法錯誤的是() D
A 機器語言由0,1 組成。
B 匯編語言由簡潔的英文字母、符號串來替代一個特定的指令的二進制串。
C Pascal是一種結構化語言。
D 機器語言效率最高,因此得到了廣泛的使用。
8. 關于路徑,下面說法正確的是: 。 D
A. ./表示當前執行中的腳本文件所在的MOD 目錄
B. ~/表示當前執行中的腳本文件所在的目錄
C. ~/表示當前執行文件所在的磁盤根目錄
D. ~/表示當前執行文件所在的MOD 目錄
9. 按下以下哪一個按鈕可以查看控制臺? A
A.~ B.\
C.ALT D.CTRL
10. Torque 引擎將源文件編譯成何種格式的二進制編碼文件?() B
A .cs B.cs.dso C .dts D .dif
11. 在torque 腳本中,以下非法的賦值語句是: 。B
A.$d=$i+++$j; B.$n=$j+(++$i);
C.$n=$i*$j; D.$n=$i-(%temp+$t4);
12. 在torque 腳本中,以下非法的賦值語句是: 。D
A. $n=$i-$j; B.$n=$j++;
C. $n=$i*%j; D $n=++%i;
13. 表達式echo(15+15.6);的輸出結果是 。C
A.30 B.30.0
C.30.6 D.31
14. 表達式echo(5+15.6);的輸出結果是 。C
A.20 B.20.0
C.20.6 D.21
15. 表達式echo(20+12.6);的輸出結果是() C
A.32 B.32.0
C.32.6 D.33
16. 表達式echo(15+10.6);的輸出結果是: 。 C
A.25 B.25.0
C.25.6 D.26
17. 表達式echo(13+12.6);的輸出結果是() C
A.25 B.25.0
C.25.6 D.26
18. 表達式echo(3+2.6);的輸出結果是() D
A.5 B.5.0
C. 6 D.5.6
19. 表達式echo(13+12.6);的輸出結果是() C
A.25 B.25.0
C.25.6 D.26
20. 以下幾個表達式,值為1 的是() B
A 0 $= ” ” B 0 == ” ” C 0 != “ ” D 0 !$= “ ”
21. torque 腳本中的字符串操作符中,聯接符是 () C
A.SPC B. TAB C. @ D. NL
22. 以下不屬于邏輯運算符的是 A
A.!= B.&&
C.|| D.!
23. 以下不屬于邏輯運算符的是 B
A.&& B. 0)
{
echo(%echoString);
echoRepeat(%echoString, %repeatCount--);
}
}
echoReapeat(“dd”,5)此函數要輸出多少次字符串?() A
A 5
B 12
C 20
D 30
34. 以下說法錯誤的是 A
A.在創建對象的時候,對象原有的屬性是不可以覆蓋的
B.可以使用對象的句柄來獲得對象的屬性和方法
C.在Torque 中,句柄不是獲得對象的唯一途徑
D.在定義標識符時不可以和Torque 腳本的關鍵字重復
35. Torque 中關于對象的說法不正確的是() C
A Torque中的對象是C++類中的實例,與C++類中的對象類型是一一對應的。
B 在Torque中,可以通過句柄和對象名訪問對象。
C 在Torque中,只可以給普通對象添加方法,而不能給datablock添加方法。
D Torque中對象可以重名。
36. Torque中關于對象的說法正確的是() B
A 在Torque中,只可以給普通對象添加方法,而不能給datablock添加方法。
B 在Torque中,可以通過句柄和對象名訪問對象。
C Torque中對象不可以重名。
D 在創建對象的時候,對象原有的屬性是不可以覆蓋的
37.Torque 中關于對象的說法不正確的是() B
A Torque中的對象是C++類中的實例,與C++類中的對象類型是一一對應的。
B 在Torque中,只能通過句柄訪問對象。
C Torque中對象可以重名。
D 在創建對象的時候,對象原有的屬性是可以覆蓋的
38.以下()是所有游戲對象的父對象? A
A GameBaseData B ShapeBaseData
C SimDataBlock D CameraData
39.以下( ) 是所有datablock的父對象. A
A GameBaseData B SimDataBlock
C MissionMarkerData D ShapeBaseData
40.在datablock中帶有子對象的是() A
A GameBaseData
B SimDataBlock
C ShapeBaseData
D TriggerData
41.在datablock中帶有子對象的是() B
A SimDataBlock
B GameBaseData
C ShapeBaseData
D TriggerData
42.關于onServerCreated()的說法正確的是(c )
A 用于創建服務器端
B 用于初始化服務器端
C 用于在服務器創建時加載datablock
D 用于從服務器向客戶機傳遞消息
43.下列對象不能響應玩家的是(a)
A StaticShapeData B ItemData C PlayerData D VehicleData
44.下列代碼不正確的是()D
A function StaticShapeData::create(%data)
{
%obj = new StaticShape() {
dataBlock = %data;};
return %obj;
}
B datablock ItemData(Item_Table)
{
category = "Item_Table";
shapeFile="~/data/shapes/item/cafe_table_001_tge.dts";
mass=1;
friction=1;
}
C function Weapon::onUse(%data,%obj){
if (%obj.getMountedImage($WeaponSlot) != %data.image.getId())
{
serverPlay3D(WeaponUseSound,%obj.getTransform());
%obj.mountImage(%data.image, $WeaponSlot);
if (%obj.client)
messageClient(%obj.client, 'MsgWeaponUsed', '\c0Weapon
selected');
}
}
D function Weapon::onPickup(%this, %obj, %shape, %amount){
if (Parent::onPickup(%this, %obj, %shape, %amount)) {
serverPlay3D(WeaponPickupSound,%obj.getTransform());
if ( (%shape.getClassName() $= "Player" ||
%shape.getClassName() $= "AIPlayer" ) &&
%shape.getMountedImage($WeaponSlot) == 0)
{
%shape.use(%this);
}
}
45.按下以下哪一個按鈕可以查看控制臺?()A
A.~ B.\
C.ALT D.CTRL
46.能夠加入場景的對象被分為四類,下面哪個選項不是正確的?()D
A Interiors B Shapes C Static Shapes D items
47.關于云層的創建,下面說法錯誤的是()B
A.在Torque 中,我們使用Sky mission object 的屬性在MIS 文件中定義三層移
動的云
B.如果在所有高度都有風,最低層的云看起來會比另外的云層移動的更慢些
C.cloudHeightPer 的屬性是確定有關云層可見的信息
D.指定用于云的圖像要寫在天空盒圖像的文件中
48.下列說法不正確的是()d
A 使用世界編輯器加入的對象沒有腳本
B 對象也可以用腳本的方法創建出來
C 可以在腳本中定義一個對象然后加入到游戲世界中
D 用建模工具創建出來的模型可以直接使用
49.在World Editor Control 中有幾種shapes?()D
A 1
B 2
C 3
D 4
50. 下列說法不正確的是()d
A 腳本使用基于shapebasedata 派生來的datablock 來描述基于模型的對象
B shapebasedata 繼承自gamebasedata
C staticshapedata 派生自shapebasedata
D shapebasedata 是一個比較具體的datablock
51.以下選項不是ItemData 新增加的數據成員的是()c
A Pickupname
B dynamictype
C friction
D lighttype
52.使用Torque 引擎編程會涉及到一些觸發器,以下不屬于Torque 所支持的觸發器的
是B
A. 區域觸發器
B. 粒子狀態觸發器
C. 武器狀態觸發器
D. 玩家事件觸發器
53.以下關于觸發器的敘述不正確的是() C
A 觸發器廣義上可分為四類:區域觸發器,動作觸發器,武器狀態觸發器,玩家事件控制觸發
器。
B 觸發器的類型由datablock指定。
C 這四種觸發器均是專用觸發器。
D 觸發器的datablock只有一個屬性:tickPeriodMS。
54.關于觸發器的說法錯誤的是() A
A 只有當進入或離開觸發器時會觸發事件,呆在觸發器內不會觸發事件。
B 可以在腳本中創建觸發器,也可以使用World Editor Creator工具創建觸發器。
C 觸發器廣義上分為四類。
D 創建觸發器必須使用datablock。
55.區域觸發器本質上就是游戲中的某一區域,當玩家進入或離開這個區域(觸發事件)時
引擎會探測到,以下哪個對象進入到區域外觸發器不會觸發觸發器?C
A player B vehicle C shape D item
56.以下不是觸發器事件處理函數的是() C
A onEnterTrigger B onLeaveTrigger
C onTriggerTick D onTickTrigger
57.以下不是觸發器事件處理函數的是() D
A onEnterTrigger B onLeaveTrigger
C onTickTrigger D onAddTrigger
58.torque中用來定義聲音的datablock是( )A
A AudioDescription
B AudioTest
C AudioTestProfile
D AudioOpenAl
59.要在服務器端創建聲音,下列語句正確的是( )D
A new AudioProfile(test){};
B new datablock AudioProfile(){};
C datablock test(AudioProfile){};
D datablock AudioProfile(){};
60.下列選項中的代碼,錯誤的是( )A
A $bgsound=alxCreateSource(" MyBackAudio ",
ExpandFilename ("~/data/sound/backgroundsound.mp3"));
B function AudioTestB(%volume)
{
echo("AudioTest volume="@%volume);
alxListenerf(AL_GAIN_LINEAR, %volume);
$pref::Audio::masterVolume = %volume;
alxPlay(AudioTestProfile, 100, 100, 100);
}
C new AudioDescription(AudioGui)
{
volume = 1.0;
isLooping= false;
is3D = false;
type = $GuiAudioType;
};
D alxPlay(MyBackAudioProfile);
61.下面哪種格式的文件可以作為背景音樂?()D
A.*.mp3 B.*.rm
C.*.avg D.*.wav
62.Torque中使用的聲音api是()B
A OPENGL B OPENAL C OPENMS D OPENES
63.關于代碼InitCanvas("Egama4 - 3DGPAi1 Sample Game");以下說法錯誤的是() B
A. Initcanvas 函數主要用于客戶端
B. Initcanvas 函數主要用于服務器端
C. Initcanvas 函數用于創建一個窗口
D. Initcanvas 函數的參數指出了窗口的標題
64.以下關于GUI 的說法錯誤的是:() C
A.GUI 可以用來接收用戶輸入,顯示輸出。
B.菜單屏幕、HUD 界面、選項對話框都屬于GUI 的內容。
C.GUI 制作與Torque 腳本無關。
D.GUI 制作需要美術人員的配合。
65.onAdd 在什么時候被調用?() C
A GUI 被喚醒時
B GUI 被銷毀時隔不久
C GUI 被初始化時
D GUI 被玩家點擊時
66.onSleep 在什么時候被調用?() A
A GUI 被喚醒時
B GUI 被銷毀時隔不久
C GUI 被初始化時
D GUI 被玩家點擊時
67.onRemove 在什么時候被調用?() B
A GUI 被喚醒時
B GUI 被銷毀時隔不久
C GUI 被初始化時
D GUI 被玩家點擊時
68.torque應用程序可以設計成幾種模式?( )C
A 1 b 2 c 3 d 4
69.下列說法正確的是( )A
A CreateServer()調用了OnServerCreated()
B OnServerCreated()調用了LoadMission()
C LoadMission()調用了CreateServer()
D OnServerCreated()調用了CreateServer()
70.服務器端的模塊加載接口是()A
A CreateServer
B onServerCreated
C LoadMission
D onStart
71.語句ServerCmdTellAllClient(%client,%msg)中,第一個參數是()B
A. 該客戶端的GameConnection 句柄
B. 一個索引號,表示該客戶端在客戶端組中的編號
C. %msg 的值,即一個字符串
D. ‘TellEveryone’
72.下面代碼不正確的是()A
A function ServerCmdTellAllClient(%Client,%msg)
{
%count = ClientGroup.getCount();
for ( %i = 0; %i 場景渲染開發
D 網絡模塊開發
2. 游戲引擎的子系統包括()ABCD
A 用戶輸入
B 圖形
C 聲音
D 網絡
3. 游戲引擎的子系統包括()ABCD
A 腳本
B 物理系統
C 輸入輸出
D 3D 場景管理
4.Torque 程序的編制包括以下哪幾個過程?() ABD
A 編輯
B 編譯
C 鏈接
D 運行
5.以下是面向對象程序設計語言的特征的是() BD
A 一個大型程序按功能分割成一些功能模塊,并把這些模塊按層次關系進行組織。
B 面向對象程序設計方法的基本思想是:認為世界由各種對象組成,任何事物都是對象,
是某個對象類的實例;復雜的對象可以由比較簡單的對象以某種方式組成。
C 在程序設計時采用了自頂向下逐步細化的實施方法。
D 對象包含了數據和方法,每個對象就是一個微小的程序。并且規定其它對象不能直接操
縱別的對象的私有數據,只有對象自身的方法才能操作自身的數據。
6.以下哪些是程序的基本結構? ACD
A 順序 B 分支 C 跳轉 D 循環
7.以下是面向對象語言的是 () ACB
A c++ B java C Delphi D lisp
8.關于Exec 函數的作用,以下說法正確的是 。ABC
A. 加載腳本文件
B. 運行腳本代碼
C. 先編譯,再運行
D. 先運行,再編譯
9.一款好的3D引擎包括以下幾個部分:()ABCD
A 模型系統
B 動畫系統
C 物理系統
D 腳本
10.$day = 3;
switch ()
{
case 1 : echo("Monday\n");
case 2 : echo("Tuesday\n");
case 3 : echo("Wednesday\n");
case 4 : echo("Thursday\n");
case 5 : echo("Friday\n");
case 6 : echo("Saturday\n");
case 7 : echo("Sunday\n");
default : echo("error\n");
}
Switch后的()中應填的是()AB
A $DAY
B $day
C %day
D %Day
11.torque 腳本中能連接字符串的是() ABC
A.SPC B. TAB C. @ D. NL
1 以下是一個datablock的聲明.
datablock PlayerData(Iori)
{
className=Avatar;
shapeFile=”~/player.dts”;
emp=true;
}
下列說法正確的是() ABD
A PlayerData是要聲明的datablock的類型
B Iori是要聲明的datablock的名字
C 此聲明返回聲明datablock的名字
D datablock也可以定義自己的方法.
12. 以下是一個datablock的聲明.
datablock PlayerData(Kyo : Iori)
{
className=Avatar;
shapeFile=”~/player1.dts”;
emp=true;
};
以下說法正確的是() ABD
A datablock也可以定義自己的方法.
B Kyo : Iori表示用Iori的屬性給Kyo初始化.
C 此聲明返回聲明datablock的名字
D PlayerData是要聲明的datablock的類型
13. 以下與模型相關的datablock是 AB
A StaticShapeData
B ItemData
C CameraData
D TriggerData
14. 以下與攝像機相關的datablock是 CD
A ParticleData
B LightingData
C CameraData
D PathCameraData
15. 下圖是某torque 游戲的文件結構圖
以下說法中正確的是 ABC
A 此游戲共有兩個mod 目錄
B data文件夾中用于存放地圖文件及圖像、模型等數據文件。
C common control 目錄的名字不可相同。
D torque 程序執行的入口點為根目錄下的main.cs 文件
16.場景被分為四類,下列屬于這四類的是()BC
A 室外場景
B 室內場景
C 模型
D 動態模型
17.ShapebaseData 定義了下列的哪些屬性?()abcd
A 模型的渲染屬性
B 物理屬性
C 攝像機相關屬性
D 與傷害相關的屬性
18. 在使用粒子系統時,要使用的datablock 是() BCD
A TriggerData
B ParticleData
C ParticleEmitterNodeData
D ParticleEmitterData
19. 要在游戲場景中加入一個觸發器,可以使用以下哪幾種方法?() AD
A.使用World Editor Creator B. 使用World Editor
C. 使用World Editor Inspector D. 在腳本中直接添加相應代碼
20. 在Trigger 中定義的用于觸發事件處理的函數有() BCD
A.onStart B.onEnterTrigger
C.onLeaveTrigger D.onTickTrigger
21. 在Trigger 中定義的用于觸發事件處理的函數有() ABD
A.onLeaveTrigger B.onTickTrigger
C.onSleep D.onEnterTrigger
22. 屬于客戶機端的聲音datablock的是()AC
A new AudioDescription(AudioTest){};
B datablock AudioDescription(AudioTest){};
C new AudioProfile(AudioTestProfile){};
D datablock AudioProfile(AudioTestProfile){};
23.torque中用來定義聲音的datablock是( )AC
A AudioDescription
B AudioTest
C AudioProfile
D AudioOpenAl
24. 下列說法正確的是()AD
A 聲音可以預先加載到內存中,以提高游戲速度
B torque中有語音聊天系統
C 聲音的數據只存放在服務器端
D torque 中的聲音是3d 的
25.關于代碼InitCanvas("Egama4 - 3DGPAi1 Sample Game");以下說法正確的是() ACD
A. Initcanvas 函數主要用于客戶端
B. Initcanvas 函數主要用于服務器端
C. Initcanvas 函數用于創建一個窗口
D. Initcanvas 函數的參數指出了窗口的標題
26.以下函數是回調函數的是() AB
A onAdd() B onRemove() C loadmission() D
ParseArgs()
27. 關于loadmission,說法正確的是()ABCD
A 第一階段是下載datablocks
B 第二階段是下載ghost
C 第三階段是設置光照
D 第四階段開始游戲
28. 關于創建獨立服務器的說法正確的是()ABC
A 要把$Server::Dedicated設置為true
B 創建多玩家服務器CreateServer("MultiPlayer", $mapArgument);
C 設置服務器所承載的玩家數量
D 創建歡迎界面
29. 以下關于玩家創建時機的說法錯誤的是 AD
A 玩家角色由服務器創建,句柄也保存在服務器端上。
B 當服務器允許客戶機的請求聯機時,服務器才會為客戶機創建玩家角色,因此創建玩家
角色的方法掛在GameConnection 對象上。
C 當客戶機與服務器的連接斷開時,玩家角色則被刪除。
D 創建玩家角色的代碼必須定義在客戶機端。
30. 以下___是控制玩家角色移動的全局變量。 BCD
A $mvActionValue B $mvLeftAction C $mvRightAction D mvUpAction
31. 下列關于閃電的說法,正確的是()CD
A LightingDatablock 中的聲音是順序播放的
B StrikesPerMinute 規定了響雷的頻率
C ChanceToTarget 是擊中物體的概率
D StrikeWidth 是伸縮寬度
32. 關于PrecipitationData中的屬性說法,正確的是()ABCD
A sizeX,sizeY規定了雨滴的大小
B OffsetSpeed描述了雨在玩家前方移動的速度
C percentage說明了雨的強度
D MaxNumDrop說明了創建雨滴的上界
2010年07月18日
網絡游戲腳本及編程
判斷題
1、程序設計語言經歷了機器語言、匯編語言到高級語言的多個階段。 T
2、腳本根目錄下的main.cs是不可缺的,在tge.exe執行時會第一個自動載入。 T
3、Torque腳本中標識符只能以字母開頭。 T
4、在Torque腳本中,標識符區分大小字。 F
5、switch 后表達式的值逐個和case 后的常量表達式比較,當表達式的值和末常量表達式
的值相等時就順次執行,與c 語言的switch 相同。
6、exec()表示編譯,并執行文件代碼,并通過參數所指定的文件路徑找到文件。 t
7、exec()執行后,沒有返回值。 F
8、torque中的函數定義的基本形式和C/C++類似,也可以return返回一個值。 F
9、Torque腳本支持遞歸調用。 t
10、在調用需傳參數的函數時,如果這些參數的沒有被賦值則這個參數默認為0。 f
11、網絡游戲中游戲邏輯判斷代碼一般放在客戶端。 F
12、Torque中可以通過使用包來實現函數的動態重載。 T
13、在使用包時,可以通過parent::來調用上層包的函數。 T
14、torque 可以通過腳本編寫定義一個對象,然后加入游戲。 t
15、3D 對象shape 都有交互能力。 f
16、按F11 后再按F5 即切換到World Editor Creator 界面。 f
17、torque 只使用shapebasedata 來描述所有基于模型的對象。 f
18、shapebasedata 繼承自gamebasedata。 t
19、shapebasedata 的category 屬性在編輯器中分類顯示時期作用。 t
20、torque 中的item 是動態對象,但不可以移動。 f
21、區域觸發器,就是在游戲世界中的某一位置劃出一塊觸發區,若玩家進入這塊觸發區,
將會在服務器端引發消息。 T
23、Animation Triggers觸發器被用來同步走動過程中的腳步聲。 T
24、所謂Animation triggers,就是在游戲世界中某位置劃出一塊觸發區,若玩家進入這塊
觸發區,將會在服務器端引發消息. T
25、Weapon State Triggers武器狀態觸發器用來管理和控制武器狀態。 T
26、TriggerData中的tickPeriodMS指定引擎檢查觸發器狀態的頻率,單位是秒。F
27、TriggerData 中的tickPeriodMS 指定引擎檢查觸發器狀態的頻率,單位是毫秒。 T
28、torque 像許多游戲引擎一樣使用開源的聲音api opengl。 f
29、可以用程序代碼直接激活聲音,也可以將聲音綁定到對象上。 t
30、audiodescription 繼承sidatablick,而simdatablock 是由simdata 繼承。 f
31、audiodescription 的volume 是表示聲音的默認值。 t
32、audiodescription 的is3d 屬性使聲音具有3d 效果。 t
33、在客戶機和服務器上創建的audiodescription 是相同的。 f
34、在GUI 中,屏幕也可以看作是一個大控件,其余的控件都是它的子控件。 T
35、生成GUI 控件既可以使用腳本代碼手動生成,也可以使用GUI 編輯器。 T
36、GUI 編輯器的Control Inspector view 用于顯示控件的屬性。 F
37、在GUI 編輯器中,要往一個父控件中添加一個子控件,只需左鍵單擊父控件,再添加子
容器即可。 F
38、屏幕上當前顯示的GUI 是通過Canvas.setContent()函數實現的。 T
39、torque引擎是圍繞客戶機/服務器結構設計的。 t
40、設計較好的聯機游戲將會盡可能多的把決策放在客戶機端,以減少服務器的壓力。f
41、函數onservercreated()是服務器端的模塊加載接口。 t
42、torque只支持四種模式,即獨立服務器,主機服務器,純客戶機,客戶機服務器。f
43、游戲即時通信是靠commandtoserver和commandtoclient來實現的。 t
44、gameconection提供了由客戶端連接到服務器的功能機制,用戶可以用腳本改寫。t
45、gameconnection是由networkconnection產生的。 t
46、在torque 中,角色模型和道具模型是DTS 格式的,動畫文件是DSQ 格式的。 T
47、Torque 支持骨骼動畫,可以在3D max 中制作好各個動畫,如站立、跳躍等,再用插件
導出為Torque 支持的DSQ 文件。 T
48、TSShapeConstructor 類的對象在腳本中是直接由引擎來訪問的一個對象,引擎使用它
的屬性值來尋動畫文件的路徑。
49、人物編輯器包括四個字編輯器。 f
50、天空盒會隨玩家的旋轉而旋轉,以使玩家感覺天空不動。 f
51、torque不支持室內場景。 f
52、天空盒使用的圖片的分辨率越高,則fov就要越小。 t
53、mission area中的mirror按鈕制作地形的鏡像,left和right按鈕每次調整90度。 f
54、terrain texture編輯器中,可以手工放置紋理。 f
55、world編輯器由world editor creator和world editor inspector組成。 t
單選題
1. 第一款真正意義上的3D 游戲引擎是()D
A Wolfenstein 3D
B Doom
C Build
D Quake
2. 游戲引擎中最重要最復雜的模塊是()A
A 3D 渲染
B 模型與動畫
C 物理系統
D 粒子系統
3. 關于游戲中的動畫系統,說法正確的是()A
A 目前游戲中的動畫系統分為兩種
B 模型動畫系統是靠內置的骨骼帶動運動
C 骨骼動畫系統可以直接改變骨骼的大小
D 骨骼動畫系統比較常見
4. 物理系統的核心是()D
A 光線跟蹤
B 可見性檢測
C 重力系統
D 碰撞檢測
5. 能夠暗示環境和氣氛,使玩家獲得身臨其境的感覺的模塊是()C
A 渲染模塊
B 網絡模塊
C 音效模塊
D 物理模塊
6. 游戲主循環的作用是()C
A 獲取網絡信息
B 調整物理模塊的參數
C 相應玩家通過各種平臺的輸入
D 初始化相關庫
7. 以下關于計算機程序語言的說法錯誤的是() D
A 機器語言由0,1 組成。
B 匯編語言由簡潔的英文字母、符號串來替代一個特定的指令的二進制串。
C Pascal是一種結構化語言。
D 機器語言效率最高,因此得到了廣泛的使用。
8. 關于路徑,下面說法正確的是: 。 D
A. ./表示當前執行中的腳本文件所在的MOD 目錄
B. ~/表示當前執行中的腳本文件所在的目錄
C. ~/表示當前執行文件所在的磁盤根目錄
D. ~/表示當前執行文件所在的MOD 目錄
9. 按下以下哪一個按鈕可以查看控制臺? A
A.~ B.\
C.ALT D.CTRL
10. Torque 引擎將源文件編譯成何種格式的二進制編碼文件?() B
A .cs B.cs.dso C .dts D .dif
11. 在torque 腳本中,以下非法的賦值語句是: 。B
A.$d=$i+++$j; B.$n=$j+(++$i);
C.$n=$i*$j; D.$n=$i-(%temp+$t4);
12. 在torque 腳本中,以下非法的賦值語句是: 。D
A. $n=$i-$j; B.$n=$j++;
C. $n=$i*%j; D $n=++%i;
13. 表達式echo(15+15.6);的輸出結果是 。C
A.30 B.30.0
C.30.6 D.31
14. 表達式echo(5+15.6);的輸出結果是 。C
A.20 B.20.0
C.20.6 D.21
15. 表達式echo(20+12.6);的輸出結果是() C
A.32 B.32.0
C.32.6 D.33
16. 表達式echo(15+10.6);的輸出結果是: 。 C
A.25 B.25.0
C.25.6 D.26
17. 表達式echo(13+12.6);的輸出結果是() C
A.25 B.25.0
C.25.6 D.26
18. 表達式echo(3+2.6);的輸出結果是() D
A.5 B.5.0
C. 6 D.5.6
19. 表達式echo(13+12.6);的輸出結果是() C
A.25 B.25.0
C.25.6 D.26
20. 以下幾個表達式,值為1 的是() B
A 0 $= ” ” B 0 == ” ” C 0 != “ ” D 0 !$= “ ”
21. torque 腳本中的字符串操作符中,聯接符是 () C
A.SPC B. TAB C. @ D. NL
22. 以下不屬于邏輯運算符的是 A
A.!= B.&&
C.|| D.!
23. 以下不屬于邏輯運算符的是 B
A.&& B. 0)
{
echo(%echoString);
echoRepeat(%echoString, %repeatCount--);
}
}
echoReapeat(“dd”,5)此函數要輸出多少次字符串?() A
A 5
B 12
C 20
D 30
34. 以下說法錯誤的是 A
A.在創建對象的時候,對象原有的屬性是不可以覆蓋的
B.可以使用對象的句柄來獲得對象的屬性和方法
C.在Torque 中,句柄不是獲得對象的唯一途徑
D.在定義標識符時不可以和Torque 腳本的關鍵字重復
35. Torque 中關于對象的說法不正確的是() C
A Torque中的對象是C++類中的實例,與C++類中的對象類型是一一對應的。
B 在Torque中,可以通過句柄和對象名訪問對象。
C 在Torque中,只可以給普通對象添加方法,而不能給datablock添加方法。
D Torque中對象可以重名。
36. Torque中關于對象的說法正確的是() B
A 在Torque中,只可以給普通對象添加方法,而不能給datablock添加方法。
B 在Torque中,可以通過句柄和對象名訪問對象。
C Torque中對象不可以重名。
D 在創建對象的時候,對象原有的屬性是不可以覆蓋的
37.Torque 中關于對象的說法不正確的是() B
A Torque中的對象是C++類中的實例,與C++類中的對象類型是一一對應的。
B 在Torque中,只能通過句柄訪問對象。
C Torque中對象可以重名。
D 在創建對象的時候,對象原有的屬性是可以覆蓋的
38.以下()是所有游戲對象的父對象? A
A GameBaseData B ShapeBaseData
C SimDataBlock D CameraData
39.以下( ) 是所有datablock的父對象. A
A GameBaseData B SimDataBlock
C MissionMarkerData D ShapeBaseData
40.在datablock中帶有子對象的是() A
A GameBaseData
B SimDataBlock
C ShapeBaseData
D TriggerData
41.在datablock中帶有子對象的是() B
A SimDataBlock
B GameBaseData
C ShapeBaseData
D TriggerData
42.關于onServerCreated()的說法正確的是(c )
A 用于創建服務器端
B 用于初始化服務器端
C 用于在服務器創建時加載datablock
D 用于從服務器向客戶機傳遞消息
43.下列對象不能響應玩家的是(a)
A StaticShapeData B ItemData C PlayerData D VehicleData
44.下列代碼不正確的是()D
A function StaticShapeData::create(%data)
{
%obj = new StaticShape() {
dataBlock = %data;};
return %obj;
}
B datablock ItemData(Item_Table)
{
category = "Item_Table";
shapeFile="~/data/shapes/item/cafe_table_001_tge.dts";
mass=1;
friction=1;
}
C function Weapon::onUse(%data,%obj){
if (%obj.getMountedImage($WeaponSlot) != %data.image.getId())
{
serverPlay3D(WeaponUseSound,%obj.getTransform());
%obj.mountImage(%data.image, $WeaponSlot);
if (%obj.client)
messageClient(%obj.client, 'MsgWeaponUsed', '\c0Weapon
selected');
}
}
D function Weapon::onPickup(%this, %obj, %shape, %amount){
if (Parent::onPickup(%this, %obj, %shape, %amount)) {
serverPlay3D(WeaponPickupSound,%obj.getTransform());
if ( (%shape.getClassName() $= "Player" ||
%shape.getClassName() $= "AIPlayer" ) &&
%shape.getMountedImage($WeaponSlot) == 0)
{
%shape.use(%this);
}
}
45.按下以下哪一個按鈕可以查看控制臺?()A
A.~ B.\
C.ALT D.CTRL
46.能夠加入場景的對象被分為四類,下面哪個選項不是正確的?()D
A Interiors B Shapes C Static Shapes D items
47.關于云層的創建,下面說法錯誤的是()B
A.在Torque 中,我們使用Sky mission object 的屬性在MIS 文件中定義三層移
動的云
B.如果在所有高度都有風,最低層的云看起來會比另外的云層移動的更慢些
C.cloudHeightPer 的屬性是確定有關云層可見的信息
D.指定用于云的圖像要寫在天空盒圖像的文件中
48.下列說法不正確的是()d
A 使用世界編輯器加入的對象沒有腳本
B 對象也可以用腳本的方法創建出來
C 可以在腳本中定義一個對象然后加入到游戲世界中
D 用建模工具創建出來的模型可以直接使用
49.在World Editor Control 中有幾種shapes?()D
A 1
B 2
C 3
D 4
50. 下列說法不正確的是()d
A 腳本使用基于shapebasedata 派生來的datablock 來描述基于模型的對象
B shapebasedata 繼承自gamebasedata
C staticshapedata 派生自shapebasedata
D shapebasedata 是一個比較具體的datablock
51.以下選項不是ItemData 新增加的數據成員的是()c
A Pickupname
B dynamictype
C friction
D lighttype
52.使用Torque 引擎編程會涉及到一些觸發器,以下不屬于Torque 所支持的觸發器的
是B
A. 區域觸發器
B. 粒子狀態觸發器
C. 武器狀態觸發器
D. 玩家事件觸發器
53.以下關于觸發器的敘述不正確的是() C
A 觸發器廣義上可分為四類:區域觸發器,動作觸發器,武器狀態觸發器,玩家事件控制觸發
器。
B 觸發器的類型由datablock指定。
C 這四種觸發器均是專用觸發器。
D 觸發器的datablock只有一個屬性:tickPeriodMS。
54.關于觸發器的說法錯誤的是() A
A 只有當進入或離開觸發器時會觸發事件,呆在觸發器內不會觸發事件。
B 可以在腳本中創建觸發器,也可以使用World Editor Creator工具創建觸發器。
C 觸發器廣義上分為四類。
D 創建觸發器必須使用datablock。
55.區域觸發器本質上就是游戲中的某一區域,當玩家進入或離開這個區域(觸發事件)時
引擎會探測到,以下哪個對象進入到區域外觸發器不會觸發觸發器?C
A player B vehicle C shape D item
56.以下不是觸發器事件處理函數的是() C
A onEnterTrigger B onLeaveTrigger
C onTriggerTick D onTickTrigger
57.以下不是觸發器事件處理函數的是() D
A onEnterTrigger B onLeaveTrigger
C onTickTrigger D onAddTrigger
58.torque中用來定義聲音的datablock是( )A
A AudioDescription
B AudioTest
C AudioTestProfile
D AudioOpenAl
59.要在服務器端創建聲音,下列語句正確的是( )D
A new AudioProfile(test){};
B new datablock AudioProfile(){};
C datablock test(AudioProfile){};
D datablock AudioProfile(){};
60.下列選項中的代碼,錯誤的是( )A
A $bgsound=alxCreateSource(" MyBackAudio ",
ExpandFilename ("~/data/sound/backgroundsound.mp3"));
B function AudioTestB(%volume)
{
echo("AudioTest volume="@%volume);
alxListenerf(AL_GAIN_LINEAR, %volume);
$pref::Audio::masterVolume = %volume;
alxPlay(AudioTestProfile, 100, 100, 100);
}
C new AudioDescription(AudioGui)
{
volume = 1.0;
isLooping= false;
is3D = false;
type = $GuiAudioType;
};
D alxPlay(MyBackAudioProfile);
61.下面哪種格式的文件可以作為背景音樂?()D
A.*.mp3 B.*.rm
C.*.avg D.*.wav
62.Torque中使用的聲音api是()B
A OPENGL B OPENAL C OPENMS D OPENES
63.關于代碼InitCanvas("Egama4 - 3DGPAi1 Sample Game");以下說法錯誤的是() B
A. Initcanvas 函數主要用于客戶端
B. Initcanvas 函數主要用于服務器端
C. Initcanvas 函數用于創建一個窗口
D. Initcanvas 函數的參數指出了窗口的標題
64.以下關于GUI 的說法錯誤的是:() C
A.GUI 可以用來接收用戶輸入,顯示輸出。
B.菜單屏幕、HUD 界面、選項對話框都屬于GUI 的內容。
C.GUI 制作與Torque 腳本無關。
D.GUI 制作需要美術人員的配合。
65.onAdd 在什么時候被調用?() C
A GUI 被喚醒時
B GUI 被銷毀時隔不久
C GUI 被初始化時
D GUI 被玩家點擊時
66.onSleep 在什么時候被調用?() A
A GUI 被喚醒時
B GUI 被銷毀時隔不久
C GUI 被初始化時
D GUI 被玩家點擊時
67.onRemove 在什么時候被調用?() B
A GUI 被喚醒時
B GUI 被銷毀時隔不久
C GUI 被初始化時
D GUI 被玩家點擊時
68.torque應用程序可以設計成幾種模式?( )C
A 1 b 2 c 3 d 4
69.下列說法正確的是( )A
A CreateServer()調用了OnServerCreated()
B OnServerCreated()調用了LoadMission()
C LoadMission()調用了CreateServer()
D OnServerCreated()調用了CreateServer()
70.服務器端的模塊加載接口是()A
A CreateServer
B onServerCreated
C LoadMission
D onStart
71.語句ServerCmdTellAllClient(%client,%msg)中,第一個參數是()B
A. 該客戶端的GameConnection 句柄
B. 一個索引號,表示該客戶端在客戶端組中的編號
C. %msg 的值,即一個字符串
D. ‘TellEveryone’
72.下面代碼不正確的是()A
A function ServerCmdTellAllClient(%Client,%msg)
{
%count = ClientGroup.getCount();
for ( %i = 0; %i 場景渲染開發
D 網絡模塊開發
2. 游戲引擎的子系統包括()ABCD
A 用戶輸入
B 圖形
C 聲音
D 網絡
3. 游戲引擎的子系統包括()ABCD
A 腳本
B 物理系統
C 輸入輸出
D 3D 場景管理
4.Torque 程序的編制包括以下哪幾個過程?() ABD
A 編輯
B 編譯
C 鏈接
D 運行
5.以下是面向對象程序設計語言的特征的是() BD
A 一個大型程序按功能分割成一些功能模塊,并把這些模塊按層次關系進行組織。
B 面向對象程序設計方法的基本思想是:認為世界由各種對象組成,任何事物都是對象,
是某個對象類的實例;復雜的對象可以由比較簡單的對象以某種方式組成。
C 在程序設計時采用了自頂向下逐步細化的實施方法。
D 對象包含了數據和方法,每個對象就是一個微小的程序。并且規定其它對象不能直接操
縱別的對象的私有數據,只有對象自身的方法才能操作自身的數據。
6.以下哪些是程序的基本結構? ACD
A 順序 B 分支 C 跳轉 D 循環
7.以下是面向對象語言的是 () ACB
A c++ B java C Delphi D lisp
8.關于Exec 函數的作用,以下說法正確的是 。ABC
A. 加載腳本文件
B. 運行腳本代碼
C. 先編譯,再運行
D. 先運行,再編譯
9.一款好的3D引擎包括以下幾個部分:()ABCD
A 模型系統
B 動畫系統
C 物理系統
D 腳本
10.$day = 3;
switch ()
{
case 1 : echo("Monday\n");
case 2 : echo("Tuesday\n");
case 3 : echo("Wednesday\n");
case 4 : echo("Thursday\n");
case 5 : echo("Friday\n");
case 6 : echo("Saturday\n");
case 7 : echo("Sunday\n");
default : echo("error\n");
}
Switch后的()中應填的是()AB
A $DAY
B $day
C %day
D %Day
11.torque 腳本中能連接字符串的是() ABC
A.SPC B. TAB C. @ D. NL
1 以下是一個datablock的聲明.
datablock PlayerData(Iori)
{
className=Avatar;
shapeFile=”~/player.dts”;
emp=true;
}
下列說法正確的是() ABD
A PlayerData是要聲明的datablock的類型
B Iori是要聲明的datablock的名字
C 此聲明返回聲明datablock的名字
D datablock也可以定義自己的方法.
12. 以下是一個datablock的聲明.
datablock PlayerData(Kyo : Iori)
{
className=Avatar;
shapeFile=”~/player1.dts”;
emp=true;
};
以下說法正確的是() ABD
A datablock也可以定義自己的方法.
B Kyo : Iori表示用Iori的屬性給Kyo初始化.
C 此聲明返回聲明datablock的名字
D PlayerData是要聲明的datablock的類型
13. 以下與模型相關的datablock是 AB
A StaticShapeData
B ItemData
C CameraData
D TriggerData
14. 以下與攝像機相關的datablock是 CD
A ParticleData
B LightingData
C CameraData
D PathCameraData
15. 下圖是某torque 游戲的文件結構圖
以下說法中正確的是 ABC
A 此游戲共有兩個mod 目錄
B data文件夾中用于存放地圖文件及圖像、模型等數據文件。
C common control 目錄的名字不可相同。
D torque 程序執行的入口點為根目錄下的main.cs 文件
16.場景被分為四類,下列屬于這四類的是()BC
A 室外場景
B 室內場景
C 模型
D 動態模型
17.ShapebaseData 定義了下列的哪些屬性?()abcd
A 模型的渲染屬性
B 物理屬性
C 攝像機相關屬性
D 與傷害相關的屬性
18. 在使用粒子系統時,要使用的datablock 是() BCD
A TriggerData
B ParticleData
C ParticleEmitterNodeData
D ParticleEmitterData
19. 要在游戲場景中加入一個觸發器,可以使用以下哪幾種方法?() AD
A.使用World Editor Creator B. 使用World Editor
C. 使用World Editor Inspector D. 在腳本中直接添加相應代碼
20. 在Trigger 中定義的用于觸發事件處理的函數有() BCD
A.onStart B.onEnterTrigger
C.onLeaveTrigger D.onTickTrigger
21. 在Trigger 中定義的用于觸發事件處理的函數有() ABD
A.onLeaveTrigger B.onTickTrigger
C.onSleep D.onEnterTrigger
22. 屬于客戶機端的聲音datablock的是()AC
A new AudioDescription(AudioTest){};
B datablock AudioDescription(AudioTest){};
C new AudioProfile(AudioTestProfile){};
D datablock AudioProfile(AudioTestProfile){};
23.torque中用來定義聲音的datablock是( )AC
A AudioDescription
B AudioTest
C AudioProfile
D AudioOpenAl
24. 下列說法正確的是()AD
A 聲音可以預先加載到內存中,以提高游戲速度
B torque中有語音聊天系統
C 聲音的數據只存放在服務器端
D torque 中的聲音是3d 的
25.關于代碼InitCanvas("Egama4 - 3DGPAi1 Sample Game");以下說法正確的是() ACD
A. Initcanvas 函數主要用于客戶端
B. Initcanvas 函數主要用于服務器端
C. Initcanvas 函數用于創建一個窗口
D. Initcanvas 函數的參數指出了窗口的標題
26.以下函數是回調函數的是() AB
A onAdd() B onRemove() C loadmission() D
ParseArgs()
27. 關于loadmission,說法正確的是()ABCD
A 第一階段是下載datablocks
B 第二階段是下載ghost
C 第三階段是設置光照
D 第四階段開始游戲
28. 關于創建獨立服務器的說法正確的是()ABC
A 要把$Server::Dedicated設置為true
B 創建多玩家服務器CreateServer("MultiPlayer", $mapArgument);
C 設置服務器所承載的玩家數量
D 創建歡迎界面
29. 以下關于玩家創建時機的說法錯誤的是 AD
A 玩家角色由服務器創建,句柄也保存在服務器端上。
B 當服務器允許客戶機的請求聯機時,服務器才會為客戶機創建玩家角色,因此創建玩家
角色的方法掛在GameConnection 對象上。
C 當客戶機與服務器的連接斷開時,玩家角色則被刪除。
D 創建玩家角色的代碼必須定義在客戶機端。
30. 以下___是控制玩家角色移動的全局變量。 BCD
A $mvActionValue B $mvLeftAction C $mvRightAction D mvUpAction
31. 下列關于閃電的說法,正確的是()CD
A LightingDatablock 中的聲音是順序播放的
B StrikesPerMinute 規定了響雷的頻率
C ChanceToTarget 是擊中物體的概率
D StrikeWidth 是伸縮寬度
32. 關于PrecipitationData中的屬性說法,正確的是()ABCD
A sizeX,sizeY規定了雨滴的大小
B OffsetSpeed描述了雨在玩家前方移動的速度
C percentage說明了雨的強度
D MaxNumDrop說明了創建雨滴的上界
總結
- 上一篇: matlab算系统阻抗,基于Matlab
- 下一篇: CAD报错集锦