亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【Android游戲開(kāi)發(fā)二十】物理游戲之重力系統(tǒng)開(kāi)

系統(tǒng) 2258 0

Himi 原創(chuàng), 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)?jiān)诿黠@處注明! 謝謝。

原文地址: http://blog.csdn.net/xiaominghimi/archive/2011/01/19/6153396.aspx

今天群里一哥哥說(shuō)急需關(guān)于物理游戲方面的資料,so~下午就隨手寫了一個(gè)簡(jiǎn)單的 圓形自由落體 Demo,正好一起分享給大家學(xué)習(xí)下吧;

先大概說(shuō)一下,之前的文章中,給大家介紹過(guò) 重力傳感器, 那么和今天要說(shuō)的 重力系統(tǒng), 其實(shí)是一樣的!

在重力傳感器中,雖然我也實(shí)現(xiàn)了一個(gè)圓形會(huì)根據(jù)手機(jī)反轉(zhuǎn)的角度而擁有不同的速度,但是其內(nèi)置加速度算法都是Android os封裝好的,而今天我們要講的重力系統(tǒng)就是去模擬這個(gè)加速度,從而讓一個(gè)自由落體的圓形,感覺(jué)跟現(xiàn)實(shí)中的皮球一樣有質(zhì)有量!下落的時(shí)候速度加快,反彈起來(lái)以后速度慢慢減下來(lái)~

OK,先上兩張截圖,然后簡(jiǎn)單介紹之后進(jìn)行講解:

【Android游戲開(kāi)發(fā)二十】物理游戲之重力系統(tǒng)開(kāi)發(fā),讓你的游戲變得有質(zhì)有量! 【Android游戲開(kāi)發(fā)二十】物理游戲之重力系統(tǒng)開(kāi)發(fā),讓你的游戲變得有質(zhì)有量!

Demo:簡(jiǎn)介:(咳咳、玩的有點(diǎn)H,狂點(diǎn)按鈕搞的滿屏都是 - -)

當(dāng)你點(diǎn)擊模擬器任意按鍵的時(shí)候會(huì)隨機(jī)在屏幕上生成一個(gè)隨機(jī)大小、隨即顏色、隨即位置、不停閃爍的一個(gè)圓形,并且圓形都擁有重力,在做自由落體,當(dāng)圓形觸到屏幕底部的時(shí)候會(huì)反彈,并且反彈的高度一次比一次低!

這個(gè)實(shí)例中,為了好看,我沒(méi)有讓圓形最終慢到停下來(lái),會(huì)一直在一個(gè)高度進(jìn)行的反彈,下落;

還有一點(diǎn):對(duì)于圓形當(dāng)從一個(gè)高度自由落體的時(shí)候可能它在X坐標(biāo)系上沒(méi)有發(fā)生改變,當(dāng)然這是在我們代碼中,屬于理想狀態(tài),因?yàn)楝F(xiàn)實(shí)生活中,一般X/Y坐標(biāo)系都會(huì)有變動(dòng),在此Demo中,我主要把垂直下落并且反彈的功能做出來(lái)了,關(guān)于水平的加速度我沒(méi)做,第一是因?yàn)楹痛怪钡奶幚硭悸坊疽恢拢诙c(diǎn)我沒(méi)時(shí)間 - -...

好了 不廢話!先介紹一下我自定義的圓形類:

MyArc.java


代碼比較簡(jiǎn)單主要講解下幾個(gè)備注:

備注1:

估計(jì)有些同學(xué)看到這里有點(diǎn)小暈,我解釋下,大家都知道自由落體的時(shí)候,速度是越來(lái)越快的,這是受到加速度的影響,所以這里我們對(duì)原有的圓形y速度基礎(chǔ)上再加上加速度!

備注2:

雖然加速度影響了圓形原有的速度,但是我們的加速度也不是恒定的,為了模擬真實(shí)球體的自由下落,這里我們不僅對(duì)加速度增加了偏移量ACC,而且我們還要對(duì)其變化的規(guī)律進(jìn)行模擬,讓下次的加速度偏移量成倍增加!所以為什么要for循環(huán)的時(shí)候把加速度的值當(dāng)成for循環(huán)的一個(gè)判定條件!

好了,下面來(lái)看我們SurfaceView!

OK,代碼都很簡(jiǎn)單,也很清晰! 稍微說(shuō)一句:像MyArc里面也有類似MysurfaceView中一樣的方法 logic() 以及draw()這樣是更好的管理我們的代碼結(jié)構(gòu),清晰思路,讓該干什么的就去干什么,這樣省的亂~

源碼下載地址: http://download.csdn.net/source/2992517

補(bǔ)充下://備注1 這里!有的童鞋說(shuō)for循環(huán)可以簡(jiǎn)寫:這我就要提示各位童鞋了~

for (int i = 0; i < count; i++) {

vertical_speed += ACC;

}

以上代碼確實(shí)可以用一句來(lái)表示:

vertical_speed +=ACC*count; 或者 vertical_speed =vertical_speed +ACC*count;

但是要注意:因?yàn)槲疫@里變量都是浮點(diǎn)數(shù),大家都知道對(duì)于浮點(diǎn)數(shù)有位數(shù)的限制,那么我這里用for來(lái)寫可以避免乘積,如果簡(jiǎn)寫的形式會(huì)有造成得到的結(jié)果有差異!!!!所以要注意;

還有千萬(wàn)不要簡(jiǎn)寫成vertical_speed =(vertical_speed +ACC)*count; 這是錯(cuò)誤的!

【Android游戲開(kāi)發(fā)二十】物理游戲之重力系統(tǒng)開(kāi)發(fā),讓你的游戲變得有質(zhì)有量!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久久国产99久久国产首页 | 国产精品亚洲玖玖玖在线靠爱 | 在线免费观看亚洲视频 | 中文字幕精品在线观看 | 激情五月五月婷婷 | 国产99久9在线 | 性www| 亚洲麻豆视频 | 很黄的网站在线观看 | 国产嘿咻 | 天天拍夜夜拍 | 正在播放国产精品 | 中文字幕在线观看一区 | 狠狠亚洲丁香综合久久 | 一级做a爱片久久毛片 | 亚洲精品久久久 | 国产无毛 | 亚洲国产一区二区三区精品 | 精品国产一区二区三区四区色 | 欧美日韩亚洲国产无线码 | 日韩一区二区三区不卡视频 | 亚洲国产日本 | 亚洲欧美另类国产 | 天堂一区二区三区精品 | 国产欧美高清 | 婷婷色站 | 不卡无毒免费毛片视频观看 | 性生活国产 | 久久亚洲国产中v天仙www | 久久精品视频国产 | 成人国产精品一区二区网站 | 亚洲一区二区三区中文字幕 | 成人99国产精品一级毛片 | 三极毛片 | 日本久久久久久久中文字幕 | 国产手机精品一区二区 | 一区二区成人国产精品 | 一区二区三 | 久久免费视频在线观看 | 国产中文字幕视频 | 亚洲性片 |