一種游戲對象無序移動過程中的防碰撞的方法及系統的制作方法
【技術領域】
[0001]本發明涉及游戲對象移動領域,特別是涉及一種游戲對象無序移動過程中的防碰撞的方法及系統。
【背景技術】
[0002]目前已經熟知的游戲軟件作品中,當很多的游戲對象移動到同一區域中時,為了使各自的圖形表示部分不重疊而采取了在發生碰撞事件之后停止移動一段時間,并以體積、速度、優先級等參數來決定誰避讓誰等待的方法來解決此問題。
[0003]現有技術的有以下缺點:各角色在移動過程中是直到接觸上之后再停止,并沒有明顯的提前避讓打算以及為此而采取的轉向和減速等行為,經常看到當兩個物體前后同向移動但因為后面物體速度較快,而不斷的頂撞前方物體,或者相向移動的兩個物體直到臉撞臉零距離接觸上之后才停止。這些不自然的現象即會導致移動現象混亂和不自然,使得程序多次做亡羊補牢式的尋路來補救,又會使游戲軟件使用者的操作變得非常困難和不舒服。
【發明內容】
[0004]本發明的一個目的是要提供一種游戲對象無序移動過程中的防碰撞的方法及系統。
[0005]特別地,本發明提供了一種游戲對象無序移動過程中的防碰撞的方法,包括:接收步驟,接收指示游戲對象到達終點的移動指令,根據所述移動指令設定游戲對象的包含至少一個目標點的移動路線;移動步驟,使得所述游戲對象按照第一預設算法向下一個目標點進行移動,所述第一預設算法為:移動距離及方向=方向向量*單位時間移動距離*時間片*當前方向的運動能量影響系數;第一判斷步驟,在所述游戲對象按照所述第一預設算法進行移動的過程中,當滿足第一預設條件時,判斷所述游戲對象是否到達所述移動路線中的下一個目標點;若到達所述下一個目標點,則判斷所述游戲對象是否到達終點,若到達所述終點,則停止移動并等待新的指令,若未到達所述終點,則繼續執行所述移動步驟;若未到達所述下一個目標點,則檢測預設范圍內的可能碰撞對象,根據預設算法求出當前方向的運動能量影響系數,檢測所述游戲對象在當前方向的運動能量影響系數是否大于或等于預設的最低系數;若在當前方向的運動能量影響系數小于所述最低系數,則根據第二預設算法設置所述游戲對象的新的運動方向,執行所述移動步驟;若在當前方向的運動能量影響系數大于或等于所述最低系數,判斷當前方向是否與目標方向一致,所述目標方向指從當前位置點指向下一個目標點的方向;若一致,則執行所述移動步驟;若不一致,則判斷所述游戲對象在所述目標方向的運動能量影響系數是否大于等于所述最低系數;若在目標方向的運動能量影響系數小于所述最低系數,則執行所述移動步驟;若在目標方向的運動能量影響系數大于或等于所述最低系數,則調整所述游戲對象的欲移動方向,使得其轉向所述目標方向,并執行所述移動步驟。
[0006]可選地,所述當前方向的運動能量影響系數為所述可能碰撞對象的運動系數之中的最小值;每個所述可能碰撞對象的運動系數為根據每個所述可能碰撞對象與自身的距離,所述可能碰撞對象與自身方向的夾角,所述可能碰撞對象的速度及方向求得的一個處于O和I之間的數字。
[0007]可選地,所述第二算法包括:第一檢測步驟,檢測游戲對象在當前方向的運動能量影響系數;第二檢測步驟,令N等于1,檢測游戲對象向左旋轉N*A度方向時得到的新的運動能量影響系數NI,檢測游戲對象向右旋轉N*A度方向時得到的新的運動能量影響系數N2 ;第二判斷步驟,判斷NI和N2是否均滿足大于或等于所述最低系數;若均滿足,則使得游戲對象轉向NI和N2中較大值對應的角度和方向;若并非均滿足,則判斷NI和N2是否均小于所述最低系數;若并非均小于,使得游戲對象轉向NI和N2中較大值對應的角度和方向;若均小于,判斷N是否等于預設次數閾值M ;若不等于,將第二檢測步驟中的N替換為N+1并繼續執行第二檢測步驟;若等于,NI和N2以及當前方向的運動能量影響系數中選擇最大值,并使得游戲對象偏轉道所述最大值對應的角度和方向,N = I, 2,3…M。
[0008]可選地,所述方法還包括:預設步驟,預設所述最低系數的大小;所述第一預設條件為:上次的判斷步驟執行完畢后的的間隔時間達到預設時間閾值。
[0009]可選地,當所述游戲對象在連續第一時間閾值內的移動速度一直大于最大速度閾值時,所述預設時間閾值為第一時間值;當所述游戲對象在連續第二時間閾值(如累計5s)內的移動速度一直小于最小速度閾值時,所述預設時間閾值為第二時間值;所述第二時間值大于所述第一時間值。
[0010]本發明還提供了一種游戲對象無序移動過程中的防碰撞的系統,包括:接收模塊,接收指示游戲對象到達終點的移動指令,根據所述移動指令設定游戲對象的包含至少一個目標點的移動路線;移動模塊,使得所述游戲對象按照第一預設算法向下一個目標點進行移動,所述第一預設算法為:移動距離及方向=方向向量*單位時間移動距離*時間片*當前方向的運動能量影響系數;判斷模塊,在所述游戲對象按照所述第一預設算法進行移動的過程中,當滿足第一預設條件時,判斷所述游戲對象是否到達所述移動路線中的下一個目標點;若到達所述下一個目標點,則判斷所述游戲對象是否到達終點,若到達所述終點,則停止移動并等待新的指令,若未到達所述終點,則繼續使得所述游戲對象按照第一預設算法向下一個目標點進行移動;若未到達所述下一個目標點,則檢測預設范圍內的可能碰撞對象,根據預設算法求出當前方向的運動能量影響系數,檢測所述游戲對象在當前方向的運動能量影響系數是否大于或等于預設的最低系數;若在當前方向的運動能量影響系數小于所述最低系數,則根據第二預設算法設置所述游戲對象的新的運動方向,并繼續使得所述游戲對象按照第一預設算法向下一個目標點進行移動;若在當前方向的運動能量影響系數大于或等于所述最低系數,判斷當前方向是否與目標方向一致,所述目標方向指從當前位置點指向下一個目標點的方向;若一致,則使得所述游戲對象按照第一預設算法向下一個目標點進行移動;若不一致,則判斷所述游戲對象在所述目標方向的運動能量影響系數是否大于等于所述最低系數;若在目標方向的運動能量影響系數小于所述最低系數,則使得所述游戲對象按照第一預設算法向下一個目標點進行移動;若在目標方向的運動能量影響系數大于或等于所述最低系數,則調整所述游戲對象的欲移動方向,使得其轉向所述目標方向,并使得所述游戲對象按照第一預設算法向下一個目標點進行移動。
[0011]可選地,所述當前方向的運動能量影響系數為所述可能碰撞對象的運動系數之中的最小值;每個所述可能碰撞對象的運動系數為根據每個所述可能碰撞對象與自身的距離,所述可能碰撞對象與自身方向的夾角,所述可能碰撞對象的速度及方向求得的一個處于O和I之間的數字。
[0012]可選地,所述第二預設算法為:第一檢測步驟,檢測游戲對象在當前方向的運動能量影響系數;第二檢測步驟,令N等于1,檢測游戲對象向左旋轉N*A度方向時得到的新的運動能量影響系數NI,檢測游戲對象向右旋轉N*A度方向時得到的新的運動能量影響系數N2 ;第二判斷步驟,判斷NI和N2是否均滿足大于或等于所述最低系數;若均滿足,則使得游戲對象轉向NI和N2中較大值對應的角度和方向;若并非均滿足,則判斷NI和N2是否均小于所述最低系數;若并非均小于,使得游戲對象轉向NI和N2中較大值對應的角度和方向;若均小于,判斷N是否等于預設次數閾值M ;若不等于,將第二檢測步驟中的N替換為N+1并繼續執行第二檢測步驟;若等于,NI和N2以及當前方向的運動能量影響系數中選擇最大值,并使得游戲對象偏轉道所述最大值對應的角度和方向,N = I, 2,3…M。
[0013]可選地,所述系統還包括:預設模塊,預設所述最低系數的大小;所述第一預設條件為:上次的判斷步驟執行完畢后的的間隔時間達到預設時間閾值。
[0014]可選地,當所述游戲對象在連續第一時間閾值內的移動速度一直大于最大速度閾值時,所述預設時間閾值為第一時間值;當所述游戲對象在連續第二時間閾值內的移動速度一直小于最小速度閾值時,所述預設時間閾值為第二時間值;所述第二時間值大于所述第一時間值。
[0015]本發明的方法由于