| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- const {ccclass, property} = cc._decorator;
- @ccclass
- export default class KeyBoard extends cc.Component {
- onLoad(){
- let buttons = [this.node.getChildByName('Left'),this.node.getChildByName('Right'),this.node.getChildByName('Jump')];
- let keyCodes = [cc.macro.KEY.a,cc.macro.KEY.d,cc.macro.KEY.w];
- buttons.forEach((elem:cc.Node,index:number)=>{
- elem.on(cc.Node.EventType.TOUCH_START,()=>{
- let event:any = {keyCode:keyCodes[index]};
- this.onKeyDown(event);
- });
- elem.on(cc.Node.EventType.TOUCH_END,()=>{
- let event:any = {keyCode:keyCodes[index]};
- this.onKeyUp(event);
- });
- elem.on(cc.Node.EventType.TOUCH_CANCEL,()=>{
- let event:any = {keyCode:keyCodes[index]};
- this.onKeyUp(event);
- });
- })
- if(cc.sys.isBrowser){
- cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
- cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
- }
- window.jsfunction = function(data){
- console.log("data",data);
- //F:0:左 1:右 2:起跳 3:降落 -1: 无状态 T 0--无时间 -1:超时
- // H 0:左手 1:右手
- if(data.F=="3"){
- window.playerRole.up = true;
- }else if(data.F=="2"||data.F=="-1"){
- window.playerRole.up = false;
- }
- if(data.H=="0"){
- window.playerRole.left = true;
- }else if(data.H=="1"){
- window.playerRole.right = true;
- }
- }
- }
- onDestroy(){
- if(cc.sys.isBrowser){
- cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
- cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
- }
- }
- onKeyDown(event:cc.Event.EventKeyboard){
- switch(event.keyCode){
- case cc.macro.KEY.a:
- window.playerRole.left = true;
- break;
- case cc.macro.KEY.d:
- window.playerRole.right = true;
- break;
- case cc.macro.KEY.w:
- window.playerRole.up = true;
- break;
- }
- }
- onKeyUp(event:cc.Event.EventKeyboard){
- switch(event.keyCode) {
- case cc.macro.KEY.a:
- window.playerRole.left = false;
- break;
- case cc.macro.KEY.d:
- window.playerRole.right = false;
- break;
- case cc.macro.KEY.w:
- window.playerRole.up = false;
- break;
- }
- }
- }
|