## 工作空間
登錄并啟動新項目后,GameMaker Studio 2 將帶您進入初始工作區,并為 IDE 布置一些基本窗口。 一般來說,工作區只是一個區域,您工作時可以在此組織游戲的不同資源:

您可以看到,初始工作區的選項卡位于屏幕頂部(您可以雙擊該選項卡來重命名),您也可以通過單擊側面按鈕  為項目創建更多的工作空間,從而為您的項目創建復合工作區。例如,也許你正在研究玩家和幾個敵方對象之間的交互,你可以把玩家放在一個獨立工作空間,再把敵人對象放在另一個工作區,然后再弄個工作區只放幾個腳本都可以。
工作空間的另一個重要特點是您可以點擊標簽,并且按住鼠標按鈕 - 將其從主 IDE 窗口拖出到自己的電腦桌面中,使其便于組織, 例如您正在使用多個顯示器。您還可以將這些輔助工作區窗口通過將標簽拖回到第一個窗口,來將其重新整合到主窗口中。請注意,盡管在執行此操作時,您看似運行了兩個 IDE 實例,但是它們都屬于同一個項目,除非您專門打開了GameMaker Studio 2 中的兩個實例,否則無法將其中一個項目與另一個項目分開。
當您第一次啟動 GameMaker Studio 2 時,您的工作區將被幾個“停靠”到 IDE 的窗口填充。以下為簡要說明:
### 輸出
您可以在上方的圖像中看到輸出窗口。 此窗口中有許多子選項卡用于源代碼控制,搜索以及調試,初始選項卡用于控制臺/編譯器輸出,顯示當您編譯的游戲進行測試或數據最終打包分發時發生了什么。 除此之外還將顯示您選擇在運行庫從項目發送的所有調試消息,并且可以從“常規首選項”設置顯示不同數量的信息。
如果您關閉了輸出窗口并希望恢復,可以使用窗口菜單(來恢復)。
### 資源
在屏幕右側,您可以找到資源樹。 您可以在此創建和編輯游戲使用的資源,以及生成和更改配置。 通過右鍵單擊資源文件夾并選擇“創建”來創建資源,或從 IDE 頂部的上下文菜單中選擇資源選項(來創建)。
選擇這些選項之一將為您創建給定類型的空資源。 請注意,默認情況下,資源樹停靠在IDE中,您可以通過點擊頂部的“資源”文本并將其拖放到系統桌面中。 您可以隨時通過將其拖動到IDE的兩側或底部來重新使其停靠。 如果關閉資源窗口并希望恢復,可以使用窗口菜單。
有關資源的更多內容,請參閱編輯部分。
### 瀏覽工作區
在任何工作區內,您可以隨時在任何地方通過單擊右鍵來調用菜單,菜單內容如下:

單擊資源將打開資源樹中可以創建的所有資源類型的列表,選擇任何一個將為您創建該資源,并將工作區焦點放在該資源的編輯器窗口上。 如果您單擊窗口選項,將會顯示工作區中所有打開窗口的列表,您可以選擇其中任何一個來將工作區焦點放在該窗口上。最后的 Go to 選項將打開以下窗口:
此窗口允許您查看游戲中所有資源組成的列表,您可以在窗口頂部輸入文本,以過濾顯示的結果。 例如,如果您有4個精靈,其名稱中都有含有logo,如spr_Logo_One,那么輸入“logo”將只顯示這四個精靈。 單擊列表中顯示的任一資源將在當前工作空間中打開它,如果已經在工作區中打開,則會把工作區的焦點放在其上。 請注意,您也可以使用鍵盤快捷鍵Ctrl/Command + T 打開 Go to 窗口。
導航工作區的另一種使用方法是使用書簽。 您可以將最多10個“書簽”添加到 IDE 窗口,腳本或對象事件中的代碼中,然后便可以使用正確的組合鍵快速在它們之間切換。 要添加書簽,只需選擇要標記目標窗口或代碼行,然后利用組合鍵 Ctrl + Shift + NumberKey [0 - 9] 來設置書簽,并在 IDE 中標記該項目,如下所示:

在上面的圖像中,我們已經將編號為1,2和4的書簽分配給 IDE 的不同部分,現在我們可以離開這些窗口,甚至完全關閉它們,因為書簽允許我們在任何時候通過按 ?????????????????????????????Ctrl + Shift + NumberKey [0 - 9] 直接回到所標示的部分。如果書簽項目已關閉,它將被重新打開,另外工作區也將切換到所選書簽(所屬工作區)。
注意! 書簽不會與項目一起保存,當 IDE 關閉時也不會保存。 它們僅對所創建的會話有效。
如果要刪除書簽,只需要選擇已加書簽的窗口或代碼行,然后重復用于創建書簽的組合鍵 ?Ctrl + Shift + NumberKey [0 - 9] 即可。
導航工作區的其他使用方法包括使用鍵盤快捷鍵 Ctrl/Command + Alt + 在所按下方向的所有打開的窗口之間移動,按住鼠標中鍵,然后拖動鼠標即可平移工作區。
### 停靠欄
我們上面簡要提到,您可以將許多窗口停靠在當前的工作區中,并且可以拆卸已經停靠的窗口。 例如,如果您單擊頂部的“資源樹”選項卡并將其拖動到當前工作空間的左側,您將看到它成為一個自由浮動窗口。

相反,如果您將某些窗口拖動到工作區的兩側或底部,那么它們將會停靠,這意味著它們成為IDE 窗口的一部分,不再獨立。 當您執行上述操做時,您需要將窗口拖動到想要要停靠的區域,當其突出顯示時即表明可以將窗口停靠在那里:

通過這種方式,您可以創建一個適合您工作流程和做事方式的個性化 IDE 體驗。 值得注意的是,所有停靠的窗口可以通過點擊停靠的窗口側面的按鈕(在上圖中突出顯示)單獨隱藏/取消隱藏,或者您可以使用IDE的頂部的快捷鍵隱藏/取消隱藏所有停靠的窗口,并注意 IDE 會記住每個會話中的停靠窗口。
注意:當更改編輯器時,某些窗口將從底欄中消失,如在房間編輯器中。 然而,當您回到之前的編輯器時,他們將在底欄重新打開。
### 快捷功能按鈕
下面我們列出了一些默認情況下可以使用 GameMaker Studio 2 的快捷按鈕。這些按鈕可以在IDE 的頂部找到,代表了許多最常用的命令,您在 GameMaker Studio 2 中可以使用,以使您的工作更加順滑(注意這些按鈕中的大多數也有等效的菜單選項):
 在新工作區中打開起始頁
 創建一個新項目
 打開以前創建的項目
 保存當前項目。請注意,默認情況下,GameMaker Studio 2 將自動保存您的項目(取決于您設置的首選項),此按鈕可以使您隨時強制保存
 單擊此項將和調試模塊一起測試運行當前項目。使用它來測試和調試你的游戲。您可以從 Debugger 部分找到有關調試模塊的更多信息
 單擊此項將在所選目標平臺上測試運行您的項目
 此按鈕可用于取消您的游戲編譯到目標模塊,或在游戲編譯完畢后停止運行游戲(僅限某些目標)
 按此按鈕將清除當前資源編譯器的緩存。 GameMaker Studio 2 將圖像,聲音,腳本等存儲在緩存中,以便在測試游戲時節省時間,因此它只會在測試之前重新編譯已更改的內容。但是,這些緩存可能會隨著時間的推移而變得損壞或“過時”,或者您可能希望進行完整的測試,因而不使用先前完成的緩存。在這種情況下,您可以通過按此按鈕來清除緩存
重要信息:建議您在為任何目標平臺創建可執行文件之前,始終先清除緩存
 點擊此按鈕將打開主游戲選項編輯器。請注意,這只是當前項目的主要以及一般選項,其他平臺特定選項作為資源樹的一部分列出
 點擊(或者按下)此按鈕將打開手冊
 縮放聚焦的工作空間,使所有內容變小(您也可以通過鼠標滾輪來實現)
 重新設置聚焦工作區為1:1比例
 縮放聚焦的工作空間,使所有內容變大(您也可以通過鼠標滾輪來實現)
 切換所有已停靠的窗口的狀態(隱藏和顯示)
 打開和關閉筆記本電腦模式(使用筆記本電腦時才會顯示) - 有關詳細信息,請參閱IDE輸入部分
- 介紹
- 新手須知
- 版本授權
- 安裝
- 更新
- 發布日志
- 所需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
- 翻譯名詞對照表