微信小程序?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)文章
對(duì)象題目的一個(gè)坑 理解Javascript對(duì)象
這篇文章主要介紹了Javascript對(duì)象,特別為大家分享了對(duì)象題目的一個(gè)坑,提供了解題思路,感興趣的小伙伴們可以參考一下2015-12-12
使用html+js+css 實(shí)現(xiàn)頁面輪播圖效果(實(shí)例講解)
下面小編就為大家?guī)硪黄褂胔tml+js+css 實(shí)現(xiàn)頁面輪播圖效果(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
JS對(duì)大量數(shù)據(jù)進(jìn)行多重過濾的方法
今天在工作中遇到一個(gè)問題,當(dāng)前端通過Ajax從后端取得了大量的數(shù)據(jù),需要根據(jù)一些條件過濾,但是發(fā)現(xiàn)寫的過濾方法有問題,后來仔細(xì)的查找問題,通過網(wǎng)上的資料終于解決了這個(gè)問題,現(xiàn)在將解決的過程以及解決方法分享給大家,有需要的朋友們可以參考借鑒。2016-11-11
js實(shí)現(xiàn)密碼強(qiáng)度檢測(cè)【附示例】
下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)密碼強(qiáng)度檢測(cè)【附示例】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-03-03
JavaScript實(shí)現(xiàn)請(qǐng)求服務(wù)端接口方法詳解
這篇文章主要介紹了JavaScript實(shí)現(xiàn)請(qǐng)求服務(wù)端接口方法,JavaScript?中請(qǐng)求服務(wù)端接口的代碼實(shí)現(xiàn)可能會(huì)因?yàn)槭褂玫姆椒ǘ兴煌?,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01

