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ù)據(jù)結(jié)構(gòu)之雙向鏈表
這篇文章主要為大家詳細(xì)介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
js中對(duì)象與對(duì)象創(chuàng)建方法的各種方法
這篇文章主要給大家介紹了關(guān)于js中對(duì)象與對(duì)象創(chuàng)建方法的各種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
JavaScript字符串的json的自定義加密解密函數(shù)示例
JavaScript自定義函數(shù)中使用String.fromCharCode函數(shù)將輸入字符串中每個(gè)字符的Unicode編碼加1,然后將加密后的字符拼接成一個(gè)新字符串返回,調(diào)用JSON.stringify函數(shù)轉(zhuǎn)換json成一個(gè)普通字符串2023-12-12
JS回調(diào)函數(shù)基本定義與用法實(shí)例分析
這篇文章主要介紹了JS回調(diào)函數(shù)基本定義與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript回調(diào)函數(shù)基本概念、功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-05-05
Mock.js的安裝與使用教程(擺脫后端同學(xué)的束縛)
Mock功能可以根據(jù)接口/數(shù)據(jù)結(jié)構(gòu)定義、Mock規(guī)則配置、Mock?期望配置,自動(dòng)生成模擬數(shù)據(jù),且使用者可以根據(jù)需要靈活構(gòu)造各種結(jié)構(gòu)的接口數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Mock.js的安裝與使用的相關(guān)資料,需要的朋友可以參考下2022-08-08
用javascript實(shí)現(xiàn)始終保持打開(kāi)同一個(gè)子窗口以及關(guān)閉父窗口同時(shí)自動(dòng)關(guān)閉所有子窗口
用javascript實(shí)現(xiàn)始終保持打開(kāi)同一個(gè)子窗口以及關(guān)閉父窗口同時(shí)自動(dòng)關(guān)閉所有子窗口...2007-06-06
js腳本實(shí)現(xiàn)數(shù)據(jù)去重
最近在一個(gè)項(xiàng)目中,需要去除掉重復(fù)的數(shù)據(jù),之前都是在后臺(tái)實(shí)現(xiàn),現(xiàn)在客戶(hù)需求是在前臺(tái)去重,于是就想到了javascript腳本。2014-11-11
js+css實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了js+css實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
JavaScript將Table導(dǎo)出到Excel實(shí)現(xiàn)思路及代碼
將Table導(dǎo)出到Excel不是一件困難的事,很多語(yǔ)言都可以實(shí)現(xiàn),本文主要介紹下使用JavaScript實(shí)現(xiàn)將table導(dǎo)出到excel,思路很清晰感興趣的你不妨參考下哈2013-03-03
uni-app中實(shí)現(xiàn)元素拖動(dòng)效果
這篇文章主要介紹了uni-app中實(shí)現(xiàn)元素拖動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01

