JavaScript制作游戲搖桿方向盤(pán)
JavaScript制作游戲搖桿方向盤(pán)
<!doctype html> <html> <head> <meta charset="utf-8"> <title>js 游戲搖桿 方向盤(pán)</title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/> <style> * { margin: 0; padding: 0; } .div1 { width: 200px; height: 200px; background: rgba(0, 0, 0, 0.15); border-radius: 100%; position: absolute; top: 50%; left: 50%; margin-left: -100px; margin-top: -100PX; } .div2 { width: 50px; height: 50px; background: rgb(255, 255, 255); border-radius: 100%; position: absolute; top: 50%; left: 50%; margin-left: -25px; margin-top: -25px; } .div3 { width: 200px; height: 200px; border-radius: 100%; position: absolute; top: 50%; left: 50%; margin-left: -100px; margin-top: -100PX; } </style> </head> <body> <div class="div1"></div> <div class="div2"></div> <div class="div3"></div> <script> let div3 = document.querySelector('.div3') let div2 = document.querySelector('.div2') let r = 25 //搖桿的半徑 let r2 = 100 //底盤(pán)的半徑 let x = div2.offsetLeft + r //加上r半徑的偏移到中心 let y = div2.offsetTop + r div3.ontouchmove = (e) => { let t = e.changedTouches[0] //開(kāi)根 觸摸點(diǎn)到搖桿中心點(diǎn)的距離 let d = Math.sqrt(Math.pow(t.pageX - x, 2) + Math.pow(t.pageY - y, 2)) d = d > (r2 - r) ? r2 - r : d //三角函數(shù)求反正切 減去xy偏移到中心點(diǎn) let radin = Math.atan2(t.pageY - y, t.pageX - x) let vx = x + Math.cos(radin) * d let vy = y + Math.sin(radin) * d div2.style.left = vx + 'px' div2.style.top = vy + 'px' } div3.ontouchend = () => { div2.style.left = x + 'px' div2.style.top = y + 'px' } </script> </body> </html>
結(jié)果
到此這篇關(guān)于JavaScript制作游戲搖桿方向盤(pán)的文章就介紹到這了,更多相關(guān)JavaScript 游戲搖桿 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于JS制作一個(gè)簡(jiǎn)易的2048游戲
- 基于JS制作一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)版地圖
- 利用Three.js制作一個(gè)新聞聯(lián)播開(kāi)頭動(dòng)畫(huà)
- 基于JS制作一個(gè)網(wǎng)頁(yè)版的猜數(shù)字小游戲
- JavaScript制作簡(jiǎn)單計(jì)算器功能
- JavaScript制作簡(jiǎn)單網(wǎng)頁(yè)計(jì)算器
- JS+Canvas實(shí)現(xiàn)滿屏愛(ài)心和文字動(dòng)畫(huà)的制作
- 利用JavaScript制作一個(gè)搞怪的兔子動(dòng)畫(huà)效果
- 一文教你用JavaScript制作個(gè)簡(jiǎn)單的大轉(zhuǎn)盤(pán)游戲
- 使用canvas制作炫酷黑客帝國(guó)數(shù)字雨背景html+css+js
- js利用canvas制作一個(gè)實(shí)時(shí)時(shí)鐘
- 基于JavaScript制作一個(gè)簡(jiǎn)單的天氣應(yīng)用
相關(guān)文章
JavaScript實(shí)現(xiàn)獲取最近7天的日期的方法詳解
這篇文章主要想和大家分享一些JavaScript開(kāi)發(fā)中會(huì)用到的小技巧,本文主要介紹了js獲取最近7天的日期,判斷當(dāng)前日期時(shí)間大于指定日期時(shí)間等內(nèi)容,需要的可以參考一下2023-04-04詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn)
這篇文章主要介紹了詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03js在數(shù)組中刪除重復(fù)的元素自保留一個(gè)(兩種實(shí)現(xiàn)思路)
遍歷要?jiǎng)h除的數(shù)組arr, 把元素分別放入另一個(gè)數(shù)組tmp中,在判斷該元素在arr中不存在才允許放入tmp中,具體實(shí)現(xiàn)如下,需要的朋友可以看看2014-08-08JS HTML5 音樂(lè)天氣播放器(Ajax獲取天氣信息)
寫(xiě)個(gè)播放器應(yīng)付復(fù)習(xí),因?yàn)锳jax涉及到跨域獲取天氣信息,有兩個(gè)版本,一個(gè)是直接跨域,IE10支持,其他的瀏覽器要改配置2013-05-05JavaScript Base64 作為文件上傳的實(shí)例代碼解析
這篇文章主要介紹了JavaScript Base64 作為文件上傳的實(shí)例代碼解析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02js驗(yàn)證模型自我實(shí)現(xiàn)的具體方法
js驗(yàn)證模型自我實(shí)現(xiàn)的具體方法,需要的朋友可以參考一下2013-06-06JS+AJAX實(shí)現(xiàn)省市區(qū)的下拉列表聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了JS+AJAX實(shí)現(xiàn)省市區(qū)的下拉列表聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09分享JS表單驗(yàn)證源碼(帶錯(cuò)誤提示及密碼等級(jí))
這篇文章主要介紹了JS表單驗(yàn)證源碼(帶錯(cuò)誤提示及密碼等級(jí)),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01