999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于matlab與Mathematica的賽車游戲中速度變化的建模與設計

2019-03-25 08:01:52孫子韜
電腦知識與技術 2019年3期

孫子韜

摘要:賽車電腦游戲是很多人所喜歡的休閑娛樂活動之一。本文針對某款賽車游戲進行了建模及設計。在該款游戲中,賽車在行駛的過程中會遇到障礙球與能量球,賽車碰撞到能量球或障礙球后,賽車的速度、距離以及賽車的運行軌跡都發生了變化。本文利用matlab與excel對賽車在行駛過程中對兩類球的碰撞以及行駛路徑進行了建模,得到了一些可以指導實際賽車游戲設計的結論。

關鍵詞:賽車游戲設計;速度控制;路徑規劃;matlab;Mathematica;建模

中圖分類號:TP31? ? ? 文獻標識碼:A? ?文章編號:1009-3044(2019)03-0209-04

Abstract: racing computer games is one of the recreational activities that many people like. In this paper, a racing game for the modeling and design. In this game, the car in the driving process will encounter obstacle ball and energy ball , the car hit the obstacle ball or energy ball, the car's speed, distance and the car's trajectory has changed. In this paper, we use matlab and Mathematica to model the collision between the two kinds of balls and the driving path, and get some conclusions which can be used to guide the design of the actual racing game.

Key words: racing game design; speed control; path planning; matlab Mathematica? modeling

賽車電腦游戲是很多人所喜歡的休閑娛樂活動之一。某款電腦賽車游戲初步構想如下:游戲開始后,賽車的初速度為10p/s,豎直向上。用戶只能通過鍵盤上的上下左右鍵控制賽車。每按一下向上(下)鍵,賽車向上速度提高(降低)20%,不按鍵就保持速度不變。每按一下向左(右)鍵,賽車就得到向左(右)10p/s2的加速度,加速持續到下一次按左右鍵,如果2秒不按左右鍵,加速將不再持續。在該款游戲中,賽車在行駛的過程中會遇到障礙球與能量球,賽車碰撞到能量球或障礙球后,賽車的速度、距離以及賽車的運行軌跡都發生了變化。研究這些變化規律,對游戲方案的設計且有重要意義。

1 問題提出

研究賽車的速度、距離以及賽車的運行軌跡變化規律,需逐步分析、研究以下5個問題。

1.1問題1

賽車向上運動,運動過程中用戶未做任何操作。賽車每10秒撞到一個球,共撞到5個障礙球和5個能量球,但是兩種球的排列順序不定,假設撞第1個球時速度為v。撞完第10個球后,賽車速度最大值和最小值為多少?從撞第1個球到撞完第10個球賽車運行距離的最大和最小值。

1.2問題2

假設用戶開始游戲后,每隔1秒依左、上、右、下的次序按鍵,共按了8個鍵。在此過程中沒撞到任何球,按完最后一次,賽車的向上速度和向左的速度各為多少?畫出賽車在地面上的運行軌跡。

1.3問題3

假設用戶開始游戲后,每隔1秒依左、上、右、下的次序按鍵,共按了4000個鍵。在此過程中沒撞到任何球,請問按完最后一次,賽車的向上速度和向左的速度各為多少?求出此時賽車在地面上相對于游戲開始時的位置。

1.4 問題4

假設用戶從看見能量球或障礙球到做出反應需要0.2秒,最快按鍵頻率每秒8次。當賽車以速度v向上運行時,用戶發現正面的障礙球已經完全出現在屏幕正前方,v最小為多少時,用戶不可能躲開該球(用左右鍵躲閃,向下鍵減速)。

1.5 問題5

假設賽車的初始能量可以運行400km,每改變一次速度會消耗5%。在問題4的假設下,設計一個能量球和障礙球的布局方案,使得用戶既有趣味性和成就感,又有挑戰性,又不要太疲勞。

2 模型假設

1)所給的數據真實可靠;

2)按鍵沒有延時,立即響應;

3)不做任何操作且未撞到球時速度不變;

4) 游戲時間和操作頻率適中。

3 模型的準備工作

1)數據的處理? ?周期等進行分析;賽車運動變化趨勢進行分析;有些數據成等比例,從而進行運算

2)聚類分析(進行采樣) 用matlab、Excel、Mathmatica軟件聚類分析和各個不同問題的需要,采得2組采樣,每組5個采樣值。

3)預測的準備工作 根據數據特點,對總體和個體的特點進行比較,以表格或圖示方式顯示。

4 模型建立與求解

4.1 模型1

因為無論以何種順序排列,只要碰撞能量球與障礙球的個數相等,那么初速度所增加的百分數(10%)以及減少的百分數(20%)都恒定,所以,v10恒定。

v10=1.15×0.85v0=0.52772864v0

式中:v10為碰撞第10 個球后,賽車的速度,p/s

并且由此可推出:無論以何種順序排列,只要初速度相同且在行駛過程中碰撞到的兩種球的個數均相等,則賽車的末速度相同,即賽車相撞五個能量球后撞五個障礙球時小車行駛路程最大;先撞五個障礙球,后撞五個能量球時行駛路程最小,現證明如下:

設先撞五個能量球球,后撞五個障礙球的情況記為情況A,(下文簡稱為“A”);先撞五個障礙球,后撞五個能量球的情況記為情況B(下文簡稱為“B”);除A,B外的任意情況記為情況C(下文簡稱為“C”)。第tn個10s時,C中速度與A中速度相同,因為C中0~5個10s內速度一直增大所以A中0~5個10s內任意時刻速度在所有能量球與障礙球的排列情況中最大,所以tn>5,并且在C中0~tn時能量球撞擊數均為5。又因為所有排列情況中能量球與障礙球個數均為5個,所以tn后賽車所撞球均為障礙球且個數相同,從而行駛路程也相同。

用matlab軟件運行了所有可能的情況(三個圖分別對應最大位移,最小位移以及某一種中間情況),結果如下圖:

由定積分知識:橫坐標t與縱坐標v(v與t)圍成面積為路程,則要證A情況速度最大,只需證明在0~tn內任意時刻(記為t),C情況速度小于A情況速度(vn>v)即可。設C情況中所撞障礙球時間為tm

4.4 模型4

計算簡化問題, 取賽車的中心, 障礙球的中心作計算, 不考慮形狀因素:

建立平面直角坐標系xOy, 其中原點O位于障礙球中心, 障礙球中心朝向賽車的方向為y軸正方向, y軸朝向右側, 也就是賽車左鍵加速方向為x軸正方向.

當用戶發現正面障礙球完全出現在屏幕最上方時, 由于游戲過程中賽車中心位于屏幕底端最中間, 考慮到賽車是一個長寬高為10(p)的正方體, 賽車中心距離障礙球中心的距離為: 800 - 20/2 = 790(p).

假設賽車此時的速度是v0(p/s), 由于假設用戶的反應時間是0.2(s), 那么在用戶實際按鍵的時候, 賽車中心距離障礙球中心的距離已經減少到: 790 - 0.2 v0 .

實際躲閃的策略是, 以最快的按鍵頻率8(次/s):

1)不停地按下鍵保持減速, 減少垂直方向賽車中心和障礙球中心距離的減少速度;

2)不停地按左或者右鍵其中之一, 在賽車中心和障礙球中心相撞前盡量增加兩者中心水平方向上的距離。

4.4.1 垂直方向

由于每次按鍵賽車的速度減少20%, 如果初始速度是v0, 以最快的頻率每0.125s一次按鍵, 經過n*0.125s, 也就是第n次按鍵的之前的瞬間, 賽車的速度是:

vyn = 0.8nv0

此時賽車走過的距離是一個等比數列求和的形式, 根據求和公式可以寫成:

Lyn = v0 (0.8 - 0.8(n+1) )/(1-0.8) = 5v0? (0.8 - 0.8(n+1))

而對于任意時間t, 把時間改寫成t = n0.125 + dt的形式, 其中(0<dt<0.125), 那么在該段時間內賽車走過的距離是:

Lyt = 5v0 (0.8 - 0.8(n+1)) + 0.8(n+1)dt

按照上面的躲閃策略, 用戶開始按鍵, 經過時間t = (0.125n + dt)之后, 垂直方向上賽車中心到障礙球中心的距離是:

Ly = 790 - 0.2 v0 - 5v0 (0.8 - 0.8(n+1)) + 0.8(n+1)dt

4.4.2 水平方向

假設選擇一直按右鍵, 初始速度是0, 以最快的頻率每0.125s一次按鍵, 經過時間t, 賽車的速度是:

vxn = 10t

此時水平方向賽車走過的距離可以利用計算面積的方法得到:

Lx = 10 t 2/2 = 5t 2

綜上所述, 如果以障礙球的中心為坐標原點O, 采用以上的規避策略, 那么賽車中心點所畫出來的曲線是:

x = 5 t 2

y = 790 - 0.2 v0 - 5 v0(0.8 - 0.8(n+1)) + 0.8(n+1) v0dt

其中: t = 0.125n + dt, 滿足: 0<dt <0.125

依據問題4, 在二維平面上, 賽車可以看成是10*10p的正方形, 而障礙球可以看作一個直徑20p的圓形. 采用之前建立的平面直角坐標系, 則問題可以寫成以下形式:

求v0的最小值, 使得賽車的右上角經過的路徑始終距離原點的距離大于10p。而賽車右上角經過的路徑可以寫成:

x_rt = x - 5 = 5 * t^2 - 5

y_rt = y - 5 = 785 - 0.2 v0 - 5 * v0 * (0.8 - 0.8^(n+1)) + dt * 0.8^(n+1) * v0

賽車右上角經過的路徑是一個不連續的函數, 為了方便計算, 我們使用一個經過這個不連續函數所有間斷點的連續函數來作為近似, 這個函數可以寫成:

4.5 模型5

利用上一問題的結論, 賽車的速度要低于104 p/s才能保證屏幕上方出現障礙球的時候, 用戶有足夠的時間操作進行規避. 考慮到用戶的反應時間并不一定是0.2 s, 因此保守起見設置賽車的最高速度為 100 p/s, 此時可以確保即使用戶的反應時間是0.5 s的時候依然可以規避障礙球.

其結果可以在Mathematica里面輸入命令:Plot[{785 - 0.5*a - 4*a*(1 - 0.8^(8*Sqrt[(x - 5)/5]) + 1), Sqrt[100 - x^2]} /. a -> 100, {x, 0, 10}]確認。

為了設計一個較為合理的游戲, 考慮以下幾點假設進行限制:

1)游戲時間不能太長, 游戲時間過長會使得用戶產生視覺疲勞, 不利于身心健康。

2)游戲時間不能太短, 游戲時間太短并不能引起用戶的興趣。

3)游戲中用戶出現的障礙球和獎勵球應該都能通過用戶的反應操作獲取或者躲避, 不能出現無法躲避或者獲取的球體。

4)游戲中需要用戶操作的頻率不能太低, 太低的話用戶有可能會感到無聊。

按照游戲給定限制, 400km的初始能量可以通過換算關系得到其等價像素為400×100/0.3約為130萬p,如果按照10p/s的默認速度來說的話要經過130000s=36個小時才能結束。

假設用戶剛開始為了盡量撞到更多的能量球的同時規避障礙球為目標進行操作, 用戶需要盡快加速到100p/s, 然后通過遇到障礙球減速,沒有障礙球加速的方法進行游戲。

根據問題4的結論, 當以100p/s的初速度規避障礙球的時候, 賽車向一側移動了至少5 t2 = 15p, 解得t=1.732,考慮到每次操作花費0.125s,并且賽車在橫向和縱向都進行同樣時長和頻率的操作,因此每次躲避障礙球需要花費1.732/0.125×2=26次操作。

同時,在躲避障礙球后,用戶希望繼續加快速度獲得能量球, 因此使用1.732/0.125=13次加速操作來重新達到100p/s的速度,因此每次躲避障礙球需要39次操作。

另外假設獲取能量球可以同樣使用一直平移的策略獲取, 那么獲取能量球可以需要13次操作。

為了使得游戲更好玩, 因此要平衡操作數。

假設游戲1分鐘是理想的時間, 那么允許

log(300/130000)/log(0.95)=149次操作

假設游戲2分鐘是理想的時間, 那么允許

log(300/130000)/log(0.95)=136次操作.

假設游戲5分鐘是理想的時間, 那么允許

log(300/130000)/log(0.95)=118次操作.

假設游戲10分鐘是理想的時間, 那么允許

log(300/130000)/log(0.95)=104次操作.

綜合考慮游戲2分鐘是比較理想的時間, 需要平均每秒用戶發生一次操作比較好.所以比如7次能量球與6次障礙球交叉排列這種方案即可。另外,游戲可以設計成障礙球出現在賽車正前方, 能量球出現在賽車一直加速正好能獲取的測前方比較好。

5 模型評價

筆者利用簡單的定積分知識, 把游戲問題建模成為一個積分和優化問題, 在問題1中, 作者利用排列組合原理, 用反證法證明了先加速后減速賽車行駛距離最遠, 而先減速后加速賽車行駛距離最近, 并利用matlab得出函數圖像,Excel計算了數值的結果;在問題2中,作者使用了簡單的定積分方法獲得了按照一定次序按鍵之后賽車的運動曲線;在問題3中, 作者利用Excel計算了4000次循環操作后賽車的最終速度; 在問題4中, 作者通過循序漸進的方式利用簡單的定積分原理和Mathematica數學軟件獲得了使得用戶能安全躲避障礙球的最大速度. 在問題5中,在考慮到玩家趣味性、挑戰性、成就感三方面以及游戲的本身設計后,綜合得出了最佳的設計方案。

對于前三個問題, 筆者獲得的是精確解, 模型并沒有引入誤差, 在第四個問題中,由于路徑函數并不是連續函數,其函數一階導數并不是連續的,因此難以使用微分方法獲得精確解,筆者先是使用連續函數對路徑函數做了近似, 然后利用Mathematica的數學工具獲得了問題的近似解, 如果問題對精度有進一步要求, 是可以使用更為復雜的微分算法來獲得問題更加精確的解的. 第五個問題作者使用了幾個假設, 利用函數以及假設一些條件,綜合玩家的心理分析的出游戲時間為2分鐘,玩家每秒操作一次較好,排布方案為7個能量球與6個障礙球交叉排列即可。

參考文獻:

[1] 張偉新. 排列組合問題的基本解法[J]. 中等數學, 2005(1):6-9.

[2] 鄭慶玉, 郭政. 數學分析方法[M]. 電子工業出版社, 2010.

[3] 陳成明, 王慧, 周健,等. VDT視覺疲勞及其測量方法綜述[J]. 人類工效學, 2013, 19(2):92-95.

[4] Wolfram Research, Inc., Mathematica, Version 9.0, Champaign, IL

【通聯編輯:梁書】

主站蜘蛛池模板: 精品视频一区在线观看| 久久香蕉国产线看观看亚洲片| 亚洲第一色网站| 久久久久九九精品影院| 亚洲精品视频在线观看视频| 国内视频精品| 欧美精品啪啪| 欧美一级在线看| 性色一区| 国产成人你懂的在线观看| 小13箩利洗澡无码视频免费网站| 国产精品亚洲а∨天堂免下载| 最新国产在线| 在线国产欧美| 国产精品手机在线观看你懂的| 亚洲成人免费看| 欧美日韩成人在线观看 | 凹凸国产分类在线观看| 青草国产在线视频| 午夜激情福利视频| 无码视频国产精品一区二区| av在线5g无码天天| 国产精品自在在线午夜| 91 九色视频丝袜| 国产精品嫩草影院视频| 成人国产一区二区三区| 国产熟女一级毛片| 在线观看热码亚洲av每日更新| 2020精品极品国产色在线观看 | 日韩av无码精品专区| 亚洲国产成熟视频在线多多| 国产成人精品视频一区视频二区| 国产成人无码播放| 青青操国产| 成年人午夜免费视频| 亚洲午夜天堂| 尤物精品国产福利网站| 日本手机在线视频| 中文字幕av无码不卡免费| 亚洲欧美日韩动漫| 在线观看精品自拍视频| 精品天海翼一区二区| 亚洲bt欧美bt精品| 色哟哟国产成人精品| 久久99精品久久久久久不卡| 一本一道波多野结衣一区二区 | 18禁黄无遮挡免费动漫网站| 国产精品理论片| 亚洲国产精品无码久久一线| 五月婷婷丁香综合| 国产精品午夜福利麻豆| 91视频首页| 亚洲视屏在线观看| 国产黄色爱视频| 精品久久久久久成人AV| 成人小视频网| 麻豆国产精品| 日韩精品欧美国产在线| 亚洲三级成人| 国产精品人莉莉成在线播放| 日本在线视频免费| 亚洲精品成人7777在线观看| 激情综合网址| 高清国产在线| 亚洲精品少妇熟女| 国产一区二区三区免费| 91成人免费观看| 国产精品永久不卡免费视频| 色视频久久| 欧美精品影院| 亚洲人成电影在线播放| 波多野结衣视频网站| 免费a级毛片视频| 四虎精品国产AV二区| 尤物亚洲最大AV无码网站| 99热国产在线精品99| 毛片基地美国正在播放亚洲| 日韩精品免费一线在线观看| 精品国产污污免费网站| 国产欧美日韩视频一区二区三区| 在线观看无码a∨| 色综合婷婷|