專利名稱:應(yīng)用于游戲場景中游戲速度的處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù),特別涉及應(yīng)用于游戲場景中游戲速度的調(diào)整方法和裝置。
背景技術(shù):
目前,游戲的表現(xiàn)形式正在經(jīng)歷一個多樣的變化,在某一特定時間段放慢游戲速度或者加快游戲速度能使游戲的表現(xiàn)形式滿足多樣變化的需求,并使游戲用戶更能特別關(guān)注某一特定事件?,F(xiàn)有技術(shù)中,放慢游戲速度或者加快游戲速度都是通過調(diào)整游戲幀的更新頻率來 實現(xiàn)的,其中,游戲場景中,每次邏輯循環(huán)的更新算一幀,記為游戲幀。但是,由于游戲幀能夠體現(xiàn)游戲場景中游戲的流暢度,如果游戲幀更新過慢,會導(dǎo)致游戲不流暢。
發(fā)明內(nèi)容
本發(fā)明提供了應(yīng)用于游戲場景中游戲速度的調(diào)整方法和裝置,用于實現(xiàn)游戲速度的調(diào)整。本發(fā)明提供的技術(shù)方案包括一種應(yīng)用于游戲場景中游戲速度的調(diào)整方法,包括A,在啟動游戲時,設(shè)置默認的每幀邏輯時間作為當前每幀邏輯時間,依據(jù)當前每幀邏輯時間對游戲幀進行更新;B,當需要調(diào)整游戲速度時,接收并緩存用戶輸入的以下速度調(diào)整參數(shù),并繼續(xù)依照所述當前每幀邏輯時間對接收到所述調(diào)整參數(shù)時對應(yīng)的游戲幀進行更新;C,在步驟B中的游戲幀結(jié)束后,按照所述調(diào)整參數(shù)調(diào)整所述當前每幀邏輯時間,將調(diào)整后的當前每幀邏輯時間作為當前每幀邏輯時間,對步驟B中的游戲幀結(jié)束之后的游戲幀進行更新。優(yōu)選地,所述速度調(diào)整參數(shù)包括起始邏輯時間、結(jié)束邏輯時間和邏輯時間增量;步驟C包括Cl,將步驟B中的游戲幀結(jié)束之后的第一個游戲幀作為當前游戲幀;C2,將當前每幀邏輯時間更新為起始邏輯時間,依照該當前每幀邏輯時間對當前游戲幀進行更新;C3,在當前游戲幀結(jié)束之后把下一游戲幀作為當前游戲幀;C4,將所述當前每幀邏輯時間加上所述邏輯時間增量,如果該結(jié)果大于等于所述結(jié)束邏輯時間,則將所述結(jié)束邏輯時間作為當前每幀邏輯時間,執(zhí)行步驟C5,否則,將得到的結(jié)果作為當前每幀邏輯時間,并執(zhí)行步驟C6 ;C5,依照該當前每幀邏輯時間對當前游戲幀以及之后的游戲幀進行更新;C6,依照該當前每幀邏輯時間對當前游戲幀進行更新,并返回步驟C3。本發(fā)明中,步驟C4和步驟C5之間,進一步包括清除緩存的所述調(diào)整參數(shù)。
本發(fā)明中,所述開始邏輯時間介于調(diào)整游戲速度之前采用的當前每幀邏輯時間和所述結(jié)束邏輯時間之間。本發(fā)明中,游戲幀為游戲場景中每次邏輯循環(huán)的更新為一個游戲幀。本發(fā)明還公開了一種應(yīng)用于游戲場景中游戲速度的調(diào)整裝置,包括第一更新單元,用于在啟動游戲時,設(shè)置默認的每幀邏輯時間作為當前每幀邏輯時間,依據(jù)當前每幀邏輯時間對游戲幀進行更新;第二更新單元,用于當需要調(diào)整游戲速度時,接收并緩存用戶輸入的速度調(diào)整參數(shù),并繼續(xù)依照所述當前每幀邏輯時間對接收到所述速度調(diào)整參數(shù)時對應(yīng)的游戲幀進行更新;第三更新單元,用于在所述第二更新單元更新的游戲幀結(jié)束后,按照所述速度調(diào) 整參數(shù)調(diào)整所述當前每幀邏輯時間,將調(diào)整后的當前每幀邏輯時間作為當前每幀邏輯時間,對所述第二更新單元更新的游戲幀結(jié)束之后的游戲幀進行更新。其中,所述速度調(diào)整參數(shù)包括起始邏輯時間、結(jié)束邏輯時間和邏輯時間增量;所述第三更新參數(shù)通過以下步驟執(zhí)行更新Cl,將所述第二更新單元更新的游戲幀結(jié)束之后的第一個游戲幀作為當前游戲幀;C2,將當前每幀邏輯時間更新為起始邏輯時間,依照該當前每幀邏輯時間對當前游戲幀進行更新;C3,在當前游戲幀結(jié)束之后把下一游戲幀作為當前游戲幀;C4,將所述當前每幀邏輯時間加上所述邏輯時間增量,如果該結(jié)果大于等于所述結(jié)束邏輯時間,則將所述結(jié)束邏輯時間作為當前每幀邏輯時間,執(zhí)行步驟C5,否則,將得到的結(jié)果作為當前每幀邏輯時間,并執(zhí)行步驟C6 ;C5,依照該當前每幀邏輯時間對當前游戲幀以及之后的游戲幀進行更新;C6,依照該當前每幀邏輯時間對當前游戲幀進行更新,并返回步驟C3。其中,步驟C4和步驟C5之間,進一步包括清除緩存的所述調(diào)整參數(shù)。其中,所述開始邏輯時間介于調(diào)整游戲速度之前采用的當前每幀邏輯時間和所述結(jié)束邏輯時間之間。其中,游戲幀為游戲場景中每次邏輯循環(huán)的更新為一個游戲幀。由以上技術(shù)方案可以看出,本發(fā)明中并非一步到位地將輸入的結(jié)束邏輯時間作為當前每幀邏輯時間進行游戲幀的更新,而是先將輸入的起始邏輯時間作為當前每幀邏輯時間,即先利用該輸入的起始邏輯時間執(zhí)行當前游戲幀的更新,之后,通過每幀邏輯時間增量調(diào)整當前每幀邏輯時間,直至最終到達輸入的結(jié)束邏輯時間。其中,之所以引入該輸入的開始邏輯時間一方面是避免一步到位地將輸入的結(jié)束邏輯時間作為當前每幀邏輯時間進行游戲幀的更新,影響游戲的平滑,另一方面,通過該輸入的開始邏輯時間區(qū)分于調(diào)整游戲速度之前采用的每幀邏輯時間,給游戲用戶一個立即變速的效果。另外,本發(fā)明中,通過每幀邏輯時間增量調(diào)整當前每幀邏輯時間,直至最終到達輸入的結(jié)束邏輯時間,則是給游戲用戶產(chǎn)生一個更加平滑的視覺假象。以減慢游戲速度為例,則采用本發(fā)明,可以實現(xiàn)游戲場景內(nèi)的所有動畫、位移都變慢,但角色動作依然保持平滑。
圖I為本發(fā)明實施例提供的方法流程圖;圖2為本發(fā)明實施例提供的裝置結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述。在描述本發(fā)明提供的方法之前,先對本發(fā)明涉及的技術(shù)術(shù)語進行描述每幀邏輯時間,稱為邏輯間隔,其是相對于現(xiàn)實物理時間的概念,假如現(xiàn)實物理中,每幀之間的間隔為η毫秒,但在游戲場景中,可以強制假定每幀之間的間隔為m毫秒,m 和η不一定相等,而在游戲場景中,使用m作為幀之間的時間間隔依據(jù),即,m為幀之間的邏輯間隔。通常,在游戲場景中,所有動畫的更新、動畫位移的更新或計算都是通過一個時間源觸發(fā)的?;诖?,本發(fā)明中,可直接在游戲框架中植入每幀邏輯時間的概念,之后將該時間源重定向到一個由此邏輯時間累加得到的數(shù)據(jù),以進行游戲速度的更新,具體可參見圖I所示的方法流程。參見圖1,圖I為本發(fā)明實施例提供的方法流程圖。如圖I所示,該流程可包括以下步驟步驟101,在啟動游戲時,設(shè)置默認的每幀邏輯時間作為當前每幀邏輯時間,依據(jù)當前每幀邏輯時間對游戲幀進行更新。步驟102,當需要調(diào)整游戲速度時,接收并緩存用戶輸入的速度調(diào)整參數(shù),并繼續(xù)依照所述當前每幀邏輯時間對接收到所述調(diào)整參數(shù)時對應(yīng)的游戲幀進行更新。其中,所述速度調(diào)整參數(shù)可通過指令代碼輸入至游戲場景中。從步驟102可以看出,本步驟102盡管在某一游戲幀時接收到用戶因需要調(diào)整游戲速度而輸入的速度調(diào)整參數(shù),但是,并不立即利用該速度調(diào)整參數(shù)調(diào)整當前每幀邏輯時間,對應(yīng)地,針對該游戲幀,依然利用之前的當前每幀邏輯時間對該游戲幀進行更新。這能夠保證游戲場景的平滑,防止由于每幀邏輯時間不同而導(dǎo)致的畫面中斷或者模糊。步驟103,在步驟102中的游戲幀結(jié)束后,按照所述速度調(diào)整參數(shù)調(diào)整所述當前每幀邏輯時間,將調(diào)整后的當前每幀邏輯時間作為當前每幀邏輯時間對之后的游戲幀進行更新。具體地,本發(fā)明中,所述速度調(diào)整參數(shù)包括起始邏輯時間、結(jié)束邏輯時間和邏輯時間增量;基于此,步驟103可包括Cl,將步驟103中的游戲幀結(jié)束之后的第一個游戲幀作為當前游戲幀;C2,將當前每幀邏輯時間更新為起始邏輯時間,依照該當前每幀邏輯時間對當前游戲幀進行更新;比如,在步驟102調(diào)整游戲速度之前采用的當前每幀邏輯時間為每秒15幀,而步驟102中,輸入的起始邏輯時間為每秒10幀,基于此,本步驟C2依賴于該輸入的起始邏輯時間比如每秒10幀來調(diào)整當前游戲幀的更新。C3,在當前游戲幀結(jié)束之后把下一游戲幀作為當前游戲幀;
C4,將所述當前每幀邏輯時間加上所述邏輯時間增量,如果該結(jié)果大于等于所述結(jié)束邏輯時間,則將所述結(jié)束邏輯時間作為當前每幀邏輯時間,執(zhí)行步驟C5,否則,將得到的結(jié)果作為當前每幀邏輯時間,并執(zhí)行步驟C6 ;C5,依照該當前每幀邏輯時間對當前游戲幀以及之后的游戲幀進行更新;C6,依照該當前每幀邏輯時間對當前游戲幀進行更新,并返回步驟C3。至此,完成圖I所示的流程。從圖I所示的流程可以看出,本發(fā)明中并非一步到位地將輸入的結(jié)束邏輯時間作為當前每幀邏輯時間進行游戲幀的更新,而是先將輸入的起始邏輯時間作為當前每幀邏輯時間,即先利用該輸入的起始邏輯時間執(zhí)行當前游戲幀的更新,之后,通過每幀邏輯時間增量調(diào)整當前每幀邏輯時間,直至最終到達輸入的結(jié)束邏輯時間。 如此,基于上面描述,可以得到,本發(fā)明中,所述輸入的開始邏輯時間介于調(diào)整游戲速度之前采用的每幀邏輯時間和所述輸入的結(jié)束邏輯時間之間。其中,之所以引入該輸入的開始邏輯時間一方面是避免一步到位地將輸入的結(jié)束邏輯時間作為當前每幀邏輯時間進行游戲幀的更新,影響游戲的平滑,另一方面,通過該輸入的開始邏輯時間區(qū)分于調(diào)整游戲速度之前采用的每幀邏輯時間,給游戲用戶一個立即變速的效果。另外,本發(fā)明中,通過每幀邏輯時間增量調(diào)整當前每幀邏輯時間,直至最終到達輸入的結(jié)束邏輯時間,則是給游戲用戶產(chǎn)生一個更加平滑的視覺假象。以減慢游戲速度為例,則采用本發(fā)明,可以實現(xiàn)游戲場景內(nèi)的所有動畫、位移都變慢,但角色動作依然保持平滑。為使圖I所示的流程更加清楚,下面通過一個具體的算法描述圖I所述的流程首先,該算法定義以下幾個參數(shù)起始邏輯時間b,結(jié)束邏輯時間C,物理時間t,每幀邏輯時間增量dt,每幀邏輯時間It ;之后,基于步驟103的具體描述,本發(fā)明中,先將lt=b,即先將b賦值給lt,以使得利用該b進行當前游戲幀的更新;在當前游戲幀的更新完成之后,并在下一個游戲幀更新之前,調(diào)用以下公式lt=lt+dt;if (it>e) {it=e}通過該算法,實現(xiàn)了上述步驟Cl至步驟C6。至此,完成本發(fā)明提供的方法描述。下面對本發(fā)明提供的裝置進行描述參見圖2,圖2為本發(fā)明實施例提供的裝置結(jié)構(gòu)圖。如圖2所示,該裝置包括第一更新單元,用于在啟動游戲時,設(shè)置默認的每幀邏輯時間作為當前每幀邏輯時間,依據(jù)當前每幀邏輯時間對游戲幀進行更新;第二更新單元,用于當需要調(diào)整游戲速度時,接收并緩存用戶輸入的速度調(diào)整參數(shù),并繼續(xù)依照所述當前每幀邏輯時間對接收到所述速度調(diào)整參數(shù)時對應(yīng)的游戲幀進行更新;第三更新單元,用于在所述第二更新單元更新的游戲幀結(jié)束后,按照所述速度調(diào)整參數(shù)調(diào)整所述當前每幀邏輯時間,將調(diào)整后的當前每幀邏輯時間作為當前每幀邏輯時間對之后的游戲幀進行更新。本發(fā)明中,所述速度調(diào)整參數(shù)包括起始邏輯時間、結(jié)束邏輯時間和邏輯時間增量;所述第三更新參數(shù)通過以下步驟執(zhí)行更新Cl,將所述第二更新單元更新的游戲幀結(jié)束之后的第一個游戲幀作為當前游戲幀;C2,將當前每幀邏輯時間更新為起始邏輯時間,依照該當前每幀邏輯時間對當前游戲幀進行更新; C3,在當前游戲幀結(jié)束之后把下一游戲幀作為當前游戲幀;C4,將所述當前每幀邏輯時間加上所述邏輯時間增量,如果該結(jié)果大于等于所述結(jié)束邏輯時間,則將所述結(jié)束邏輯時間作為當前每幀邏輯時間,執(zhí)行步驟C5,否則,將得到的結(jié)果作為當前每幀邏輯時間,并執(zhí)行步驟C6 ;C5,依照該當前每幀邏輯時間對當前游戲幀以及之后的游戲幀進行更新;C6,依照該當前每幀邏輯時間對當前游戲幀進行更新,并返回步驟C3。其中,步驟C4和步驟C5之間,進一步包括清除緩存的所述調(diào)整參數(shù)。本發(fā)明中,所述開始邏輯時間介于調(diào)整游戲速度之前采用的當前每幀邏輯時間和所述結(jié)束邏輯時間之間。本發(fā)明中,游戲幀為游戲場景中每次邏輯循環(huán)的更新為一個游戲幀。至此,完成圖2所示的裝置結(jié)構(gòu)圖。由以上技術(shù)方案可以看出,本發(fā)明中并非一步到位地將輸入的結(jié)束邏輯時間作為當前每幀邏輯時間進行游戲幀的更新,而是先將輸入的起始邏輯時間作為當前每幀邏輯時間,即先利用該輸入的起始邏輯時間執(zhí)行當前游戲幀的更新,之后,通過每幀邏輯時間增量調(diào)整當前每幀邏輯時間,直至最終到達輸入的結(jié)束邏輯時間。其中,之所以引入該輸入的開始邏輯時間一方面是避免一步到位地將輸入的結(jié)束邏輯時間作為當前每幀邏輯時間進行游戲幀的更新,影響游戲的平滑,另一方面,通過該輸入的開始邏輯時間區(qū)分于調(diào)整游戲速度之前采用的每幀邏輯時間,給游戲用戶一個立即變速的效果。另外,本發(fā)明中,通過每幀邏輯時間增量調(diào)整當前每幀邏輯時間,直至最終到達輸入的結(jié)束邏輯時間,則是給游戲用戶產(chǎn)生一個更加平滑的視覺假象。以減慢游戲速度為例,則采用本發(fā)明,可以實現(xiàn)游戲場景內(nèi)的所有動畫、位移都變慢,但角色動作依然保持平滑。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種應(yīng)用于游戲場景中游戲速度的調(diào)整方法,其特征在于,該方法包括 A,在啟動游戲時,設(shè)置默認的每幀邏輯時間作為當前每幀邏輯時間,依據(jù)當前每幀邏輯時間對游戲幀進行更新; B,當需要調(diào)整游戲速度時,接收并緩存用戶輸入的速度調(diào)整參數(shù),并繼續(xù)依照所述當前每幀邏輯時間對接收到所述速度調(diào)整參數(shù)時對應(yīng)的游戲幀進行更新; C,在步驟B中的游戲幀結(jié)束后,按照所述速度調(diào)整參數(shù)調(diào)整所述當前每幀邏輯時間,將調(diào)整后的當前每幀邏輯時間作為當前每幀邏輯時間,對步驟B中的游戲幀結(jié)束之后的游戲幀進行更新。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述速度調(diào)整參數(shù)包括起始邏輯時間、 結(jié)束邏輯時間和邏輯時間增量;步驟C包括 Cl,將步驟B中的游戲幀結(jié)束之后的第一個游戲幀作為當前游戲幀; C2,將當前每幀邏輯時間更新為起始邏輯時間,依照該當前每幀邏輯時間對當前游戲幀進行更新; C3,在當前游戲幀結(jié)束之后把下一游戲幀作為當前游戲幀; C4,將所述當前每幀邏輯時間加上所述邏輯時間增量,如果該結(jié)果大于等于所述結(jié)束邏輯時間,則將所述結(jié)束邏輯時間作為當前每幀邏輯時間,執(zhí)行步驟C5,否則,將得到的結(jié)果作為當前每幀邏輯時間,并執(zhí)行步驟C6 ; C5,依照該當前每幀邏輯時間對當前游戲幀以及之后的游戲幀進行更新; C6,依照該當前每幀邏輯時間對當前游戲幀進行更新,并返回步驟C3。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟C4和步驟C5之間,進一步包括清除緩存的所述調(diào)整參數(shù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述開始邏輯時間介于調(diào)整游戲速度之前采用的當前每幀邏輯時間和所述結(jié)束邏輯時間之間。
5.根據(jù)權(quán)利要求I至4任一所述的方法,其特征在于,游戲幀為游戲場景中每次邏輯循環(huán)的更新為一個游戲幀。
6.一種應(yīng)用于游戲場景中游戲速度的調(diào)整裝置,其特征在于,該裝置包括 第一更新單元,用于在啟動游戲時,設(shè)置默認的每幀邏輯時間作為當前每幀邏輯時間,依據(jù)當前每幀邏輯時間對游戲幀進行更新; 第二更新單元,用于當需要調(diào)整游戲速度時,接收并緩存用戶輸入的速度調(diào)整參數(shù),并繼續(xù)依照所述當前每幀邏輯時間對接收到所述速度調(diào)整參數(shù)時對應(yīng)的游戲幀進行更新;第三更新單元,用于在所述第二更新單元更新的游戲幀結(jié)束后,按照所述速度調(diào)整參數(shù)調(diào)整所述當前每幀邏輯時間,將調(diào)整后的當前每幀邏輯時間作為當前每幀邏輯時間,對所述第二更新單元更新的游戲幀結(jié)束之后的游戲幀進行更新。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述速度調(diào)整參數(shù)包括起始邏輯時間、結(jié)束邏輯時間和邏輯時間增量; 所述第三更新參數(shù)通過以下步驟執(zhí)行更新 Cl,將所述第二更新單元更新的游戲幀結(jié)束之后的第一個游戲幀作為當前游戲幀; C2,將當前每幀邏輯時間更新為起始邏輯時間,依照該當前每幀邏輯時間對當前游戲幀進行更新;C3,在當前游戲幀結(jié)束之后把下一游戲幀作為當前游戲幀; C4,將所述當前每幀邏輯時間加上所述邏輯時間增量,如果該結(jié)果大于等于所述結(jié)束邏輯時間,則將所述結(jié)束邏輯時間作為當前每幀邏輯時間,執(zhí)行步驟C5,否則,將得到的結(jié)果作為當前每幀邏輯時間,并執(zhí)行步驟C6 ; C5,依照該當前每幀邏輯時間對當前游戲幀以及之后的游戲幀進行更新; C6,依照該當前每幀邏輯時間對當前游戲幀進行更新,并返回步驟C3。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,步驟C4和步驟C5之間,進一步包括清除緩存的所述調(diào)整參數(shù)。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述開始邏輯時間介于調(diào)整游戲速度之前采用的當前每幀邏輯時間和所述結(jié)束邏輯時間之間。
10.根據(jù)權(quán)利要求6至9任一所述的裝置,其特征在于,游戲幀為游戲場景中每次邏輯循環(huán)的更新為一個游戲幀。
全文摘要
本發(fā)明提供了應(yīng)用于游戲場景中游戲速度的調(diào)整方法和裝置。該方法包括A,在啟動游戲時,設(shè)置默認的每幀邏輯時間作為當前每幀邏輯時間,依據(jù)當前每幀邏輯時間對游戲幀進行更新;B,當需要調(diào)整游戲速度時,接收并緩存用戶輸入的速度調(diào)整參數(shù),并繼續(xù)依照所述當前每幀邏輯時間對接收到所述速度調(diào)整參數(shù)時對應(yīng)的游戲幀進行更新;C,在步驟B中的游戲幀結(jié)束后,按照所述速度調(diào)整參數(shù)調(diào)整所述當前每幀邏輯時間,將調(diào)整后的當前每幀邏輯時間作為當前每幀邏輯時間對之后的游戲幀進行更新。
文檔編號G06F19/00GK102722650SQ201210176979
公開日2012年10月10日 申請日期2012年5月31日 優(yōu)先權(quán)日2012年5月31日
發(fā)明者王小野 申請人:北京像素軟件科技股份有限公司