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)滿(mǎ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-03
js在數(shù)組中刪除重復(fù)的元素自保留一個(gè)(兩種實(shí)現(xiàn)思路)
遍歷要?jiǎng)h除的數(shù)組arr, 把元素分別放入另一個(gè)數(shù)組tmp中,在判斷該元素在arr中不存在才允許放入tmp中,具體實(shí)現(xiàn)如下,需要的朋友可以看看2014-08-08
JS HTML5 音樂(lè)天氣播放器(Ajax獲取天氣信息)
寫(xiě)個(gè)播放器應(yīng)付復(fù)習(xí),因?yàn)锳jax涉及到跨域獲取天氣信息,有兩個(gè)版本,一個(gè)是直接跨域,IE10支持,其他的瀏覽器要改配置2013-05-05
JavaScript Base64 作為文件上傳的實(shí)例代碼解析
這篇文章主要介紹了JavaScript Base64 作為文件上傳的實(shí)例代碼解析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
js驗(yàn)證模型自我實(shí)現(xiàn)的具體方法
js驗(yàn)證模型自我實(shí)現(xiàn)的具體方法,需要的朋友可以參考一下2013-06-06
JS+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

