微信小程序?qū)崿F(xiàn)彈球游戲
本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)彈球游戲的具體代碼,供大家參考,具體內(nèi)容如下
實(shí)驗(yàn)內(nèi)容:
小球按照隨機(jī)的角度直線運(yùn)動(dòng),如果碰到四壁則反彈。你們不需要做游戲計(jì)時(shí)、設(shè)置小球及背景顏色等,只完成小球在方框內(nèi)反彈運(yùn)動(dòng)的功能。這里主要考查繪圖知識(shí),數(shù)學(xué)計(jì)算能力,以及對(duì)定時(shí)器的應(yīng)用。
實(shí)驗(yàn)效果(最簡(jiǎn)單版本):
實(shí)驗(yàn)代碼:
index.js
// index.js Page({ ? ? data:{ ? ? ? cx:200, ? ? ? cy:50, ? ? ? destinaX:3, ? ? ? destinaY:2 ? ? }, ? ? //初次渲染觸發(fā) ? ? onReady:function(){ ? ? ? var c=wx.createCanvasContext("canvasTest"); ? ? ? // var c=wx.createSelectorQuery('canvasTest') ? ? ? var that=this; ? ? ? var timer=setInterval(canvasSize,20); ? ? ? function canvasSize(){ ? ? ? ? //畫布數(shù)據(jù) ? ? ? ? const width=300; ? ? ? ? const height=300; ? ? ? ? const speed=2; ? ? ? ? const r=7; ? ? ? ? //下面是相對(duì)左上角基點(diǎn)距離 和畫布大小 ? ? ? ? c.rect(0,0,width,height); ? ? ? ? c.stroke(); ? ? ? ? //球會(huì)根據(jù)實(shí)時(shí)位置發(fā)生變化 ? ? ? ? c.beginPath(); ? ? ? ? var ox1=that.datacox; ? ? ? ? var oy1=that.datacoy; ? ? ? ? ? ox1=that.data.destinaX*speed+that.data.cx; ? ? ? ? ? oy1=that.data.cy-that.data.destinaY*speed; ? ? ? ? ? if(ox1>=width||ox1<=0){ ? ? ? ? ? ? var bounceX=-that.data.destinaX; ? ? ? ? ? ? that.setData({destinaX:bounceX}); ? ? ? ? ? ? ox1=that.data.destinaX*speed+that.data.cx; ? ? ? ? ? } ? ? ? ? ? if(oy1>=height||oy1<=0){ ? ? ? ? ? ? var bounceY=-that.data.destinaY; ? ? ? ? ? ? that.setData({destinaY:bounceY}); ? ? ? ? ? ? oy1=that.data.cy-that.data.destinaY*speed; ? ? ? ? ? } ? ? ? ?console.log(that.data.ox1,that.data.oy1); ? ? ? ? that.setData({cx:ox1,cy:oy1}); ? ? ? ? c.arc(that.data.cx,that.data.cy,r,0,2*Math.PI); ? ? ? ? c.fill(); ? ? ? ? c.stroke(); ? ? ? ? c.draw(); ? ? ? } ? ? } ? })
index.wxml
<!--index.wxml--> <view class="canvasStyle"> <canvas canvas-id="canvasTest" style="width: 300px;height: 300px;"></canvas>? </view>
index.wxss
/**index.wxss**/ .canvasStyle{ ? display: flex; ? justify-content: center; ? margin: 10px; ? margin-top: 70px; ? background-color: aqua; ? }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
千萬(wàn)不要錯(cuò)過(guò)的JavaScript高效對(duì)比數(shù)組差異方法
前端開發(fā)中,我們通常需要對(duì)比兩個(gè)數(shù)組對(duì)象的差異。這其中有很多種方法,但是有些方法會(huì)帶來(lái)一些問(wèn)題,所以本文為大家準(zhǔn)備了一個(gè)高效方法,需要的可以參考一下2023-05-05Layui組件Table綁定行點(diǎn)擊事件和獲取行數(shù)據(jù)的方法
今天小編就為大家分享一篇Layui組件Table綁定行點(diǎn)擊事件和獲取行數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08一個(gè)字符串中出現(xiàn)次數(shù)最多的字符 統(tǒng)計(jì)這個(gè)次數(shù)【實(shí)現(xiàn)代碼】
下面小編就為大家?guī)?lái)一篇一個(gè)字符串中出現(xiàn)次數(shù)最多的字符 統(tǒng)計(jì)這個(gè)次數(shù)【實(shí)現(xiàn)代碼】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-04-04BootStrap實(shí)現(xiàn)樹形目錄組件代碼詳解
這篇文章主要介紹了BootStrap實(shí)現(xiàn)樹形目錄組件代碼詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06只需五句話搞定JavaScript作用域(經(jīng)典)
javascript作用域是前端開發(fā)比較難理解的知識(shí)點(diǎn),下面小編給大家提供五句話幫助大家很快的了解js作用域,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-07-07layui監(jiān)聽下拉選框選中值變化的方法(包含監(jiān)聽普通下拉選框)
今天小編大家分享一篇layui監(jiān)聽下拉選框選中值變化的方法(包含監(jiān)聽普通下拉選框),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09詳解JS去重及字符串奇數(shù)位小寫轉(zhuǎn)大寫
本篇文章主要介紹了詳解JS去重及字符串奇數(shù)位小寫轉(zhuǎn)大寫 ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12bootstrap-table后端分頁(yè)功能完整實(shí)例
這篇文章主要介紹了bootstrap-table后端分頁(yè)功能,結(jié)合完整實(shí)例形式分析了bootstrap-table后端請(qǐng)求、數(shù)據(jù)分頁(yè)功能具體步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-06-06