<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 調試 **調試器**是一個用于檢查游戲的強大工具,對于跟蹤代碼中的錯誤和漏洞以及檢查腳本應該運行的時間以及包含你期望的值的變量和數組等特別有用。你可以使用*GameMaker Studio 2*IDE 頂部的**調試**按鈕![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/icon_debug.png),或者轉到[構建菜單](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/1_overview/2_quick_start/menus/build_menu.html)并選擇 “調試” 來運行游戲并啟動 “調試器”。 **注意:**Windows 防火墻(或你運行的任何其他防火墻程序)可能會提示你為此模塊創建安全例外。**你必須這樣做**,否則它將無法正常工作。 這是由于調試器的工作方式,對調試移動平臺至關重要。 在調試模式下運行游戲時,IDE 將顯示調試器可用的不同工具: :-: ![調試器](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_module.png) 上面圖像顯示了調試器的默認布局,但與 IDE 的其他方面一樣,你可以自定義此選項以滿足你的需要,關閉你不需要的窗口或更改你需要的文檔和窗口的大小。你可以隨時從 IDE 頂部的**調試器**上下文菜單重置調試器布局 - 或重新打開關閉的窗口: :-: ![Debugger Context Menu](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_module_context_menu.png) 下面我們解釋一下調試器的每個部分: ### 圖表視圖 **圖表**視圖顯示了項目如何使用內存及其幀率隨時間變化的圖形顯示: :-: ![Debug Graph](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_graph.png) 該圖顯示了當前和平均內存使用情況以及當前和平均 FPS 隨時間的變化,你可以使用![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_ctrl.png)/![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_cmd.png)和鼠標滾輪![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_mmb.png)放大或縮小,如果將鼠標光標放在圖形元素上, 它將顯示所選點上該元素的值。 圖表視圖還會將某些**調試事件**顯示為沿圖形長度的點。 這些事件由*GameMaker Studio 2*在游戲運行的某些點自動生成,以顯示特定的重要事件,但您也可以使用函數[show\_debug\_message()](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/3_scripting/4_gml_reference/debugging/show_debug_message.html)和[debug\_event()](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/3_scripting/4_gml_reference/debugging/debug_event.html)添加自己的圖元素。 系統事件將以與通過代碼觸發的事件不同的顏色標記: :-: ![Debug Graph Events](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_graph_events.png) 在調試中運行游戲并將鼠標移動到這些事件上時,將顯示一個列表,其中列出了游戲中該點觸發的所有事件,你可以通過單擊 “*單擊在新窗口中打開*” 文本將列表拉出到單獨的窗口中進行修改: :-: ![Debug Events](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_events.png) ### 資源視圖 **資源視圖**顯示項目中正在使用的所有資源的列表,其中包含代碼或 DnD? 動作。此部分與資源樹非常相似,你可以展開其中的項目以顯示更多信息,例如,特定物體的不同事件。 然后,你可以雙擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_lmb.png)任何資源,在**代碼視圖**窗口中打開它的代碼,你可以在其中檢查值并添加或刪除斷點。 ### 調用堆棧 這個窗口會顯示當前事件的調用棧,還有按步跳過代碼的行號。在此處顯示任何信息之前需要暫停調試器。 ### 工具欄 工具欄具有調試器控件以及一些基本信息,如內存使用,游戲的當前(真實)FPS 以及顯示調試器當前是否已連接的指示器(連接到你的項目正在運行的實例時指示器將為綠色否則為紅色)。可用的控件是: 這會在暫停后再次啟動游戲(鍵盤快捷鍵&nbsp;f5)。這將暫停(中斷)游戲。重啟游戲停止游戲跳入代碼塊或腳本(鍵盤快捷鍵&nbsp;f11)跳過代碼塊或腳本(鍵盤快捷鍵&nbsp;f10)跳出代碼塊或腳本(鍵盤快捷鍵&nbsp;&nbsp;+&nbsp;f11)打開或關閉調試信息的實時更新(默認情況下關閉)。 前三個按鈕用于控制游戲,允許你隨時啟動、暫停、重啟或停止游戲。通過單擊 “暫停” 按鈕或從 “斷點” 暫停游戲時,你可以使用三個 “步” 按鈕逐步執行代碼。這意味著你可以告訴你的游戲運行代碼中的當前行,之后跳轉到下一行。只要你想,就允許你跨越整個游戲來運行一行代碼。通常你只需要用*跳入*按鈕來做這件事,不過你還有另外兩個選擇,一個跳過代碼和一個跳出代碼。當你有大型腳本要運行時,跳過非常有用,因為單擊此操作會將整個腳本或代碼塊作為一個步驟運行,然后在下一行停止,而跳出將使你退出腳本(它們將運行 ,但一下子全部)并在范圍改變后的下一步停止。最后的這個圖標允許調試窗口實時更新數據,這樣的話你就能看見變量如何改變或者實例如何生成與破壞的了。不過要注意這樣也許會影響游戲表現,而且并不是所有的信息都會實時有效。例如,無法實時查看**渲染狀態**監視(請參閱下面的 “監視器” 部分)。 ### 代碼視圖 代碼視圖是我們在項目運行時可以查看和檢查不同腳本或事件代碼的地方。 默認情況下,這將開始為空,但你可以雙擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_lmb.png)資源視圖中的任何資源以在此處打開它。 你也可以打開多個不同的事件或腳本,它們將作為頂部的選項卡添加到 “代碼視圖” 工作區。在代碼視圖中打開任何代碼窗口時,你可以左鍵![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_lmb.png)單擊行號欄(行號所在的位置)來添加或刪除**斷點**(斷點是代碼中調試器應暫停你的游戲的一行,如果需要的話,允許你之后單行地執行代碼)。 你還可以使用鼠標右鍵![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)打開上下文菜單,該菜單還允許你添加或刪除斷點并將任何選定的代碼復制到剪貼板。 有關斷點的更多信息可以在此頁面的下方找到。 ### 監視器 調試器的全部思想是允許你 “觀察” 游戲的每個細節。這是使用 “監視窗口” 完成的,默認情況下,它是在停靠在 IDE 底部的**輸出**窗口中打開的。 你可以單擊每個不同的選項卡以查看它們包含的監視器,其中一些將實時更新(如全局監視器),而其他(如局部監視器)則需要調試器暫停游戲。 我們在這里單獨列出了每個監視窗口,并說明了它們的作用: #### 局部 :-: ![Debug Local Variables Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_local_window.png) **局部**窗口顯示當前步屬性,其中包括正在運行的當前事件(或腳本)的名稱,當前腳本的虛擬機代碼中的偏移量(首字母縮寫詞 “PC” 為 “程序計數器”), 運行代碼塊的 “self” 實例,以及事件中的 “other” 實例。當事件是碰撞事件或代碼中使用了with時,最后一部分才有效。如果實例處于碰撞狀態,“other” 將在碰撞中顯示另一個實例(及其變量),但如果它使用了with,那么 “Self” 實例將成為運行代碼的實例,而 “Other ”則是實際包含with的實例。除此之外的其他時間,“other” 僅會顯示與 “self” 相同的數據。在完成所有這些信息之后,你將找到當前步執行的代碼塊聲明的所有*局部*變量的列表。 如果右鍵單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)某個值,則可以設置其類型(請參閱下面的**數據類型**)以查看數據結構的詳細信息。 #### 全局 :-: ![Debug Global Variables Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_global_window.png) **全局**窗口將顯示當前所有聲明的全局變量及其值的列表。 如果右鍵單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)某個值,則可以設置其類型(請參閱下面的**數據類型**)以查看數據結構的詳細信息。 #### 監視 :-: ![Debug Watches Variables Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_watch_window.png) 這個窗口可以讓你添加你想一直追蹤的特定的變量。追蹤的內容可以是一個全局或實例范圍的變量,一個內置的變量,甚至數組或數據結構。如果按步跳過的實例代碼中包含被監視的變量,那么它就會在這里顯示出來。這意味著你可以輕易追蹤變量而不用在局部或者全局窗口中查找它。如果右鍵單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)某個值,則可以設置其類型(請參閱下面的**數據類型**),將其刪除,或從窗口中清除*所有*監視器。你還可以通過雙擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_lmb.png)該值并為其賦予新值來更改所顯示變量的某些值。請注意,你不能以這種方式重新分配數組或數據結構,但你*可以*更改其中的一些內容(你不能更改映射中的 “鍵” 值,也不能更改優先級隊列的優先級值)。 #### 實例 :-: ![Debug Instance Watches Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_instance_watches.png) 顧名思義,這個窗口會顯示所有實例變量、局部變量和與當前源代碼窗口中按步跳過的實例的內置變量。(如果一個實例是用關鍵詞 “other” 或者with語句引用來的,那么這個窗口中會顯示該實例的屬性)。 #### 所有實例 :-: ![Debug All Instance Watches Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_allinstance_watches.png) 如果你需要監視所有的當前房間中的實例,你可以選擇這個窗口,它們就會被列出來。你還可以查看它們具有的任何內置變量或實例變量的狀態,你可以右鍵單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)某個值來設置其類型(請參閱下面的**數據類型**) #### 選中的實例 :-: ![Debug Selected Instance Watches Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_selectedinstance_watches.png) 這個窗口是為了你在游戲中選擇的實例而存在的。暫停游戲,只需要點擊游戲窗口中任何可見的實例,你就能實現該功能。在鼠標指針下的實例的信息會顯示在選中的實例窗口中,在此處你能看到它的內置信息和實例變量,與實例窗口是一樣的。 #### 渲染狀態 :-: ![Debug Render State Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_renderstate_window.png) 這個窗口為你顯示所有被渲染當前幀的可用信息,例如繪制的透明度或者填充顏色。這不能實時更新,因此你需要暫停游戲以獲取和更新幀詳細信息。 #### 表面 / 紋理頁 :-: ![Debug Surfaces / Textures Watches Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_surfacetexture_window.png) 在此視圖中允許你查看到底哪些東西正畫在你的表面上(包括應用表面)以及查看內存中的材質頁。你可以從監視器底部的紋理或表面中進行選擇,然后將鼠標懸停在紋理或表面 ID 上,以使其顯示在彈出窗口中。 :-: ![Debug Texture View](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_textures.png) 請注意,在更新之前必須暫停調試器。 #### 剖析 該窗口是你查看當前被測試游戲所處系統概況的地方,在此處你能查看你游戲中從整個事件到單獨的函數調用中的各種細節,以此了解程序如何表現它們的功能,而麻煩區域或者瓶頸又在哪里。有關分析的更多信息,請參閱本頁后面的部分。 #### 緩沖區 如果你在游戲中初始化了緩沖器,這個窗口會給你顯示緩沖數據。你可以選擇任一使用*緩沖ID*的值產生的緩沖器,其中緩沖 ID 對第一個緩沖器是從 0 開始的,接下來的緩沖器每一個的 ID 加 1。 :-: ![Debug Buffer Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_buffer.png) 如果右鍵單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)數據窗口或單擊*數據顯示(Data Display)*按鈕,則可以選擇數據的顯示方式,設置對齊方式和類型,還可以從*列選擇*框中設置數據的布局方式。這里有一個下拉窗口,你可以從默認的布局列表中進行選擇。 重要的是要注意,在游戲運行時,默認情況下它*不會使用變量值和其他詳細信息更新調試窗口*,因此你必須首先使用調試器中的**暫停**按鈕![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_pause.png),在局部、全局和其他數據可用之前暫停游戲 ,或從頂部的圖標啟用實時更新![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_realtime.png)。此規則的唯一例外是*剖析*視圖,它在獨立于實時開關的情況下實時更新,因為它具有自己的開 / 關按鈕。 ## 數據類型 當你觀察任何窗口中的變量時,它都可能是數種**數據類型**中的任意一個。但是,由于*GameMaker Studio 2*存儲某些內容的方式,調試器并不總是確切知道該變量的含義。 這是因為數據結構或實例的內部 ID 值是整數,因此調試器并不總是知道存儲在變量中的整數值是用于數據結構還是實例,或者只是一個整數值。 因此,你可以右鍵單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)變量值并彈出一個窗口,其中列出了此變量可能存在的可用數據類型。 :-: ![Debug Data Types](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_datatypes.png) 字符串和數組不允許使用此選項,值得注意的是,即使數據結構存儲在實例變量中,其 ID 號也是**全局**的,因此如果你有四個實例并且每個實例都創建一個 ds\_list(例如), 每個列表的 ID 為從 0 到 3,它們不會同時為 0。 選擇數據類型后,只需單擊其名稱旁邊的小寫字母![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_expand.png)即可顯示結構中的變量條目。 這將擴展結構內容,并且在 “監視器” 窗口的情況下,也允許你修改它們。 ## 斷點 **斷點**是項目代碼中你希望停止的位置,以便你可以看到正在發生的事情。 在調試器運行的情況下,你可以通過左鍵單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_lmb.png)行號欄(行號所在的位置)隨時在任何代碼或腳本塊中添加或刪除斷點,也可以使用鼠標右鍵![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)打開*上下文菜單*, 同樣可以添加或刪除斷點: :-: ![Add/Remove Breakpoints](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/add_remove_breakpoint.gif) 也可以從*GameMaker Studio 2*IDE 設置斷點。 編寫項目時,可以使用f9(或使用鼠標右鍵![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_rmb.png)并選擇 “開/關斷點”)對物體窗口中的動作或代碼編輯器窗口中的行添加或刪除斷點。現在,當你在調試模式運行游戲的時候,它就會在斷點停下。從 IDE 中設置的斷點與項目一起保存,并且在每次運行中保留,直到刪除它。但是,如果在調試器中向代碼添加斷點,則在關閉模塊或啟動新測試運行后丟失。請注意,所有斷點都將顯示在[輸出](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/output.html)窗口中,可在其中啟用或禁用甚至刪除它們。 ## 剖析 調試器允許你單步執行代碼并查找代碼庫的任何問題,但有時你需要檢查更微妙的詳細信息以便正確優化你的游戲。**剖析(Profile)**選項通過為你提供性能概述,顯示調用函數、腳本所需的時間,甚至完成特定事件所需的時間來幫助實現此目的。 :-: ![Debug Profile Window](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_profile.png) 除了顯示所有不同事件、腳本和函數的主窗口外,剖析中還有以下選項: ### 開始分析 / 停止分析 這是啟用或禁用剖析的按鈕。啟用后,剖析將啟動,你將開始看到主窗口中列出的事件、腳本和函數以及每個事件、腳本和函數的不同數據值。 顯示此數據的方式取決于時間顯示和查看模式(本頁后面都有解釋)。 ### 時間顯示 此復選框允許你在剖析的平均時間和絕對時間之間切換。如果未選中,則主窗口中顯示的值將是對函數,腳本或事件的調用*總數*以及在配置文件過程中所花費的*總*時間(以*毫秒(ms)*為單位)。但是,如果啟用此選項,則這些列將顯示每個函數、腳本或事件的每步的*平均*時間以及調用它的*平均*次數。 ### 查看模式 此菜單允許你選擇查看模式,可以是**自上而下**或**自下而上**。 選擇自上而下視圖模式將從上到下顯示配置文件(與調用棧層次結構大致相同),因此它將顯示事件,然后顯示腳本,然后顯示所使用的函數。請注意,如果有源代碼,你可以雙擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_lmb.png)條目,在**源代碼**調試窗口中打開它。如果在名稱旁邊看到一個![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_expand.png)圖標,則該部分中還會有進一步的腳本或函數調用,單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_expand.png)將展開樹以顯示它們。 選擇自下而上視圖模式將自下而上顯示內容,以便你可以單獨查看所有函數和腳本調用。使用此視圖模式時,單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_expand.png)將展開函數或腳本以顯示實際調用的內容。 ### 查看目標 查看目標(View Target) 允許你在查看項目 GML(事件和代碼數據)與后臺引擎進程或兩者之間進行選擇。 如果你選擇 “我的代碼”,那么你將獲得每步調用的事件、函數和腳本,而 “引擎代碼” 視圖僅顯示項目所需的引擎調用,使你能夠看到項目處理問題的方式中的任何瓶頸。如果選擇 “組合”,則會顯示兩組數據,但請注意,當與 “自下而上” 視圖結合使用時,不同的腳本和函數調用將嵌套在引擎調用中,你需要單擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_expand.png)展開以便看到它們。 配置文件數據顯示在四列中,單擊其中任何一列將根據列標準對數據進行排序。 :-: ![Profile Display](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/profiler_display.gif) * **名稱**\- 這是被調用的事件、腳本或函數的名稱,旁邊可能有一個![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/2_interface/2_extras/images/debug_expand.png)表示進一步調用它或從中調用的內容(取決于你選擇的視圖模式)。 你可以雙擊![](https://gamemakerchina.github.io/GMS2_manual_en2ch/source/_build/images/icon_lmb.png)任何名稱,使其在**源代碼**窗口中打開代碼塊或腳本。單擊此列的頂部將按字母順序對名稱進行排序。 * **時間(毫秒)**\- 這將顯示函數(或腳本、事件)在剖析時所花費的總時間,或者顯示每步被調用的平均時間(取決于所選的時間顯示選項),并以**毫秒**為單位顯示。 * **調用次數**\- 你可以在此處查看給定事件、函數或腳本的調用總數,或者在一步中對其進行的平均調用次數(同樣,取決于所選的時間顯示選項)。 * 構中**步 %**\- 這里顯示的值是調用所采取的單步的總體百分比。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看