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