久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

javascriptcanvas檢測小球碰撞的方法

這篇文章主要講解了javascript canvas檢測小球碰撞的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:空間域名、虛擬主機、營銷軟件、網站建設、宜良網站維護、網站推廣。

定義一個canvas標簽

<div class="cnavasInfo">
 <canvas
  id="canvas"
  width="800"
  height="500"
 ></canvas>
</div>

函數以及相關的邏輯處理

export default {
 data() {
  return {
   canvas: null,
   ctx: null,
   arcObj: {}
  };
 },
 mounted() {
  this.canvas = document.getElementById("canvas");
  this.ctx = this.canvas.getContext("2d");
  // this.move(); // 矩形的邊緣碰撞函數
  // this.moveArc(); // 繪制碰撞圓形,對象形式
  this.moveRect()
 },
 methods: {
  move() {
   let x = 0;
   let y = 0;
   let width = 100;
   let height = 100;
   let speedX = 2;
   let speedY = 2;
   let ctx = this.ctx;
   ctx.fillStyle = "red";
   ctx.fillRect(x, y, width, height);
   setInterval(() => {
    ctx.clearRect(x, y, this.canvas.width, this.canvas.height);
    x += speedX;
    if (x > this.canvas.width - width) {
     speedX *= -1;
    } else if (x < 0) {
     speedX *= -1;
    }
    y += speedY;
    if (y > this.canvas.height - height) {
     speedY *= -1;
    } else if (y < 0) {
     speedY *= -1;
    }
    ctx.fillRect(x, y, width, height);
   }, 10);
   // this.requestmove(x,y,width,height,ctx,speedX,speedY); // 請求幀的動畫過程
  },
  requestmove(x, y, width, height, ctx, speedX, speedY) {
   ctx.clearRect(x, y, this.canvas.width, this.canvas.height);
   x += speedX;
   if (x > this.canvas.width - width) {
    speedX *= -1;
   } else if (x < 0) {
    speedX *= -1;
   }
   y += speedY;
   if (y > this.canvas.height - height) {
    speedY *= -1;
   } else if (y < 0) {
    speedY *= -1;
   }
   ctx.fillRect(x, y, width, height);
   window.requestAnimationFrame(
    this.requestmove(x, y, width, height, ctx, speedX, speedY)
   );
  },
  moveArc(x, y, r, speedX, speedY) {
   this.x = x;
   this.y = y;
   this.r = r;
   this.speedX = speedX;
   this.speedY = speedY;
   this.moveUpdata = function() {
    this.x += this.speedX;
    if (this.x > this.canvas.width - this.r) {
     this.speedX *= -1;
    } else if (this.x < 0) {
     this.speedX *= -1;
    }
    this.y += this.speedY;
    if (this.y > this.canvas.height - this.r) {
     this.speedY *= -1;
    } else if (this.y < 0) {
     this.speedY *= -1;
    }
   };
  },
  moveRect(){
   // 面向對象編程
   function Rect(x,y,width,height,color,speedX,speedY,ctx,canvas) {
    this.x = x;
    this.y = y;
    this.width = width;
    this.height = height;
    this.color = color
    this.speedX = speedX
    this.speedY = speedY
    this.ctxRect = ctx
    this.canvas = canvas
   }
   Rect.prototype.draw = function() {
    this.ctxRect.beginPath();
    this.ctxRect.fillStyle = this.color
    this.ctxRect.fillRect(this.x,this.y,this.width,this.height)
    this.ctxRect.closePath();
   }
   Rect.prototype.move = function() {
    this.x += this.speedX
    if(this.x > this.canvas.width - this.width){
     this.speedX *= -1
    } else if(this.x < 0){
     this.speedX *= -1
    }
    this.y += this.speedY
    if(this.y > this.canvas.height - this.height){
     this.speedY *= -1
    } else if(this.y < 0){
     this.speedY *= -1
    }
   }
   let rect1 = new Rect(0,100,100,100,'red',2,2,this.ctx,this.canvas)
   let rect2 = new Rect(300,100,100,100,'blue',-2,-2,this.ctx,this.canvas)
   // rect1.draw();
   // rect2.draw()
   let animate = ()=>{
     this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height)
     rect1.draw()
     rect1.move()
     rect2.draw()
     rect2.move()
    let rect1Min = rect1.x;
    let rect1Max = rect1.x + rect1.width
    let rect2Min = rect2.x
    let rect2Max = rect2.x + rect2.width
    let min = Math.max(rect1Min,rect2Min)
    let max = Math.min(rect1Max,rect2Max)
    if(min < max){
     rect1.speedX *= -1;
     rect1.speedY *= 1;
     rect2.speedX *= -1
     rect2.speedY *= 1
    }
    window.requestAnimationFrame(animate)
   } 
   animate()
  }
 }
};

樣式控制

#canvas {
 border: 1px solid black;
}

看完上述內容,是不是對javascript canvas檢測小球碰撞的方法有進一步的了解,如果還想學習更多內容,歡迎關注創新互聯行業資訊頻道。

分享題目:javascriptcanvas檢測小球碰撞的方法
網頁網址:http://www.js-pz168.com/article10/jipogo.html

成都網站建設公司_創新互聯,為您提供網站策劃、虛擬主機品牌網站制作、品牌網站設計、自適應網站、微信小程序

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
亚洲精品中字| 国产欧美日韩亚州综合| 国产精品拍天天在线| 香蕉加勒比综合久久| 国产剧情一区在线| 精品不卡在线| 欧美影院一区二区| 国产欧美日韩亚州综合| 天天色天天操综合| gogo大胆日本视频一区| 日韩精品欧美专区| 欧美精品免费视频| 亚洲欧美成人一区二区三区| 国产一区二区三区| 久久精彩视频| 制服丝袜一区二区三区| 亚洲精品免费视频| 国产精品一区免费在线观看| 久久久水蜜桃| 欧美一区二区三区影视| 亚洲精品国产品国语在线app| 精品一区二区日韩| 好吊色欧美一区二区三区四区| 欧美色手机在线观看| 亚洲欧美一区二区视频| 国产精品1区2区3区| 日韩成人av电影在线| 2024国产精品| 日韩中文字幕亚洲一区二区va在线 | 成人动漫视频在线观看完整版 | 欧美日韩一区二区三区在线看| 国产精品久久久爽爽爽麻豆色哟哟| 免费成人在线影院| 国产精品麻豆免费版| 欧美美女一区二区| 一区二区日韩电影| 7777精品久久久大香线蕉小说| 色偷偷成人一区二区三区91| 国产精品网友自拍| 国产一二精品视频| 日韩视频精品| 国产亚洲一本大道中文在线| 另类小说视频一区二区| 久久精品国产美女| 精品99久久久久久| 欧美成人精品1314www| 午夜精品视频一区| 国产精品国模大尺度私拍| 欧美日韩久久久| 亚洲一区二区三区四区在线观看| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 精东粉嫩av免费一区二区三区| 欧美污视频久久久| 久久久久久一二三区| 国产精品一品视频| 色婷婷精品久久二区二区蜜臀av| 亚洲人成影院在线观看| 91香蕉视频mp4| 欧美男男青年gay1069videost| 亚洲成a人v欧美综合天堂下载| 成人区精品一区二区| 欧美tickle裸体挠脚心vk| 久久国产成人午夜av影院| 亚洲高清资源综合久久精品| 国产精品人成在线观看免费| hitomi一区二区三区精品| 欧美日韩国产首页在线观看| 偷窥少妇高潮呻吟av久久免费 | 国产精品妹子av| 懂色av噜噜一区二区三区av| 欧美亚洲一区三区| 亚洲成人动漫在线免费观看| 欧美国产一二三区| 中文字幕va一区二区三区| 成人午夜伦理影院| 欧美美女一区二区| 裸体歌舞表演一区二区| 亚洲国产日韩综合一区| 亚洲精品一二三区| 国产女主播一区二区| 久久久午夜精品| 成人做爰69片免费看网站| 欧美日韩成人高清| 蜜桃视频第一区免费观看| 一区二区在线高清视频| 一区2区3区在线看| 欧美成ee人免费视频| 国产精品美女久久久久久| 91蜜桃网址入口| 精品国产亚洲一区二区三区在线观看| 国产麻豆9l精品三级站| 欧美理论在线播放| 久久国产麻豆精品| 欧美色视频在线观看| 免费美女久久99| 色菇凉天天综合网| 青娱乐精品视频在线| 中文字幕一区二区三区最新| 午夜激情一区二区| 一本到不卡免费一区二区| 亚洲国产中文字幕在线视频综合| 日本高清视频一区二区三区| 一区二区三区在线视频观看 | 亚洲欧美日韩国产成人精品影院 | 成人精品国产一区二区4080| 日韩精品一区二区三区视频在线观看 | 91网址在线看| 国产亚洲综合av| 成人影片在线播放| 国产精品久久夜| 精品亚洲欧美日韩| 亚洲欧美aⅴ...| 日韩精品欧美在线| 首页亚洲欧美制服丝腿| 色噜噜夜夜夜综合网| 美国毛片一区二区| 欧美日本在线看| 国产福利不卡视频| 26uuu欧美| 99视频网站| 成人欧美一区二区三区白人| 女女同性女同一区二区三区91| 亚洲自拍另类综合| 亚洲综合av一区| 久久精品国产亚洲高清剧情介绍| 欧美日韩一区三区| 成人午夜又粗又硬又大| 久久亚洲影视婷婷| 精品久久久久久亚洲| 亚洲麻豆国产自偷在线| 亚洲日本一区二区三区在线不卡| 免费成人性网站| 欧美精品一二三| 99天天综合性| 亚洲欧洲在线观看av| 亚州欧美一区三区三区在线| 蜜桃久久精品一区二区| 日韩一级黄色大片| 91嫩草免费看| 一区二区三区在线视频观看58| 一本色道久久加勒比精品| 国内精品久久久久影院一蜜桃| 精品国产一区二区亚洲人成毛片| 99c视频在线| 一区二区三区四区亚洲| 欧美综合一区二区| 成人精品国产免费网站| 国产精品麻豆99久久久久久| 神马影院一区二区| 韩国欧美国产一区| 久久精品视频一区| 视频一区二区在线观看| 九九热在线视频观看这里只有精品| 精品国产制服丝袜高跟| 久久久久久99| 看电视剧不卡顿的网站| 欧美成人vps| 久久精品日产第一区二区三区乱码| 日韩电影在线观看电影| 欧美电视剧在线看免费| 国模精品娜娜一二三区| 日韩福利电影在线| 精品国产凹凸成av人导航| 久久综合色一本| 久久www免费人成看片高清| 久久综合国产精品| 日本免费高清不卡| 国产毛片精品国产一区二区三区| 国产天堂亚洲国产碰碰| 亚洲精品一区二区三| 国产夫妻精品视频| 亚洲色欲色欲www| 欧美亚洲日本一区| 91网页版在线| 天堂av在线一区| 欧美哺乳videos| 日本高清久久一区二区三区| 国产精品1区2区3区在线观看| 日韩毛片视频在线看| 欧美日韩一卡二卡三卡| 国产精品制服诱惑| 九一久久久久久| 国产精品私房写真福利视频| 日本高清无吗v一区| 91视频最新| 麻豆精品在线视频| 国产精品乱码人人做人人爱| 欧洲一区在线观看| 风间由美久久久| 久久国产人妖系列| 国产精品久久久久久亚洲毛片| 欧美午夜不卡在线观看免费| 国产一区二区视频在线免费观看| 久久精品国产成人一区二区三区| 国产精品色眯眯| 欧美精品在线视频| 欧美日韩在线一二三| 成人avav影音| 日韩av高清在线观看| 久久精品综合网|