取值方法_「EV3进阶课」制作小游戏:数据取值体系要统一(三)
不要著急,這部分教學(xué)內(nèi)容要一步步來,如果我堆出一大堆文字,反而不利于大家接收,到時(shí)候又變成“照抄”了。
為了大家更方便吸收,后面的課程內(nèi)容,我將會(huì)把發(fā)課內(nèi)容減少,發(fā)課頻率提高一點(diǎn)。這樣可能會(huì)解決很多人關(guān)于“看文字看暈”的現(xiàn)象……
今天我們再重申一下這部分問題,同時(shí)也是一個(gè)很重要的key point。
上一次的程序完成后,我們最后部分提到了一個(gè)問題。
被控制的點(diǎn)snake和apple碰不上(吃不到),是不是?
這里涉及到了一個(gè)“數(shù)據(jù)體系”的問題。(數(shù)據(jù)的取值方式)
首先,我們來看一下snake的取值方式。
snake初始坐標(biāo)為(90,60),每按鍵一次,移動(dòng)一格,也就是10個(gè)像素。
所以它只會(huì)取到橫縱坐標(biāo)的10的倍數(shù)值。
比如(60,30)或者(70,100)這樣的坐標(biāo)點(diǎn)。
再看一下apple的取值。
其隨機(jī)取值范圍為,0~170和0~120,換言之,它的取值范圍更廣。
程序一開始,它的坐標(biāo)可能就隨機(jī)生成在(21,36)這樣的位置。
這就導(dǎo)致了兩個(gè)點(diǎn)可能一開始就“注定無緣”了……
我們要解決這個(gè)問題,就要讓apple的橫縱坐標(biāo)取值方法和snake一致。
大家不要小看這一步,其實(shí)這是一個(gè)很關(guān)鍵的環(huán)節(jié)。
涉及到了一個(gè)很簡單的算法。(再簡單也叫算法!)
170個(gè)像素點(diǎn),只取其中10、20、30……的數(shù)列,
那么其實(shí)就是取10的倍數(shù)值。
我們把a(bǔ)pplex和appley的隨機(jī)取值改為取:0~17和0~12。
然后隨機(jī)取值乘以10,這個(gè)問題才能解決。
apple和snake的取值都會(huì)是10的倍數(shù)產(chǎn)生的坐標(biāo),換句話說,就是會(huì)重合差生橫縱坐標(biāo)同時(shí)相等的情況了。
這里,我們要進(jìn)一步理解下這個(gè)知識點(diǎn)。
廣告
半小時(shí)漫畫中國史1+中國史2+中國史3+世界史(套裝共4冊,作者簽章版)
作者:陳磊(筆名:二混子) 著 / 讀客文化 出品
當(dāng)當(dāng)
我們的程序特意使用10*10的點(diǎn),這是為了方便計(jì)算。
并且,標(biāo)準(zhǔn)坐標(biāo)是以(0,0)為基本點(diǎn)的。
如果使用7*7的大小,另外標(biāo)準(zhǔn)坐標(biāo)為(2,2)這樣的位置呢?
請這樣理解這個(gè)問題。
我們現(xiàn)在是以坐標(biāo)(0,0)到目標(biāo)為(170,120)的坐標(biāo)點(diǎn)圈出的一個(gè)范圍內(nèi)出現(xiàn)這個(gè)隨機(jī)的apple。
而事實(shí)上這不是一個(gè)很好的顯示范圍。因?yàn)樘科聊贿吘壛恕?/p>
如果以(2、2)~(172,122)作為取值范圍,可能效果會(huì)更好。
但這個(gè)問題會(huì)馬上變復(fù)雜一些。
數(shù)據(jù)要取7、14、21、28……
所以,取值我們可以理解為是7的倍數(shù),這個(gè)操作類似于上面的10的取值。
而標(biāo)準(zhǔn)坐標(biāo)點(diǎn),還要再加上去。
換言之,這個(gè)取值公式就會(huì)變?yōu)?n+2。
今天的內(nèi)容不多,大家可以先自行思考一下。
因?yàn)檫@個(gè)涉及到我們后面一步的操作。
十一還是要以休息為主,老丁有時(shí)間也會(huì)發(fā)課。
鑒于微信馬上要改版了,喜歡本號的朋友,勞煩點(diǎn)一下收藏本公眾號,這樣才會(huì)更方便的看到我的文章。
祝節(jié)日快樂哦!
全文完,你不點(diǎn)個(gè)贊嗎?
總結(jié)
以上是生活随笔為你收集整理的取值方法_「EV3进阶课」制作小游戏:数据取值体系要统一(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java输出1-100内的所有5的倍数,
- 下一篇: miracast投屏软件下载_手机画面如