This section of the manual contains all the information required to understand and use the GameMaker Studio 2 scripting language GML. The code in this language can be used to create your games and is added into objects from the [Object Editor](http://docs2.yoyogames.com/source/_build/2_interface/1_editors/objects.html), normally when you've chosen to make a new [GameMaker Language Project](http://docs2.yoyogames.com/source/_build/1_overview/2_quick_start/2_start.html#new_project), although it can also be used along with [DnD?](http://docs2.yoyogames.com/source/_build/3_scripting/1_drag_and_drop_overview/index.html) (Drag and Drop). Below you can see a typical image of an object with the code editor open on an event:
本手冊的這一部分包含了解和使用 GameMaker Studio 2 腳本語言 GML 所需的全部信息。 該語言用于創建你的游戲,該語言所寫代碼可以從對象編輯器中添加到對象,一般用于GML項目,也可以和DnD?混合使用(拖拽模式)。 下面是一個在對象中添加事件所打開的代碼編輯器的圖像:

Each event has its own tab in the editor and you can add, edit, or remove code from them at any time (for more information on events see [Object Events](http://docs2.yoyogames.com/source/_build/2_interface/1_editors/events/index.html)). The code itself must have a basic structure and can contain resource indices, variables, functions, expressions, keywords... etc... all of which are explained in the sections below. If you are a novice to programming or making the switch from DnD?, it is recommended that you start with the page on Basic Code Structure and then read through them all, testing code from each of the sections within GameMaker Studio 2 itself.
每個事件在編輯器中都有自己的選項卡,您可以隨時從中添加,編輯或刪除代碼(有關事件的更多信息,請參閱對象事件)。 代碼本身必須有一個基本的結構,可以包含資源索引,變量,函數,表達式,關鍵字等...所有這些都會在后面說明。 如果您是編程新手或從 DnD? 切換過來,建議您從基本代碼結構開始全部閱讀,在 GameMaker Studio 2 的每個部分測試代碼。
* * * * *
[基本代碼結構 ](代碼.md) [(Basic Code Structrue)](http://docs2.yoyogames.com/index.html?page=source%2F_build%2F1_overview%2F3_additional_information%2Fimporting_non_bitmap_sprites.html)
A code block consists of a set of instructions, called statements, that are then interpreted by GameMaker Studio 2 and used to make something happen within your game. That "something" can be as simple as adding 2 and 2 to get 4, or as complex as making an enemy run away when their health gets below a certain value. The actual structure of the program can vary greatly, depending on the functions it uses, but broken down to basics it just looks like this:
~~~
<statement>;
<statement>;
...
~~~
Statements should be separated with a ';' symbol to prevent errors with variable declarations and to keep your code clean and tidy, and can consist of variable declarations, expressions and calls to specific functions or scripts. Here is a more visual representation of how a code block can look, this time created as a script in the GameMaker Studio 2 Script Editor:
一個代碼塊是由幾個單句組成的,每個單句之間需要適用“;”做分割。
單句的數量可多可少,取決于模塊的功能作用大小,或者說在游戲里面產生的效果大小。例如:

There are a number of different types of statements and functions, which are discussed at length in subsequent sections of the manual.
以上幾種不同類型的代碼和函數,將在本手冊的后續章節中詳細討論。
* * * * *
[函數](函數.md) [(Functions)](http://docs2.yoyogames.com/index.html?page=source%2F_build%2F1_overview%2F3_additional_information%2Fimporting_non_bitmap_sprites.html)
The general definition of a function in GML is something like this:
在GML語言中函數的一般定義是
> A function has an input and an output, and the output is related somehow to the input.
> 函數具有輸入和輸出,并且輸入以某種方式影響輸出。
In GameMaker Studio 2 you use functions as part of the code structure to make things happen in your game and there are a great number of GML functions available to you, all of which are explained in the [Language Reference ](http://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/index.html)section of the manual.
In GML a function has the form of a function name, followed by the input arguments between brackets and separated by commas (if the function has no input arguments then just brackets are used). Here is an outline of the structure of a function:
在GameMaker Studio 2中,您可以使用函數作為代碼結構的一部分,以便在游戲中實現一些效果,并且有大量的GML函數供你使用,所有這些函數都在本手冊的“**語言參考**”章節中進行了解釋。
在GML中,函數有特殊的命名規則,在名稱后跟括號,在括號之間的輸入參數,并用逗號分隔(如果函數沒有任何參數,則只需要使用1個空的括號即可)。 以下是函數命名的1個實例:
~~~
<function>(<arg0>, <arg1> ,... <arg15>);
~~~
Generally there are two types of functions - first, there is the huge collection of built-in functions which are used to control all aspects of your game, and, second, any scripts you define in your game can also be used as a function (but not always).
Some functions return values and can be used in expressions, while others simply execute commands, as illustrated in the following two examples:
通常有兩種類型的函數。
- 第1種,大量用于控制游戲各個方面的的內置函數(GameMaker Studio 2自帶的函數)
- 第2種,用戶自定義的任何腳本也可以用作函數( 但不全是???)。
某些函數會返回值,并且返還的值可以在表達式中使用;還有些函數只是單純執行命令并不返還任何值,如以下兩個示例所示:
~~~
instance_destroy(); // 銷毀正在調用的實例,這個函數不需要任何輸入參數,也不返回任何值 Destroy the calling instance - this requires no arguments and returns nothing
dist = point_distance(x, y, mouse_x, mouse_y; // 獲得當前實例與鼠標焦點的距離,它需要4個參數,返回1個實值(在數學上也稱“實數”) Get the distance from the current instance position to the mouse position - takes four arguments and returns a real value
~~~
You should note that it is impossible to use a function by itself as the left-hand side of an assignment. For example, the following code would give you an error:
您應該注意,不可以將函數單獨用作**賦值表達式的左側**。 例如以下代碼就是錯誤的用法:
~~~
instance_nearest(x, y, obj).speed = 0;
~~~
The return value for the expression in that code example is a real number (the unique ID value for the nearest instance) and so it must be enclosed in brackets to be used in this way and properly address the instance required (see Addressing Variables In Other Instances for more information). The above code would be correctly written as:
上面的代碼示例中的表達式,返回一個實數(距離最近實例的唯一ID值),因此必須將其(*即instance_nearest()*)括在括號內,以便正確地處理函數的返回的實例(更多信息請參閱在[尋址變量](http://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/7_addressing_variables.html) 章節)。 所以上面的代碼正確寫法為:
~~~
(instance_nearest(x, y, obj)).speed = 0;
//or或者另外一種寫法
var inst = instance_nearest(x, y, obj);
inst.speed = 0;
~~~
* * * * *
[腳本](腳本.md) [(Scripts)](http://docs2.yoyogames.com/index.html?page=source%2F_build%2F1_overview%2F3_additional_information%2Fimporting_non_bitmap_sprites.html)
Scripts are essentially functions that you write yourself as short snippets of code that can resolve expressions, return values or anything else that the language permits. Basically if you have a block of code that you use in more than one place or object, then it's probably better off in a script, as it means that you can change it once when required and the change will be "picked up" by every object that has a call to the script. They can also be very handy from an organisational point of view, even if the code they hold is called only once by a single object, since it permits you to break large code blocks into more easily managed "chunks" at logical points.
腳本本質上是您自己編寫的函數,它們可以是語法允許的任何代碼片段,如表達式,返回值等等。
一般來講,如果你有一個在多個地方、多個對象中調用的相同代碼塊,那么將這個代碼塊作為腳本使用可能會更好。因為這意味著你可以在有需要更改它時,只需要在腳本內更改一次,那么所有原先調用這個腳本的對象,都會“更換為”這個已經改變了的腳本。
從文件組織的角度來看,即使腳本的代碼只被1個對象調用了1次,它們也非常便捷。因為它允許您將大型代碼塊分解為更容易管理的1個個包含邏輯代碼塊的小腳本。
When you create a script the values that you choose to pass into it are called arguments and you'll want to access these arguments - either when using the script action, or when calling the script as a function from a program or from another script. These arguments are stored in the built in variables:
創建腳本時,您選擇傳入其中的值稱為**參數**。 當執行腳本時 ,或者從程序或其他腳本調用該腳本作為函數時,您將需要訪問這些參數,而這些參數存儲在內置變量中:
~~~
argument0, argument1, ..., etc... up to argument15
~~~
So there can be at most 16 arguments passed through to a script when called from code using the argument variables, and when using the argument0...15 variables for a script, you must ensure that the script uses all the supplied arguments. For example if you have a script that takes two arguments and you only supply one then you will get an error for that script. The same goes if you supply more arguments than you require.
當調用腳本或者創建腳本時,最多可以有16個參數傳遞給腳本,這些參數依次命名為*argument0,argument1 ... argument15*,必須確保給腳本提供所有需要的參數,個數不能少也不能多。
例如,如果您創建帶有兩個參數的腳本,但在調用腳本只提供一個參數,那么您將收到調用腳本發生錯誤的信息。 如果您提供的參數個數多于腳本需要的參數個數,同樣會報錯。
However you can supply a variable number of arguments to a script using the built in argument array, and you are not limited to a maximum of 16 arguments either when using this array, but instead can have as many as you require (although, again, you must ensure that all arguments are referenced within the script):
不過您可以使用**數組**做為腳本參數,而數組的元素個數是可變的,這樣變相的會得到1個參數數量可變的腳本。而且數組的元素個數可以超過16個,這樣你可以根據所需自由使用多個參數(盡管如此, 您必須確保在調用腳本中傳入了所有的參數):
~~~
argument[0 ... max_num]
~~~
When passing in a variable number of arguments as an array of values you can use the following function:
將可變數量的參數作為值數組傳遞時,可以使用以下函數:
> [argument_count](http://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/argument_count.html)
This can be used to find out how many arguments have been passed and adapt the script to use only those arguments supplied.
NOTE: You cannot mix the two types of argument variables when calling a script. You must use either argument0...15 or argument[n].
Scripts can also return a value, so that they can be used in expressions. For this you would use the return statement:
這可用于找出已傳遞的參數數量,并使腳本僅使用提供的參數。
注意:調用腳本時,不能混合使用兩種類型的參數變量。 您必須使用argument0 ... 15或argument [n]。
腳本還可以返回一個值,以便可以在表達式中使用它們。 為此,您將使用return語句:
~~~
return <expression>
~~~
It should be noted that the execution of the script ends at the return statement, meaning that any code which comes after the return has been called will not be run. Here is a short example script called "scr_sqr" which calculates the square of whatever value is passed to it, and it includes error catching in case the argument that it is passed is not a real number:
注意:腳本在return語句末尾處結束,這意味著在return語句后所有的代碼都不會被執行。
下面是1個簡短的名為"spr_sqr"的腳本代碼,這個腳本
~~~
{
if !is_real(argument0)
{
return 0;
}
else
{
return (argument0 * argument0);
}
}
~~~
To call a script from within a piece of code, just act the same way as when calling functions - that is, write the script name with the argument values in parentheses. So, the above script would be called like this:
要從一段代碼中調用腳本,只需采用和調用函數時相同的方式 - 也就是說,"腳本名稱(參數值)"這樣的形式。 所以,上面的腳本調用將變成如下形式:
~~~
if keyboard_check_pressed(vk_enter)
{
val = scr_sqr(amount);
}
~~~
It is worth noting that when writing your own scripts they can also have certain JSDoc style comments added so that when you use them in your code they show up in auto-complete along with their arguments and other details. you can find out more about this from the section [JSDoc Script Comments](http://docs2.yoyogames.com/source/_build/1_overview/3_additional_information/jsdoc.html) for more information. Further note that when you are typing out your scripts in the code editor, you can click or use the middle mouse button on the script name to open it for editing directly.
值得注意的是,在編寫自己的腳本時,也可以為腳本添加某些JSDoc樣式注釋,這樣當您在代碼中使用它們時,它們會自動補全,并顯示參數和其他詳細信息。 您可以從**[JSDoc腳本注釋]**章節中了解更多信息,以獲取更多信息。 另請注意,在代碼編輯器中鍵入腳本時,可以單擊或使用腳本名稱上的鼠標中鍵將其打開以進行直接編輯。
*****
[注釋](注釋.md)[(Comments)](http://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/4_comments.html)
When working in collaboration with other people, when dealing with a large project, or even just for your own reference and debugging, leaving comments in your codes and scripts is very important. In GameMaker Studio 2 you have various mechanisms to help you leave notes and comments about code sections and even whole blocks of code that can be seen in the event list of the object that you are currently editing, and in this way you can leave notes to yourself and to your colleagues, or to explain a particularly tricky piece of code, or even just leave a reminder about what something does.
為你的代碼和腳本寫注釋,這對團隊協作、處理大型項目、為你自己留下參考信息都是非常重要。
在與其他人合作時,在處理大型項目時,甚至只是為了您自己的參考和調試時,在代碼和腳本中留下注釋非常重要。在GameMaker Studio 2中,您有各種方法可以幫助您留下關于代碼部分的注釋,甚至可以在您當前正在編輯的對象的事件列表中看到的整個代碼塊,這樣您就可以留下注釋你自己和你的同事,或解釋一個特別棘手的代碼,或者只是提醒一些代碼的作用。
The first thing you can do is leave a short comment using // before the text. For example:
```
//initialize variables
sr = 10;
hp = 100;
```
You may also leave multi-line comments, to give credit, to omit a complete section of code for debugging, or even to explain the arguments of a script. For that you can use /* ... */ like this:
```
/*
usage:
diff = angle_difference(angle1,angle2);
angle1 first direction in degrees, real
angle2 second direction in degrees, real
returns: difference of the given angles in degrees, -180 to 180
GMLscripts.com
*/
{
return ((((argument0 - argument1) mod 360) + 540) mod 360) - 180;
}
```
Finally, if you are writing custom scripts and want to have some control over how they are treated by the IDE (ie: have auto-complete or show the script arguments) then you should be writing your comments using JSDoc notation as explained here.
*****
[保留關鍵字](關鍵詞.md)
*****
[變量及作用域](變量及作用域.md)
*****
[在其他實例中尋址變量](尋址變量.md)
*****
[評估順序](評估順序.md)
*****
[數據類型](數據類型.md)
*****
[數組](數組.md)
*****
[賦值](賦值.md)
*****
[表達式](表達式.md)
*****
[訪問器](數據存取.md)
*****
[功能性語法](功能性語法.md)
- 介紹
- 新手須知
- 版本授權
- 安裝
- 更新
- 發布日志
- 所需SDK
- 賬號
- 首選項設置
- 拖拽編程
- 擴展編輯器設置
- 基本項設置
- 圖片編輯器設置
- 語言設置
- 市場設置
- 對象編輯器設置
- 插件設置
- 資源樹設置
- 場景編輯器設置
- 運行庫設置
- 樣條編輯器設置
- 精靈編輯器設置
- 文本編輯器設置
- 瓷片編輯器設置
- 時間軸設置
- 輸入
- 快速上手
- 概覽
- 啟動頁
- 工作區
- 資源樹
- 工作流
- 創建精靈
- 創建瓷片集
- 創建音頻
- 創建對象
- 創建場景
- 編譯
- 調試
- 快捷鍵
- 菜單
- 文件菜單
- 編輯菜單
- 構建菜單
- 窗口菜單
- 工具菜單
- 市場菜單
- 幫助菜單
- 布局菜單
- 附加信息
- 位運算符和二進制
- 命令行
- 出錯信息
- 文件系統
- 導入非位圖精靈
- JSDoc使用
- 微型WEB服務端
- 過時函數
- 紋理頁
- 使用緩沖區
- 編輯器
- 擴展編輯器
- 字體編輯器
- 圖像編輯器
- 內含文件編輯器
- 備注編輯器
- 對象編輯器
- 路徑編輯器
- 場景編輯器
- 腳本編輯器
- 著色器編輯器
- 音頻編輯器
- 精靈編輯器
- 瓷片集編輯器
- 時間軸編輯器
- 對象可用事件
- 異步事件
- 繪制事件
- 手勢事件
- 其它
- 調試管理器
- 設備管理器
- YoYo資源市場
- 輸出停靠欄
- 項目圖生成器
- 最近使用窗口
- 遠程工作
- 混音器
- 版本控制
- 設置項
- 音頻組
- 配置項
- 跨平臺配置
- 紋理組
- 游戲配置選項
- AmazonFire 配置
- Android配置
- HTML5配置
- iOS配置
- Linux配置
- Mac配置
- Windows配置
- WindowsUWP配置
- 腳本編程
- 拖放編程概覽
- 拖放編程功能索引
- GML概覽
- 代碼
- 數組
- array_create
- array_copy
- array_equals
- array_length_1d
- array_height_2d
- array_length_2d
- 賦值
- 表達式
- 數據存取
- 功能性語法
- 函數
- 腳本
- 注釋
- 關鍵詞
- 變量及作用域
- variable_global_exists
- variable_global_get
- variable_global_set
- variable_instance_exists
- variable_instance_get
- variable_instance_get_names
- variable_instance_set
- 尋址變量
- 評估順序
- 數據類型
- is_array
- is_bool
- is_int32
- is_int64
- is_matrix
- is_ptr
- is_real
- is_string
- is_undefined
- is_vec3
- is_vec4
- 變元計數
- 指針
- 內置變量屬性
- async_load
- health
- lives
- score
- GML函數索引
- asset_get_index
- asset_get_type
- Compatibility_Functions
- Asynchronous Functions
- Audio
- Buffers
- Cameras And Display (攝像機和顯示)
- Cameras(攝像機)
- camera_apply
- camera_create
- camera_create_view
- camera_destroy
- camera_get_active
- camera_get_begin_script
- camera_get_default
- camera_get_end_script
- camera_get_proj_mat
- camera_get_update_script
- camera_get_view_angle
- camera_get_view_border_x
- camera_get_view_border_y
- camera_get_view_height
- camera_get_view_mat
- camera_get_view_speed_x
- camera_get_view_speed_y
- camera_get_view_target
- camera_get_view_width
- camera_get_view_x
- camera_get_view_y
- camera_set_begin_script
- camera_set_default
- camera_set_end_script
- camera_set_proj_mat
- camera_set_update_script
- camera_set_view_angle
- camera_set_view_border
- camera_set_view_mat
- camera_set_view_pos
- camera_set_view_size
- camera_set_view_speed
- camera_set_view_target
- view_camera
- view_current
- view_enabled
- view_get_camera
- view_get_hport
- view_get_surface_id
- view_get_visible
- view_get_wport
- view_get_xport
- view_get_yport
- view_hport
- view_set_camera
- view_set_hport
- view_set_surface_id
- view_set_visible
- view_set_wport
- view_set_xport
- view_set_yport
- view_surface_id
- view_visible
- view_wport
- view_xport
- view_yport
- The Screen Display
- Controls
- Data_Structures(數據結構)
- ds_exists
- ds_set_precision
- DS Grids
- DS Lists(列表)
- ds_list_create
- ds_list_destroy
- ds_list_clear
- ds_list_empty
- ds_list_size
- ds_list_add
- ds_list_set
- ds_list_delete
- ds_list_find_index
- ds_list_find_value
- ds_list_insert
- ds_list_replace
- ds_list_shuffle
- ds_list_sort
- ds_list_copy
- ds_list_read
- ds_list_write
- ds_list_mark_as_list
- ds_list_mark_as_map
- DS Maps(映射表)
- ds_map_exists
- ds_map_create
- ds_map_add
- ds_map_clear
- ds_map_copy
- ds_map_replace
- ds_map_delete
- ds_map_empty
- ds_map_size
- ds_map_find_first
- ds_map_find_last
- ds_map_find_next
- ds_map_find_previous
- ds_map_find_value
- ds_map_read
- ds_map_write
- ds_map_destroy
- ds_map_secure_save
- ds_map_secure_save_buffer
- ds_map_secure_load
- ds_map_secure_load_buffer
- ds_map_add_list
- ds_map_add_map
- ds_map_replace_list
- ds_map_replace_map
- DS Priority Queues
- DS Queues
- DS Stacks
- Debugging
- Drawing
- draw_enable_drawevent
- draw_flush
- Colour(顏色)
- colour_get_blue
- colour_get_green
- colour_get_hue
- colour_get_red
- colour_get_saturation
- colour_get_value
- draw_clear
- draw_clear_alpha
- draw_get_alpha
- draw_get_colour
- draw_getpixel
- draw_getpixel_ext
- draw_set_alpha
- draw_set_colour
- make_colour_hsv
- make_colour_rgb
- merge_colour
- Forms
- draw_arrow
- draw_button
- draw_circle
- draw_circle_colour
- draw_ellipse
- draw_ellipse_colour
- draw_healthbar
- draw_line
- draw_line_colour
- draw_line_width
- draw_line_width_colour
- draw_path
- draw_point
- draw_point_colour
- draw_rectangle
- draw_rectangle_colour
- draw_roundrect
- draw_roundrect_colour
- draw_roundrect_colour_ext
- draw_roundrect_ext
- draw_set_circle_precision
- draw_triangle
- draw_triangle_colour
- GPU
- gpu_get_alphatestenable
- gpu_get_alphatestref
- gpu_get_blendenable
- gpu_get_blendmode
- gpu_get_blendmode_dest
- gpu_get_blendmode_destalpha
- gpu_get_blendmode_ext
- gpu_get_blendmode_ext_sepalpha
- gpu_get_blendmode_src
- gpu_get_blendmode_srcalpha
- gpu_get_colorwriteenable
- gpu_get_cullmode
- gpu_get_fog
- gpu_get_state
- gpu_get_texfilter
- gpu_get_texfilter_ext
- gpu_get_texrepeat
- gpu_get_texrepeat_ext
- gpu_get_zfunc
- gpu_get_ztestenable
- gpu_get_zwriteenable
- gpu_pop_state
- gpu_push_state
- gpu_set_alphatestenable
- gpu_set_alphatestref
- gpu_set_blendenable
- gpu_set_blendmode
- gpu_set_blendmode_ext
- gpu_set_blendmode_ext_sepalpha
- gpu_set_colorwriteenable
- gpu_set_cullmode
- gpu_set_fog
- gpu_set_state
- gpu_set_texfilter
- gpu_set_texfilter_ext
- gpu_set_texrepeat
- gpu_set_texrepeat_ext
- gpu_set_zfunc
- gpu_set_ztestenable
- gpu_set_zwriteenable
- Lighting
- draw_get_lighting
- draw_light_define_ambient
- draw_light_define_direction
- draw_light_define_point
- draw_light_enable
- draw_light_get
- draw_light_get_ambient
- draw_set_lighting
- Mipmapping
- gpu_get_tex_max_aniso
- gpu_get_tex_max_aniso_ext
- gpu_get_tex_max_mip
- gpu_get_tex_max_mip_ext
- gpu_get_tex_min_mip
- gpu_get_tex_min_mip_ext
- gpu_get_tex_mip_bias
- gpu_get_tex_mip_bias_ext
- gpu_get_tex_mip_enable
- gpu_get_tex_mip_enable_ext
- gpu_get_tex_mip_filter
- gpu_get_tex_mip_filter_ext
- gpu_set_tex_max_aniso
- gpu_set_tex_max_aniso_ext
- gpu_set_tex_max_mip
- gpu_set_tex_max_mip_ext
- gpu_set_tex_min_mip
- gpu_set_tex_min_mip_ext
- gpu_set_tex_mip_bias
- gpu_set_tex_mip_bias_ext
- gpu_set_tex_mip_enable
- gpu_set_tex_mip_enable_ext
- gpu_set_tex_mip_filter
- gpu_set_tex_mip_filter_ext
- Particles
- Particle Emitters
- part_emitter_burst
- part_emitter_clear
- part_emitter_create
- part_emitter_destroy
- part_emitter_destroy_all
- part_emitter_exists
- part_emitter_region
- part_emitter_stream
- Particle Systems
- part_particles_clear
- part_particles_count
- part_particles_create
- part_particles_create_colour
- part_system_automatic_draw
- part_system_automatic_update
- part_system_clear
- part_system_create
- part_system_create_layer
- part_system_depth
- part_system_destroy
- part_system_draw_order
- part_system_drawit
- part_system_exists
- part_system_get_layer
- part_system_layer
- part_system_position
- part_system_update
- Particle Types
- part_type_alpha1
- part_type_alpha2
- part_type_alpha3
- part_type_blend
- part_type_clear
- part_type_colour_hsv
- part_type_colour_mix
- part_type_colour_rgb
- part_type_colour1
- part_type_colour2
- part_type_colour3
- part_type_create
- part_type_death
- part_type_destroy
- part_type_direction
- part_type_exists
- part_type_gravity
- part_type_life
- part_type_orientation
- part_type_scale
- part_type_shape
- part_type_size
- part_type_speed
- part_type_sprite
- part_type_step
- Simple Effects
- ef_cloud
- ef_ellipse
- ef_explosion
- ef_firework
- ef_flare
- ef_rain
- ef_ring
- ef_smoke
- ef_smokeup
- ef_snow
- ef_spark
- ef_star
- effect_clear
- effect_create_above
- effect_create_below
- Primitives(基本幾何體)
- draw_primitve_begin
- draw_primitive_begin_texture
- draw_primitive_end
- draw_vertex
- draw_vertex_colour
- draw_vertex_texture
- draw_vertex_texture_colour
- Primitive Building
- vertex_argb
- vertex_begin
- vertex_colour
- vertex_create_buffer
- vertex_create_buffer_ext
- vertex_create_buffer_from_buffer
- vertex_create_buffer_from_buffer_ext
- vertex_delete_buffer
- vertex_end
- vertex_float1
- vertex_float2
- vertex_float3
- vertex_float4
- vertex_freeze
- vertex_get_buffer_size
- vertex_get_number
- vertex_normal
- vertex_position
- vertex_position_3d
- vertex_submit
- vertex_texcoord
- vertex_ubyte4
- Vertex Formats
- vertex_format_add_colour
- vertex_format_add_custom
- vertex_format_add_normal
- vertex_format_add_position
- vertex_format_add_position_3d
- vertex_format_add_textcoord
- vertex_format_begin
- vertex_format_delete
- vertex_format_end
- Sprites_and_Tiles
- draw_enable_swf_aa
- draw_get_swf_aa_level
- draw_self
- draw_set_swf_aa_level
- draw_skeleton
- draw_skeleton_collision
- draw_skeleton_instance
- draw_skeleton_time
- draw_sprite
- draw_sprite_ext
- draw_sprite_general
- draw_sprite_part
- draw_sprite_part_ext
- draw_sprite_pos
- draw_sprite_stretched
- draw_sprite_stretched_ext
- draw_sprite_tiled
- draw_sprite_tiled_ext
- draw_tile
- draw_tilemap
- Surfaces
- application_get_position
- application_surface
- application_surface_draw_enable
- application_surface_enable
- application_surface_is_enabled
- draw_surface
- draw_surface_ext
- draw_surface_general
- draw_surface_part
- draw_surface_part_ext
- draw_surface_stretched
- draw_surface_stretched_ext
- draw_surface_tiled
- draw_surface_tiled_ext
- surface_copy
- surface_copy_part
- surface_create
- surface_create_ext
- surface_exists
- surface_free
- surface_get_height
- surface_get_texture
- surface_get_width
- surface_getpixel
- surface_getpixel_ext
- surface_reset_target
- surface_resize
- surface_save
- surface_save_part
- surface_set_target
- surface_set_target_ext
- The Application Surface
- Text
- draw_highscore
- draw_set_font
- draw_set_halign
- draw_set_valign
- draw_text
- draw_text_colour
- draw_text_ext
- draw_text_ext_colour
- draw_text_ext_transformed
- draw_text_ext_transformed_colour
- draw_text_transformed
- draw_text_transformed_colour
- Textures
- draw_texture_flush
- texture_get_height
- texture_get_texel_height
- texture_get_texel_width
- texture_get_uvs
- texture_get_width
- texture_global_scale
- texture_set_stage
- File Handing
- Fonts
- Game
- In App Purchases
- Instances
- 數學運算(Maths)
- Date and Time
- 數字方法(Number Functions)
- Vector Functions
- Matrices
- Miscellaneous
- Movement and Collisions
- Networking
- Objects
- Paths
- Physics
- 場景(Rooms)
- 常規的場景函數及變量(General Room Functions And Varibales)
- 常規圖層函數(General Layer Functions)
- 瓷片函數(TIlemap Tile Functions)
- 背景圖層(Backgrounds)
- 精靈圖層(Sprites)
- Scirpts
- Shaders
- Sprites
- Steam API
- Strings
- Timelines
- Web
- XBox_Live
- 翻譯名詞對照表