KeyBoard.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. const {ccclass, property} = cc._decorator;
  2. @ccclass
  3. export default class KeyBoard extends cc.Component {
  4. onLoad(){
  5. let buttons = [this.node.getChildByName('Left'),this.node.getChildByName('Right'),this.node.getChildByName('Jump')];
  6. let keyCodes = [cc.macro.KEY.a,cc.macro.KEY.d,cc.macro.KEY.w];
  7. buttons.forEach((elem:cc.Node,index:number)=>{
  8. elem.on(cc.Node.EventType.TOUCH_START,()=>{
  9. let event:any = {keyCode:keyCodes[index]};
  10. this.onKeyDown(event);
  11. });
  12. elem.on(cc.Node.EventType.TOUCH_END,()=>{
  13. let event:any = {keyCode:keyCodes[index]};
  14. this.onKeyUp(event);
  15. });
  16. elem.on(cc.Node.EventType.TOUCH_CANCEL,()=>{
  17. let event:any = {keyCode:keyCodes[index]};
  18. this.onKeyUp(event);
  19. });
  20. })
  21. if(cc.sys.isBrowser){
  22. cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
  23. cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
  24. }
  25. window.jsfunction = function(data){
  26. console.log("data",data);
  27. //F:0:左 1:右 2:起跳 3:降落 -1: 无状态 T 0--无时间 -1:超时
  28. // H 0:左手 1:右手
  29. if(data.F=="3"){
  30. window.playerRole.up = true;
  31. }else if(data.F=="2"||data.F=="-1"){
  32. window.playerRole.up = false;
  33. }
  34. if(data.H=="0"){
  35. window.playerRole.left = true;
  36. }else if(data.H=="1"){
  37. window.playerRole.right = true;
  38. }
  39. }
  40. }
  41. onDestroy(){
  42. if(cc.sys.isBrowser){
  43. cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
  44. cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
  45. }
  46. }
  47. onKeyDown(event:cc.Event.EventKeyboard){
  48. switch(event.keyCode){
  49. case cc.macro.KEY.a:
  50. window.playerRole.left = true;
  51. break;
  52. case cc.macro.KEY.d:
  53. window.playerRole.right = true;
  54. break;
  55. case cc.macro.KEY.w:
  56. window.playerRole.up = true;
  57. break;
  58. }
  59. }
  60. onKeyUp(event:cc.Event.EventKeyboard){
  61. switch(event.keyCode) {
  62. case cc.macro.KEY.a:
  63. window.playerRole.left = false;
  64. break;
  65. case cc.macro.KEY.d:
  66. window.playerRole.right = false;
  67. break;
  68. case cc.macro.KEY.w:
  69. window.playerRole.up = false;
  70. break;
  71. }
  72. }
  73. }