diff --git a/www.rus/js/plugins/VND_ONSControls.js b/www.rus/js/plugins/VND_ONSControls.js index 30b38a8..695799c 100644 --- a/www.rus/js/plugins/VND_ONSControls.js +++ b/www.rus/js/plugins/VND_ONSControls.js @@ -80,12 +80,35 @@ ONSControls.createButtons = function() { //============================================================================= ONSControls.createDPad = function() { const container = new PIXI.Sprite.fromImage("js/porting/assets/omori_dpad.png"); + const directions = [ + new PIXI.Sprite(), new PIXI.Sprite(), + new PIXI.Sprite(), new PIXI.Sprite() + ] var dPadSize = ConfigManager.ONSConfig.dPadSize; container.width = dPadSize; container.height = dPadSize; container.anchor.set(0.5); container.x = ConfigManager.ONSConfig.dPadX; container.y = ConfigManager.ONSConfig.dPadY; + for (elem of directions) { + container.addChild(elem); + elem.anchor.set(0.5); + elem.width = dPadSize / 5.5; + elem.height = dPadSize / 5.5; + elem.interactive = true; + } + directions[0].x = directions[0].width; + directions[1].y = directions[1].height; + directions[2].y = -directions[2].height; + directions[3].x = -directions[3].width; + directions[0].on("pointerdown", (event) => {this.sendEvent(event, "DPAD_RIGHT")}) + .on("pointerup", (event) => {this.sendEvent(event, "DPAD_RIGHT")}); + directions[1].on("pointerdown", (event) => {this.sendEvent(event, "DPAD_DOWN")}) + .on("pointerup", (event) => {this.sendEvent(event, "DPAD_DOWN")}); + directions[2].on("pointerdown", (event) => {this.sendEvent(event, "DPAD_UP")}) + .on("pointerup", (event) => {this.sendEvent(event, "DPAD_UP")}); + directions[3].on("pointerdown", (event) => {this.sendEvent(event, "DPAD_LEFT")}) + .on("pointerup", (event) => {this.sendEvent(event, "DPAD_LEFT")}); this.controlsCanvas.stage.addChild(container); this.DPadContainer = container; } @@ -93,43 +116,51 @@ ONSControls.createDPad = function() { // * LB/RB Buttons //============================================================================= ONSControls.createBumpers = function() { - const LBcontainer = new PIXI.Sprite.fromImage("js/porting/assets/omori_lb_button.png"); - const RBcontainer = new PIXI.Sprite.fromImage("js/porting/assets/omori_rb_button.png"); - LBcontainer.x = ConfigManager.ONSConfig.LBX; - LBcontainer.y = ConfigManager.ONSConfig.LBY; - LBcontainer.width = ConfigManager.ONSConfig.bumpersWidth; - LBcontainer.height = ConfigManager.ONSConfig.bumpersHeight; - LBcontainer.anchor.set(0.5); - RBcontainer.x = ConfigManager.ONSConfig.RBX; - RBcontainer.y = ConfigManager.ONSConfig.RBY; - RBcontainer.width = ConfigManager.ONSConfig.bumpersWidth; - RBcontainer.height = ConfigManager.ONSConfig.bumpersHeight; - RBcontainer.anchor.set(0.5); - this.controlsCanvas.stage.addChild(LBcontainer); - this.controlsCanvas.stage.addChild(RBcontainer); - this.LBcontainer = LBcontainer; - this.RBcontainer = RBcontainer; + const LBsprite = new PIXI.Sprite.fromImage("js/porting/assets/omori_lb_button.png"); + const RBsprite = new PIXI.Sprite.fromImage("js/porting/assets/omori_rb_button.png"); + LBsprite.x = ConfigManager.ONSConfig.LBX; + LBsprite.y = ConfigManager.ONSConfig.LBY; + LBsprite.width = ConfigManager.ONSConfig.bumpersWidth; + LBsprite.height = ConfigManager.ONSConfig.bumpersHeight; + LBsprite.anchor.set(0.5); + LBsprite.interactive = true; + LBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_LB")}) + .on("pointerup", (event) => {this.sendEvent(event, "BUTTON_LB")}) + RBsprite.x = ConfigManager.ONSConfig.RBX; + RBsprite.y = ConfigManager.ONSConfig.RBY; + RBsprite.width = ConfigManager.ONSConfig.bumpersWidth; + RBsprite.height = ConfigManager.ONSConfig.bumpersHeight; + RBsprite.anchor.set(0.5); + RBsprite.interactive = true; + RBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_RB")}) + .on("pointerup", (event) => {this.sendEvent(event, "BUTTON_RB")}) + this.controlsCanvas.stage.addChild(LBsprite); + this.controlsCanvas.stage.addChild(RBsprite); + this.LBsprite = LBsprite; + this.RBsprite = RBsprite; } //============================================================================= // * Show/Switch Buttons //============================================================================= ONSControls.createAdditionalButtons = function() { const showButton = new PIXI.Sprite.fromImage("js/porting/assets/omori_show_button.png"); - const switchButton = new PIXI.Sprite.fromImage("js/porting/assets/omori_switch_button.png"); + //const switchButton = new PIXI.Sprite.fromImage("js/porting/assets/omori_switch_button.png"); showButton.x = ConfigManager.ONSConfig.showX; showButton.y = ConfigManager.ONSConfig.showY; showButton.width = ConfigManager.ONSConfig.additonalSize; showButton.height = ConfigManager.ONSConfig.additonalSize; showButton.anchor.set(0.5); - switchButton.x = ConfigManager.ONSConfig.switchX; - switchButton.y = ConfigManager.ONSConfig.switchY; - switchButton.width = ConfigManager.ONSConfig.additonalSize; - switchButton.height = ConfigManager.ONSConfig.additonalSize; - switchButton.anchor.set(0.5); + showButton.interactive = true; + showButton.on("pointerdown", this.toggle) + // switchButton.x = ConfigManager.ONSConfig.switchX; + // switchButton.y = ConfigManager.ONSConfig.switchY; + // switchButton.width = ConfigManager.ONSConfig.additonalSize; + // switchButton.height = ConfigManager.ONSConfig.additonalSize; + // switchButton.anchor.set(0.5); this.controlsCanvas.stage.addChild(showButton); - this.controlsCanvas.stage.addChild(switchButton); + // this.controlsCanvas.stage.addChild(switchButton); this.ShowButton = showButton; - this.SwitchButton = switchButton; + // this.SwitchButton = switchButton; } //============================================================================= // * Idle animation (spinning buttons) @@ -149,7 +180,26 @@ ONSControls.playIdleAnimation = function() { //============================================================================= ONSControls.sendEvent = function(event, button) { const key = VirtualGamepad.keys.find((element) => element.name == button); - VirtualGamepad.gamepad.buttons[key.code].pressed = event.type == "pointerdown" ? true : false + if (event.type === "pointerdown") { + console.log(`ONSControls: Pointer down for ${button}`); // Remove in release + } + VirtualGamepad.gamepad.buttons[key.code].pressed = event.type === "pointerdown" ? true : false +} +//============================================================================= +// * Toggle controls +//============================================================================= +ONSControls.toggle = function() { + const elements = [ + ONSControls.ButtonsContainer, ONSControls.DPadContainer, + ONSControls.LBsprite, ONSControls.RBsprite + ] + for (elem of elements) { + if (elem.visible) { + elem.visible = false; + } else { + elem.visible = true; + } + } } //============================================================================= // * Fix controls size on empty screen @@ -157,11 +207,12 @@ ONSControls.sendEvent = function(event, button) { document.addEventListener("deviceready", onCordovaDeviceReady, false); ONSControls.onCordovaDeviceReady = function () { - console.log("ONSControls - SETUP!!!"); //Remove in release + console.log("ONSControls: Received deviceready event from cordova"); //Remove in release document.addEventListener("resume", onCordovaResume, false); }; ONSControls.onCordovaResume = function () { + console.log("ONSControls: Received resume event from cordova"); //Remove in release // TODO: HERE CONTROLS WILL BE UPDATED OR RECREATED }; @@ -274,8 +325,8 @@ ConfigManager.ONSConfig.dPadX = ConfigManager.ONSConfig.dPadSize / 2 + ConfigMan ConfigManager.ONSConfig.dPadY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.dPadSize / 2 + ConfigManager.ONSConfig.controlsOffsetY); ConfigManager.ONSConfig.bumpersScale = 1; ConfigManager.ONSConfig.bumpersOffsetX = 16; -ConfigManager.ONSConfig.bumpersWidth = ONSControls.controlsCanvas.vh(0.204) * ConfigManager.ONSConfig.bumpersScale; -ConfigManager.ONSConfig.bumpersHeight = ONSControls.controlsCanvas.vh(0.13) * ConfigManager.ONSConfig.bumpersScale; +ConfigManager.ONSConfig.bumpersWidth = ONSControls.controlsCanvas.vh(0.188) * ConfigManager.ONSConfig.bumpersScale; +ConfigManager.ONSConfig.bumpersHeight = ONSControls.controlsCanvas.vh(0.12) * ConfigManager.ONSConfig.bumpersScale; ConfigManager.ONSConfig.bumpersOffsetY = ONSControls.controlsCanvas.vh(0.56); ConfigManager.ONSConfig.LBX = ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2; ConfigManager.ONSConfig.LBY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2); @@ -383,8 +434,8 @@ ConfigManager.restoreDefaultConfig = function () { ConfigManager.ONSConfig.dPadY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.dPadSize / 2 + ConfigManager.ONSConfig.controlsOffsetY); ConfigManager.ONSConfig.bumpersScale = 1; ConfigManager.ONSConfig.bumpersOffsetX = 16; - ConfigManager.ONSConfig.bumpersWidth = ONSControls.controlsCanvas.vh(0.204) * ConfigManager.ONSConfig.bumpersScale; - ConfigManager.ONSConfig.bumpersHeight = ONSControls.controlsCanvas.vh(0.13) * ConfigManager.ONSConfig.bumpersScale; + ConfigManager.ONSConfig.bumpersWidth = ONSControls.controlsCanvas.vh(0.188) * ConfigManager.ONSConfig.bumpersScale; + ConfigManager.ONSConfig.bumpersHeight = ONSControls.controlsCanvas.vh(0.12) * ConfigManager.ONSConfig.bumpersScale; ConfigManager.ONSConfig.bumpersOffsetY = ONSControls.controlsCanvas.vh(0.56); ConfigManager.ONSConfig.LBX = ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2; ConfigManager.ONSConfig.LBY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2); @@ -410,7 +461,7 @@ ConfigManager.restoreDefaultConfig = function () { // * Plugin init //============================================================================= ONSControls.initialize = function() { - console.log("PLUGIN INIT"); + console.log("ONSControls: Initialized"); this.createCanvas(); this.configManager(); this.createButtons();