mirror of
https://github.com/genxium/DelayNoMore
synced 2024-12-28 04:28:04 +00:00
70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
cc.Class({
|
|
extends: cc.Component,
|
|
|
|
properties: {},
|
|
|
|
setInputControls: function() {
|
|
const self = this;
|
|
// add keyboard event listener
|
|
// When there is a key being pressed down, judge if it's the designated directional button and set up acceleration in the corresponding direction
|
|
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, function(event) {
|
|
switch (event.keyCode) {
|
|
case cc.macro.KEY.w:
|
|
self.activeDirection.dPjY = +1.0;
|
|
break;
|
|
case cc.macro.KEY.s:
|
|
self.activeDirection.dPjY = -1.0;
|
|
break;
|
|
case cc.macro.KEY.a:
|
|
self.activeDirection.dPjX = -2.0;
|
|
break;
|
|
case cc.macro.KEY.d:
|
|
self.activeDirection.dPjX = +2.0;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}, self.node);
|
|
|
|
// when releasing the button, stop acceleration in this direction
|
|
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, function(event) {
|
|
switch (event.keyCode) {
|
|
case cc.macro.KEY.w:
|
|
if (+1.0 == self.activeDirection.dPjY) {
|
|
self.activeDirection.dPjY = 0.0;
|
|
}
|
|
break;
|
|
case cc.macro.KEY.s:
|
|
if (-1.0 == self.activeDirection.dPjY) {
|
|
self.activeDirection.dPjY = 0.0;
|
|
}
|
|
break;
|
|
case cc.macro.KEY.a:
|
|
if (-2.0 == self.activeDirection.dPjX) {
|
|
self.activeDirection.dPjX = 0.0;
|
|
}
|
|
break;
|
|
case cc.macro.KEY.d:
|
|
if (+2.0 == self.activeDirection.dPjX) {
|
|
self.activeDirection.dPjX = 0.0;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}, self.node);
|
|
},
|
|
|
|
// LIFE-CYCLE CALLBACKS:
|
|
|
|
onLoad() {
|
|
// Properties deliberately hidden from GUI panel.
|
|
this.activeDirection = {
|
|
dPjY: 0.0,
|
|
dPjX: 0.0
|
|
};
|
|
this.setInputControls();
|
|
}
|
|
});
|
|
|