12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- class JoyStick {
- constructor(e) {
- E(this, "_zone", document.createElement("div"));
- E(this, "_joystick", null);
- E(this, "_room");
- this._room = e
- }
- init(e) {
- const {interval: t=33, triggerDistance: r=25, style: n={
- left: 0,
- bottom: 0
- }} = e
- , o = (u,c)=>{
- this._room.actionsHandler.joystick({
- degree: Math.floor(u),
- level: Math.floor(c / 5)
- })
- }
- , a = this._zone;
- document.body.appendChild(a),
- a.style.position = "absolute",
- a.style.width = "200px",
- a.style.height = "200px",
- a.style.left = String(n.left),
- a.style.bottom = String(n.bottom),
- a.style.zIndex = "999",
- a.style.userSelect = "none",
- a.style.webkitUserSelect = "none",
- this._joystick = nipplejs.create({
- zone: a,
- mode: "static",
- position: {
- left: "50%",
- top: "50%"
- },
- color: "white"
- });
- let s, l;
- return this._joystick.on("move", (u,c)=>{
- s = c
- }
- ),
- this._joystick.on("start", ()=>{
- l = window.setInterval(()=>{
- s && s.distance > r && o && o(s.angle.degree, s.distance)
- }
- , t)
- }
- ),
- this._joystick.on("end", ()=>{
- l && window.clearInterval(l),
- l = void 0
- }
- ),
- this._joystick
- }
- show() {
- if (!this._joystick)
- throw new Error("joystick is not created");
- this._zone.style.display = "block"
- }
- hide() {
- if (!this._joystick)
- throw new Error("joystick is not created");
- this._zone.style.display = "none"
- }
- }
|