zhaochengyang 5 سال پیش
والد
کامیت
d5f20a619b
88فایلهای تغییر یافته به همراه1288 افزوده شده و 185 حذف شده
  1. 8 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/03ddfa18e87ddddfb15ec5026128578b9796b42a
  2. 5 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee
  3. 10 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/1d0c46285050aedf8f4046200ee7b52a04f9db8e
  4. 9 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07
  5. 5 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/88b04293695c597ef97104e2d5e3760c449eda27
  6. 5 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672
  7. 8 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051
  8. 9 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/ac4017e6ad488740cc95351d7b5b0ec2d8516b20
  9. 9 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/c0b98097ff2b69048b480462fbc90a6a16028615
  10. 5 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/ccf72d385450c92465dc25fe6e41b7c6cf3ac333
  11. 5 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab
  12. 0 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/3f558ce48612bafba502ff3b8557baab212909b4
  13. 0 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930
  14. 0 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a
  15. 0 0
      .rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/abf97459aa245246e1b0f736531c953e9189c23e
  16. 8 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/03ddfa18e87ddddfb15ec5026128578b9796b42a
  17. 5 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee
  18. 10 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/1d0c46285050aedf8f4046200ee7b52a04f9db8e
  19. 5 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/60f9f2093b63f8329535f1f5b40ffaa3b1dd75a3
  20. 9 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07
  21. 5 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/88b04293695c597ef97104e2d5e3760c449eda27
  22. 5 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672
  23. 8 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051
  24. 9 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/912327f1a4b2302bb4541c1c435a3423a14a2c91
  25. 9 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/c0b98097ff2b69048b480462fbc90a6a16028615
  26. 5 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab
  27. 0 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/3f558ce48612bafba502ff3b8557baab212909b4
  28. 0 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930
  29. 0 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a
  30. 0 0
      .rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/abf97459aa245246e1b0f736531c953e9189c23e
  31. 5 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee
  32. 9 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/27bdf9f392aeea33763fc7c0466a44a51ce66d7f
  33. 9 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/2c87bb0d896145d839e70e90a02543e75d850647
  34. 8 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/48fbb9ab42ccc91f47f15c159c1ea3094f921460
  35. 5 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/60f9f2093b63f8329535f1f5b40ffaa3b1dd75a3
  36. 5 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/6194ea556ffffda65ca180c6f9ca51042611ef7d
  37. 9 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07
  38. 5 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/88b04293695c597ef97104e2d5e3760c449eda27
  39. 5 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672
  40. 11 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/8f9e06b1101d5ceebc4361e64219f591c8b410e2
  41. 8 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051
  42. 9 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/94123e2d61edfe9ae3ed00fd2ef6b18c7e30b019
  43. 8 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/a73a469893619c461f64dece396a69caf072cea8
  44. 5 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab
  45. 9 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/fe7a6bcf4b3ed9070cffa1b1d974a2f1570bdec4
  46. 0 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/3f558ce48612bafba502ff3b8557baab212909b4
  47. 0 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930
  48. 0 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a
  49. 0 0
      .rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/abf97459aa245246e1b0f736531c953e9189c23e
  50. 5 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee
  51. 10 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/1d0c46285050aedf8f4046200ee7b52a04f9db8e
  52. 9 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07
  53. 5 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/88b04293695c597ef97104e2d5e3760c449eda27
  54. 5 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672
  55. 8 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051
  56. 9 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/912327f1a4b2302bb4541c1c435a3423a14a2c91
  57. 9 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/c0b98097ff2b69048b480462fbc90a6a16028615
  58. 8 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/c77f49f8db0a193c86dc00083b7c8d1e534bf269
  59. 5 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab
  60. 5 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/ddbd08d44146485ad21ff500eaa8a71b56e7a109
  61. 0 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/3f558ce48612bafba502ff3b8557baab212909b4
  62. 0 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930
  63. 0 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a
  64. 0 0
      .rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/abf97459aa245246e1b0f736531c953e9189c23e
  65. 3 3
      bin/Game/res/MainScene/LayaScene_Mainscene/Conventional/Mainscene.ls
  66. 104 0
      bin/Game/res/Prop/LayaScene_Prop/Conventional/Archer.lh
  67. BIN
      bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Cube-Cube_0.lm
  68. BIN
      bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Cube-Cube_1.lm
  69. 58 0
      bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Materials/Cube_0Mat.lmat
  70. 58 0
      bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Materials/Cube_1Mat.lmat
  71. BIN
      bin/Game/res/Role/LayaScene_Role/Conventional/Assets/ArcherAsset/Animator/Horse/Horse-Horse_Eating.lani
  72. BIN
      bin/Game/res/Role/LayaScene_Role/Conventional/Assets/ArcherAsset/Animator/Horse/Horse-Horse_Idle.lani
  73. 2 2
      bin/Game/res/Role/LayaScene_Role/Conventional/enemy.lh
  74. 3 3
      bin/Game/res/Role/LayaScene_Role/Conventional/player.lh
  75. 283 27
      bin/js/bundle.js
  76. 1 1
      bin/js/bundle.js.map
  77. 4 4
      laya/.laya
  78. 27 0
      laya/pages/InGameView.scene
  79. 40 0
      laya/pages/MainGameView.scene
  80. 6 3
      src/Game/GameManager.ts
  81. 24 135
      src/Game/PlayerControl.ts
  82. 145 6
      src/Game/Runner.ts
  83. 1 1
      src/GameConfig.ts
  84. 4 0
      src/Tools/AssetManager.ts
  85. 24 0
      src/View/InGameView.ts
  86. 33 0
      src/View/MainGameView.ts
  87. 98 0
      src/View/ViewManager.ts
  88. 26 0
      src/ui/layaMaxUI.ts

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/03ddfa18e87ddddfb15ec5026128578b9796b42a


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 10 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/1d0c46285050aedf8f4046200ee7b52a04f9db8e


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/88b04293695c597ef97104e2d5e3760c449eda27


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/ac4017e6ad488740cc95351d7b5b0ec2d8516b20


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/c0b98097ff2b69048b480462fbc90a6a16028615


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/ccf72d385450c92465dc25fe6e41b7c6cf3ac333


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab


+ 0 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/3f558ce48612bafba502ff3b8557baab212909b4


+ 0 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930


+ 0 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a


+ 0 - 0
.rpt2_cache/rpt2_19cfe06d6e9f54e1c41bd34628a80d5709fe6697/types/cache/abf97459aa245246e1b0f736531c953e9189c23e


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/03ddfa18e87ddddfb15ec5026128578b9796b42a


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 10 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/1d0c46285050aedf8f4046200ee7b52a04f9db8e


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/60f9f2093b63f8329535f1f5b40ffaa3b1dd75a3


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/88b04293695c597ef97104e2d5e3760c449eda27


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/912327f1a4b2302bb4541c1c435a3423a14a2c91


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/c0b98097ff2b69048b480462fbc90a6a16028615


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab


+ 0 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/3f558ce48612bafba502ff3b8557baab212909b4


+ 0 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930


+ 0 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a


+ 0 - 0
.rpt2_cache/rpt2_2207be14d7dbbbdfd99edfb700a7fbf915233e9d/types/cache/abf97459aa245246e1b0f736531c953e9189c23e


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/27bdf9f392aeea33763fc7c0466a44a51ce66d7f


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/2c87bb0d896145d839e70e90a02543e75d850647


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/48fbb9ab42ccc91f47f15c159c1ea3094f921460


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/60f9f2093b63f8329535f1f5b40ffaa3b1dd75a3


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/6194ea556ffffda65ca180c6f9ca51042611ef7d


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/88b04293695c597ef97104e2d5e3760c449eda27


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 11 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/8f9e06b1101d5ceebc4361e64219f591c8b410e2


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/94123e2d61edfe9ae3ed00fd2ef6b18c7e30b019


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/a73a469893619c461f64dece396a69caf072cea8


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/code/cache/fe7a6bcf4b3ed9070cffa1b1d974a2f1570bdec4


+ 0 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/3f558ce48612bafba502ff3b8557baab212909b4


+ 0 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930


+ 0 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a


+ 0 - 0
.rpt2_cache/rpt2_817333419d54cf6abb96f886dff7a88eb3cc0b8d/types/cache/abf97459aa245246e1b0f736531c953e9189c23e


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/14e6f8f185dd82e1c8efa76c062754a2a6f8e3ee


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 10 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/1d0c46285050aedf8f4046200ee7b52a04f9db8e


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/80ed0f7069a48ab13c561149878669bcdcc06e07


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/88b04293695c597ef97104e2d5e3760c449eda27


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/89a5842a4a051668bca138abc012f6a7b2ede672


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/902a62d02f5949efbb4fde76de4c2dd1a7215051


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/912327f1a4b2302bb4541c1c435a3423a14a2c91


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 9 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/c0b98097ff2b69048b480462fbc90a6a16028615


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 8 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/c77f49f8db0a193c86dc00083b7c8d1e534bf269


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/d2b0e0a988e056422722bc84f2355c19861874ab


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/code/cache/ddbd08d44146485ad21ff500eaa8a71b56e7a109


+ 0 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/3f558ce48612bafba502ff3b8557baab212909b4


+ 0 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/6cf4bb4444db2bbf6964b0e8539c4b587c026930


+ 0 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/9685fff06fb7cd5e8ed016ad72117a11b1d2770a


+ 0 - 0
.rpt2_cache/rpt2_f8e301494305e8b1776efbec32e227486ad6e94a/types/cache/abf97459aa245246e1b0f736531c953e9189c23e


+ 3 - 3
bin/Game/res/MainScene/LayaScene_Mainscene/Conventional/Mainscene.ls

@@ -149,9 +149,9 @@
 								-1
 							],
 							"scale":[
-								15,
-								15,
-								15
+								30,
+								30,
+								30
 							],
 							"meshPath":"Assets/ArcherAsset/Mesh/Plane-Plane_0.lm",
 							"enableRender":true,

+ 104 - 0
bin/Game/res/Prop/LayaScene_Prop/Conventional/Archer.lh

@@ -0,0 +1,104 @@
+{
+	"version":"LAYAHIERARCHY:02",
+	"data":{
+		"type":"Sprite3D",
+		"instanceID":0,
+		"props":{
+			"name":"Archer",
+			"active":true,
+			"isStatic":false,
+			"layer":0,
+			"position":[
+				6.071703,
+				0.987067,
+				-3.724262
+			],
+			"rotation":[
+				0,
+				0,
+				0,
+				-1
+			],
+			"scale":[
+				20,
+				20,
+				20
+			]
+		},
+		"components":[],
+		"child":[
+			{
+				"type":"MeshSprite3D",
+				"instanceID":1,
+				"props":{
+					"name":"Cube_0",
+					"active":true,
+					"isStatic":false,
+					"layer":0,
+					"position":[
+						0,
+						0,
+						0
+					],
+					"rotation":[
+						0,
+						0,
+						0,
+						-1
+					],
+					"scale":[
+						1,
+						1,
+						1
+					],
+					"meshPath":"Assets/ArcherAsset/Mesh/Cube-Cube_0.lm",
+					"enableRender":true,
+					"materials":[
+						{
+							"type":"Laya.BlinnPhongMaterial",
+							"path":"Assets/ArcherAsset/Mesh/Materials/Cube_0Mat.lmat"
+						}
+					]
+				},
+				"components":[],
+				"child":[]
+			},
+			{
+				"type":"MeshSprite3D",
+				"instanceID":2,
+				"props":{
+					"name":"Cube_1",
+					"active":true,
+					"isStatic":false,
+					"layer":0,
+					"position":[
+						0,
+						0,
+						0
+					],
+					"rotation":[
+						0,
+						0,
+						0,
+						-1
+					],
+					"scale":[
+						1,
+						1,
+						1
+					],
+					"meshPath":"Assets/ArcherAsset/Mesh/Cube-Cube_1.lm",
+					"enableRender":true,
+					"materials":[
+						{
+							"type":"Laya.BlinnPhongMaterial",
+							"path":"Assets/ArcherAsset/Mesh/Materials/Cube_1Mat.lmat"
+						}
+					]
+				},
+				"components":[],
+				"child":[]
+			}
+		]
+	}
+}

BIN
bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Cube-Cube_0.lm


BIN
bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Cube-Cube_1.lm


+ 58 - 0
bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Materials/Cube_0Mat.lmat

@@ -0,0 +1,58 @@
+{
+	"version":"LAYAMATERIAL:02",
+	"props":{
+		"type":"Laya.BlinnPhongMaterial",
+		"name":"Cube_0Mat",
+		"renderStates":[
+			{
+				"cull":2,
+				"blend":0,
+				"srcBlend":1,
+				"dstBlend":0,
+				"depthWrite":true,
+				"depthTest":515
+			}
+		],
+		"alphaTest":false,
+		"alphaTestValue":0.5,
+		"renderQueue":2000,
+		"metallic":0,
+		"smoothness":0.5,
+		"smoothnessTextureScale":1,
+		"smoothnessSource":0,
+		"normalTextureScale":1,
+		"parallaxTextureScale":0.02,
+		"occlusionTextureStrength":1,
+		"textures":[],
+		"vectors":[
+			{
+				"name":"tilingOffset",
+				"value":[
+					1,
+					1,
+					0,
+					0
+				]
+			},
+			{
+				"name":"albedoColor",
+				"value":[
+					0.8,
+					0.8,
+					0.8,
+					1
+				]
+			},
+			{
+				"name":"emissionColor",
+				"value":[
+					0,
+					0,
+					0,
+					1
+				]
+			}
+		],
+		"defines":[]
+	}
+}

+ 58 - 0
bin/Game/res/Prop/LayaScene_Prop/Conventional/Assets/ArcherAsset/Mesh/Materials/Cube_1Mat.lmat

@@ -0,0 +1,58 @@
+{
+	"version":"LAYAMATERIAL:02",
+	"props":{
+		"type":"Laya.BlinnPhongMaterial",
+		"name":"Cube_1Mat",
+		"renderStates":[
+			{
+				"cull":2,
+				"blend":0,
+				"srcBlend":1,
+				"dstBlend":0,
+				"depthWrite":true,
+				"depthTest":515
+			}
+		],
+		"alphaTest":false,
+		"alphaTestValue":0.5,
+		"renderQueue":2000,
+		"metallic":0,
+		"smoothness":0.5,
+		"smoothnessTextureScale":1,
+		"smoothnessSource":0,
+		"normalTextureScale":1,
+		"parallaxTextureScale":0.02,
+		"occlusionTextureStrength":1,
+		"textures":[],
+		"vectors":[
+			{
+				"name":"tilingOffset",
+				"value":[
+					1,
+					1,
+					0,
+					0
+				]
+			},
+			{
+				"name":"albedoColor",
+				"value":[
+					0.8,
+					0.8,
+					0.8,
+					1
+				]
+			},
+			{
+				"name":"emissionColor",
+				"value":[
+					0,
+					0,
+					0,
+					1
+				]
+			}
+		],
+		"defines":[]
+	}
+}

BIN
bin/Game/res/Role/LayaScene_Role/Conventional/Assets/ArcherAsset/Animator/Horse/Horse-Horse_Eating.lani


BIN
bin/Game/res/Role/LayaScene_Role/Conventional/Assets/ArcherAsset/Animator/Horse/Horse-Horse_Idle.lani


+ 2 - 2
bin/Game/res/Role/LayaScene_Role/Conventional/enemy.lh

@@ -9,8 +9,8 @@
 			"isStatic":false,
 			"layer":0,
 			"position":[
-				-0.09,
-				0.94,
+				0,
+				0,
 				0
 			],
 			"rotation":[

+ 3 - 3
bin/Game/res/Role/LayaScene_Role/Conventional/player.lh

@@ -9,9 +9,9 @@
 			"isStatic":false,
 			"layer":0,
 			"position":[
-				0.21,
-				-0.05,
-				-0.01
+				0,
+				0,
+				0
 			],
 			"rotation":[
 				0,

+ 283 - 27
bin/js/bundle.js

@@ -13,7 +13,7 @@
     GameConfig.screenMode = "none";
     GameConfig.alignV = "top";
     GameConfig.alignH = "left";
-    GameConfig.startScene = "";
+    GameConfig.startScene = "MainGameView.scene";
     GameConfig.sceneRoot = "";
     GameConfig.debug = false;
     GameConfig.stat = false;
@@ -324,6 +324,9 @@
     ResourcesPath.Enemy = [
         "Game/res/Role/LayaScene_Role/Conventional/enemy.lh"
     ];
+    ResourcesPath.Prop = [
+        "Game/res/Prop/LayaScene_Prop/Conventional/Archer"
+    ];
 
     var Sprite3D = Laya.Sprite3D;
     var Vector3 = Laya.Vector3;
@@ -418,13 +421,28 @@
     }
 
     var Vector3$1 = Laya.Vector3;
+    var CharacterState;
+    (function (CharacterState) {
+        CharacterState[CharacterState["Run"] = 0] = "Run";
+        CharacterState[CharacterState["Idle"] = 1] = "Idle";
+        CharacterState[CharacterState["Die"] = 2] = "Die";
+        CharacterState[CharacterState["Win"] = 3] = "Win";
+        CharacterState[CharacterState["Shoot"] = 4] = "Shoot";
+    })(CharacterState || (CharacterState = {}));
     class Runner extends Laya.Script3D {
         constructor() {
             super();
+            this.canmove = false;
+            this._speed = 1;
+            this._press = false;
+            this.DownHit = new Laya.HitResult();
+            this.FowardHit = new Laya.HitResult();
+            this.curspeed = 0;
             this.currotV = new Vector3$1();
             this.currot = new Laya.Quaternion;
             this.NormalizeSpeed = new Vector3$1();
-            this.turndir = new Vector3$1(1, 0, 0);
+            this.curpos = new Vector3$1();
+            this.offest = new Vector3$1();
         }
         static get Instance() {
             if (Runner.ins) {
@@ -436,14 +454,27 @@
         }
         onAwake() {
             this.m_player = this.owner;
+            this.m_animator = this.owner.getComponent(Laya.Animator);
+            this.m_horseanimator = this.owner.getChildAt(1).getComponent(Laya.Animator);
+            this.ChangeState(CharacterState.Idle);
+            EventManager.StageOn(StageState.Start, this, this.Begin);
+        }
+        Begin() {
+            this.canmove = true;
+            this.ChangeState(CharacterState.Run);
         }
         onUpdate() {
+            if (this.canmove) {
+                if (this._press) {
+                    this._speed = 2;
+                }
+                this.Move(new Vector3$1(0, 0, 1), this._speed);
+            }
+            this.RayCheck();
         }
         MoveX(_speed) {
             _speed *= 0.07;
             this.m_player.transform.translate(new Vector3$1(_speed, 0, 0));
-            this.m_player.transform.position = this.m_player.transform.position.x < -4.5 ? new Vector3$1(-4.5, this.m_player.transform.position.y, this.m_player.transform.position.z) : this.m_player.transform.position;
-            this.m_player.transform.position = this.m_player.transform.position.x > 4.5 ? new Vector3$1(4.5, this.m_player.transform.position.y, this.m_player.transform.position.z) : this.m_player.transform.position;
         }
         TurnDir(_dir) {
             if (_dir.x != 0) {
@@ -460,6 +491,90 @@
                 this.m_player.transform.rotation = this.currot;
             }
         }
+        Move(_dir, _speed) {
+            var sp = GameTools.Instance.lerp(this.curspeed, _speed, 0.1);
+            this.curspeed = sp;
+            Vector3$1.scale(_dir, this.curspeed, this.offest);
+            Vector3$1.add(this.m_player.transform.position, this.offest, this.curpos);
+            Vector3$1.lerp(this.m_player.transform.position, this.curpos, 0.15, this.curpos);
+            this.curpos = new Vector3$1(this.curpos.x, this.curpos.y, this.curpos.z);
+            this.m_player.transform.position = this.curpos;
+        }
+        ChangeState(_state) {
+            if (this.m_characterstate == _state)
+                return;
+            this.m_characterstate = _state;
+            switch (this.m_characterstate) {
+                case CharacterState.Idle:
+                    this.Idle();
+                    break;
+                case CharacterState.Run:
+                    this.Run();
+                    break;
+                case CharacterState.Die:
+                    this.Die();
+                    break;
+                case CharacterState.Win:
+                    this.Win();
+                    break;
+                case CharacterState.Shoot:
+                    this.Shoot();
+                    break;
+            }
+        }
+        Idle() {
+            this.m_animator.play("Idle");
+            this.m_horseanimator.play("Horse_Idle");
+        }
+        Run() {
+            this.m_animator.play("Idle");
+            this.m_horseanimator.play("Horse_Run");
+        }
+        Die() {
+        }
+        Win() {
+        }
+        Shoot() {
+            this.m_animator.play("aimshoot");
+            this.m_animator.play("Horse_Run");
+        }
+        RayCheck() {
+            if (this.DownRayCheck) ;
+            if (this.FowardRayCheck) {
+                this.CrashBarrier();
+            }
+        }
+        CrashBarrier() {
+            var target = this.FowardHit.collider.owner;
+            if (target.name == "") ;
+            else if (target.name == "") ;
+            else if (target.name == "") ;
+            else if (target.name == "") ;
+        }
+        get DownRayCheck() {
+            var isDownHit = false;
+            var startPos = new Vector3$1(this.m_player.transform.position.x, this.m_player.transform.position.y + 1.5, this.m_player.transform.position.z + 0.5);
+            var direction = new Vector3$1(0, -1, 0);
+            var DownRay = new Laya.Ray(startPos, direction);
+            if (AssetManager.Instance.mainscene.physicsSimulation.rayCast(DownRay, this.DownHit, 100)) {
+                if (this.DownHit.collider.collisionGroup == 100) {
+                    isDownHit = true;
+                }
+            }
+            return isDownHit;
+        }
+        get FowardRayCheck() {
+            var isFowardHit = false;
+            var startPos = new Vector3$1(this.m_player.transform.position.x, this.m_player.transform.position.y + 1.5, this.m_player.transform.position.z + 0.5);
+            var direction = new Vector3$1(0, 0, 1);
+            var DownRay = new Laya.Ray(startPos, direction);
+            if (AssetManager.Instance.mainscene.physicsSimulation.rayCast(DownRay, this.FowardHit, 1)) {
+                if (this.FowardHit.collider.collisionGroup == 100) {
+                    isFowardHit = true;
+                }
+            }
+            return isFowardHit;
+        }
     }
 
     var Vector2 = Laya.Vector2;
@@ -477,9 +592,6 @@
             this.lllpos = new Vector3$2();
             this.hights = 0;
             this.wights = 0;
-            this.rolepos = new Vector3$2;
-            this.rundir = new Vector3$2;
-            this.curspeed = 0;
             PlayerControl.ins = this;
         }
         static get Instance() {
@@ -495,17 +607,19 @@
             this._runner = this.Player.addComponent(Runner);
             this.Player.transform.position = new Vector3$2();
             this.Camera = AssetManager.Instance.maincamera;
-            this.Camera.transform.position = new Vector3$2(0, 10, -10);
+            this.Camera.transform.position = new Vector3$2(0, 10, -15);
             this.Camera.transform.localRotationEuler = new Vector3$2(-5, 0, 0);
             Laya.stage.on(Laya.Event.MOUSE_DOWN, this, this.onMouseDown);
-            Laya.timer.frameLoop(1, this, this.LateUpdate);
             this.CameraFollow();
         }
-        MouseListen() {
-        }
         onMouseDown(e) {
+            if (!this._runner.canmove)
+                return;
+            this._runner._press = true;
+            this.mouseDownTime = Laya.Browser.now();
             this.startMousePos = new Vector3$2(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
             var startpoint = new Laya.Vector2(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
+            this.curMousePos = this.startMousePos.clone();
             this.curMousePos1 = startpoint.clone();
             Laya.timer.frameLoop(1, this, this.onMouseMove);
             Laya.stage.on(Laya.Event.MOUSE_UP, this, this.onMouseUp);
@@ -514,8 +628,6 @@
         onMouseMove() {
             var MousePos = new Laya.Vector2(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
             var offestX = MousePos.x - this.curMousePos1.x;
-            offestX = offestX > 100 ? 100 : offestX;
-            offestX = offestX < -100 ? -100 : offestX;
             this.offestx = GameTools.Instance.lerp(this.offestx, offestX, 0.015);
             this._runner.MoveX(-this.offestx);
             var dir = new Vector3$2(-offestX * 0.005, 0, 0);
@@ -525,6 +637,20 @@
         onMouseUp() {
             this.offestx = 0;
             Laya.timer.clear(this, this.onMouseMove);
+            this._runner._press = false;
+            if (!this.startMousePos)
+                return;
+            Laya.stage.off(Laya.Event.MOUSE_MOVE, this, this.onMouseMove);
+            Laya.stage.off(Laya.Event.MOUSE_UP, this, this.onMouseUp);
+            Laya.stage.off(Laya.Event.MOUSE_OUT, this, this.onMouseUp);
+            let now = Laya.Browser.now();
+            let interval = now - this.mouseDownTime;
+            this.endMousePos = new Vector3$2(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
+            let dist = Laya.Vector3.distance(this.endMousePos, this.startMousePos);
+            if (dist < 50 && interval < 200) {
+                console.log("shoot--");
+            }
+            this.mouseDownTime = now;
         }
         CameraFollow() {
             this.hights = 0;
@@ -560,22 +686,151 @@
             }
             return isDownHit;
         }
-        Move() {
-            if (this.canmove) {
-                this.speed = this.press ? 1 : 0.5;
-                this.curspeed = GameTools.Instance.lerp(this.curspeed, this.speed, 0.04);
-                Vector3$2.scale(new Vector3$2(0, 0, 1), this.curspeed, this.rundir);
-                Vector3$2.add(this.Player.transform.position, this.rundir, this.rolepos);
-                Vector3$2.lerp(this.Player.transform.position, this.rolepos, 0.15, this.rolepos);
-                this.Player.transform.position = this.rolepos;
+    }
+
+    var REG = Laya.ClassUtils.regClass;
+    var ui;
+    (function (ui) {
+        class InGameViewUI extends Laya.Scene {
+            constructor() { super(); }
+            createChildren() {
+                super.createChildren();
+                this.createView(InGameViewUI.uiView);
+            }
+        }
+        InGameViewUI.uiView = { "type": "Scene", "props": { "width": 720, "height": 1280 }, "compId": 2, "loadList": [], "loadList3D": [] };
+        ui.InGameViewUI = InGameViewUI;
+        REG("ui.InGameViewUI", InGameViewUI);
+        class MainGameViewUI extends Laya.Scene {
+            constructor() { super(); }
+            createChildren() {
+                super.createChildren();
+                this.createView(MainGameViewUI.uiView);
+            }
+        }
+        MainGameViewUI.uiView = { "type": "Scene", "props": { "width": 720, "height": 1280 }, "compId": 2, "child": [{ "type": "Button", "props": { "y": 897, "x": 360, "width": 100, "var": "StartBtn", "stateNum": 1, "skin": "comp/button.png", "pivotY": 50, "pivotX": 50, "label": "label", "height": 100 }, "compId": 4 }], "loadList": ["comp/button.png"], "loadList3D": [] };
+        ui.MainGameViewUI = MainGameViewUI;
+        REG("ui.MainGameViewUI", MainGameViewUI);
+    })(ui || (ui = {}));
+
+    class MainGameView extends ui.MainGameViewUI {
+        constructor() {
+            super();
+            MainGameView.ins = this;
+        }
+        static get Instance() {
+            if (MainGameView.ins) {
+                return MainGameView.ins;
+            }
+            else {
+                return new MainGameView();
             }
         }
-        RayCheck() {
-            if (this.DownRayCheck) {
-                this.Player.transform.position = new Laya.Vector3(this.Player.transform.position.x, this.DownHit.point.y, this.Player.transform.position.z);
+        Show() {
+            this.StartBtn.clickHandler = Laya.Handler.create(this, this.ClickStart);
+        }
+        Close() {
+        }
+        ClickStart() {
+            EventManager.StageTrigger(StageState.Start);
+            ViewManager.Instance.ShowView(ViewType.IngameView);
+        }
+    }
+
+    class InGameView extends ui.InGameViewUI {
+        constructor() {
+            super();
+            InGameView.ins = this;
+        }
+        static get Instance() {
+            if (InGameView.ins) {
+                return InGameView.ins;
+            }
+            else {
+                return new InGameView();
+            }
+        }
+        Show() {
+        }
+        Close() {
+        }
+    }
+
+    var ViewType;
+    (function (ViewType) {
+        ViewType[ViewType["MainView"] = 0] = "MainView";
+        ViewType[ViewType["IngameView"] = 1] = "IngameView";
+    })(ViewType || (ViewType = {}));
+    class ViewManager {
+        constructor() {
+            this.showexportview = 0;
+            this.popViewDic = [];
+            this.ViewSprite = new Laya.Sprite();
+            this.OtherViewSprite = new Laya.Sprite();
+            ViewManager.ins = this;
+            Laya.stage.addChild(this.ViewSprite);
+            Laya.stage.addChild(this.OtherViewSprite);
+        }
+        static get Instance() {
+            if (ViewManager.ins) {
+                return ViewManager.ins;
+            }
+            else {
+                return new ViewManager();
+            }
+        }
+        ShowView(_viewtype, data = null) {
+            if (this.curView != null) {
+                this.curView.Close();
+                this.curView.destroy();
+                this.curView.removeSelf();
+            }
+            this.curView = this.CreateView(_viewtype);
+            this.curView.name = ViewType[_viewtype];
+            this.ViewSprite.addChild(this.curView);
+            this.curView.Show(data);
+        }
+        CloseView() {
+            if (this.curView != null) {
+                this.curView.Close();
+                this.curView.destroy();
+                this.curView.removeSelf();
             }
         }
-        LateUpdate() {
+        OpenPopView(viewType, data = null) {
+            var popView;
+            if (this.popViewDic[viewType]) {
+                popView = this.popViewDic[viewType];
+                this.OtherViewSprite.setChildIndex(popView, this.OtherViewSprite.numChildren - 1);
+                popView.visible = true;
+            }
+            else {
+                popView = this.CreateView(viewType);
+                this.OtherViewSprite.addChild(popView);
+                this.popViewDic[viewType] = popView;
+            }
+            this.showexportview = 1;
+            popView.OnOpen(data);
+        }
+        ClosePopView(viewType) {
+            var popView = this.popViewDic[viewType];
+            if (popView == null) {
+                return;
+            }
+            popView.OnHide();
+            popView.visible = false;
+            this.showexportview = 0;
+        }
+        ClearPopViews() {
+        }
+        CreateView(_viewtype) {
+            switch (_viewtype) {
+                case ViewType.MainView:
+                    return new MainGameView();
+                case ViewType.IngameView:
+                    return new InGameView();
+            }
+            return null;
         }
     }
 
@@ -597,6 +852,7 @@
             this.CreatCharacter();
             this.mainscene = AssetManager.Instance.mainscene;
             Laya.stage.addChildAt(this.mainscene, 0);
+            ViewManager.Instance.ShowView(ViewType.MainView);
         }
         CreatCharacter() {
             this.CreatPlayer();
@@ -614,6 +870,8 @@
         }
         CreatEnemy() {
         }
+        EventListen() {
+        }
     }
 
     class LoadView {
@@ -638,8 +896,6 @@
             EventManager.EventTrigger(EventState.LoadComplete);
         }
         LoadScene() {
-            let abc = 0.15 * 18;
-            console.log("abc---", abc);
             Laya.Scene3D.load(ResourcesPath.MainScene, Laya.Handler.create(this, (scene) => {
                 this.scene = scene;
                 AssetManager.Instance.mainscene = this.scene;

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
bin/js/bundle.js.map


+ 4 - 4
laya/.laya

@@ -1,6 +1,6 @@
 <project version="2.0">
-   <asynRes>img,temp,sound                                       </asynRes>
-   <unDealRes>embed                                       </unDealRes>
+   <asynRes>img,temp,sound                                          </asynRes>
+   <unDealRes>embed                                          </unDealRes>
    <resTypes>png,jpg   </resTypes>
    <resExportPath>bin/res/atlas   </resExportPath>
    <asynResExportPath>bin   </asynResExportPath>
@@ -8,14 +8,14 @@
    <codeImports><![CDATA[import laya.ui.*;]]>   </codeImports>
    <codeImportsJS><![CDATA[var View=laya.ui.View;
 var Dialog=laya.ui.Dialog;]]>   </codeImportsJS>
-   <uiType>3   </uiType>
+   <uiType>0   </uiType>
    <uiExportPath>bin/ui.json   </uiExportPath>
    <boxTypes>Sprite,Box,List,Tab,RadioGroup,ViewStack,Panel,HBox,VBox,Tree   </boxTypes>
    <pageTypes>Scene,View,Dialog   </pageTypes>
    <shareResPath/>
    <codeType>1   </codeType>
    <resCanCompress/>
-   <resPublishQuality>80                                       </resPublishQuality>
+   <resPublishQuality>80                                          </resPublishQuality>
    <langPath/>
    <defaultFont/>
    <codeImportsTS><![CDATA[import View=Laya.View;

+ 27 - 0
laya/pages/InGameView.scene

@@ -0,0 +1,27 @@
+{
+    "x":0,
+    "type":"Scene",
+    "selectedBox":2,
+    "selecteID":3,
+    "searchKey":"Scene",
+    "props":{"width":720,"sceneColor":"#000000","height":1280},
+    "nodeParent":-1,
+    "maxID":4,
+    "label":"Scene",
+    "isOpen":true,
+    "isDirectory":false,
+    "isAniNode":true,
+    "hasChild":false,
+    "compId":2,
+    "child":[
+        ],
+    "animations":[
+        {
+            "nodes":[
+                ],
+            "name":"ani1",
+            "id":1,
+            "frameRate":24,
+            "action":0
+        }]
+}

+ 40 - 0
laya/pages/MainGameView.scene

@@ -0,0 +1,40 @@
+{
+    "x":0,
+    "type":"Scene",
+    "selectedBox":2,
+    "selecteID":4,
+    "searchKey":"Scene",
+    "props":{"width":720,"sceneColor":"#000000","height":1280},
+    "nodeParent":-1,
+    "maxID":5,
+    "label":"Scene",
+    "isOpen":true,
+    "isDirectory":true,
+    "isAniNode":true,
+    "hasChild":true,
+    "compId":2,
+    "child":[
+        {
+            "x":15,
+            "type":"Button",
+            "searchKey":"Button,StartBtn",
+            "props":{"y":897,"x":360,"width":100,"var":"StartBtn","stateNum":"1","skin":"comp/button.png","pivotY":50,"pivotX":50,"label":"label","height":100},
+            "nodeParent":2,
+            "label":"StartBtn",
+            "isDirectory":false,
+            "isAniNode":true,
+            "hasChild":false,
+            "compId":4,
+            "child":[
+                ]
+        }],
+    "animations":[
+        {
+            "nodes":[
+                ],
+            "name":"ani1",
+            "id":1,
+            "frameRate":24,
+            "action":0
+        }]
+}

+ 6 - 3
src/Game/GameManager.ts

@@ -2,6 +2,7 @@ import { AssetManager } from "../Tools/AssetManager";
 import GamePool from "../Tools/GamePool";
 import { EventManager, EventState } from "../Tools/EventManager";
 import { PlayerControl } from "./PlayerControl";
+import { ViewManager, ViewType } from "../View/ViewManager";
 
 
 export class GameManager{
@@ -27,6 +28,7 @@ export class GameManager{
         this.CreatCharacter();
         this.mainscene = AssetManager.Instance.mainscene;
         Laya.stage.addChildAt(this.mainscene,0);
+        ViewManager.Instance.ShowView(ViewType.MainView);
     }
     CreatCharacter(){
         this.CreatPlayer();
@@ -35,8 +37,6 @@ export class GameManager{
     CreatPlayer(){
         var playermodel = GamePool.Instance.GetModel(AssetManager.Instance.Player.get(1),"");
         var horsemodel = GamePool.Instance.GetModel(AssetManager.Instance.Horse.get(1),"");
-        //playermodel.transform.localScale = new Laya.Vector3(1,1,1);
-        //this.mainscene.addChild(playermodel); 
         playermodel.addChild(horsemodel);
         playermodel.transform.position = new Laya.Vector3(0,0,0);
         horsemodel.transform.localScale = new  Laya.Vector3(1,1,1);
@@ -45,7 +45,10 @@ export class GameManager{
         AssetManager.Instance.mainscene.addChild(playermodel);
     }
     CreatEnemy(){
-        // var playermodel = GamePool.Instance.GetModel(AssetManager.Instance.Player.get(1),"");
+        
+    }
+    EventListen(){
+        
     }
 
 }

+ 24 - 135
src/Game/PlayerControl.ts

@@ -35,149 +35,63 @@ export class PlayerControl{
         this.Player.transform.position = new Vector3();
         
         this.Camera = AssetManager.Instance.maincamera;
-        this.Camera.transform.position = new Vector3(0,10,-10);
+        this.Camera.transform.position = new Vector3(0,10,-15);
         this.Camera.transform.localRotationEuler = new Vector3(-5,0,0);
         Laya.stage.on(Laya.Event.MOUSE_DOWN,this,this.onMouseDown);
-        // this.MouseListen();
-        Laya.timer.frameLoop(1,this,this.LateUpdate);
         this.CameraFollow();
     }
-    MouseListen(){
-        // Laya.stage.on(Laya.Event.MOUSE_DOWN,this,this.OnTouchEnter);
-        // Laya.stage.on(Laya.Event.MOUSE_UP,this,this.OnTouchOut);
-        // Laya.stage.on(Laya.Event.MOUSE_OUT,this,this.OnTouchOut);
-    }
-    // mousepos = new Vector2(0,0);
-    // offx = 0;
-    // curtouchsmoothness = 0.02;
-    // OnTouchEnter(){
-    //     // this.mousepos = new Vector2(Laya.MouseManager.instance.mouseX,Laya.MouseManager.instance.mouseY);
-    //     // Laya.timer.clear(this,this.OnTouchMove);
-    //     // Laya.timer.frameLoop(1,this,this.OnTouchMove);
-    //     //转向逻辑
-    //     this.mouseDownTime = Laya.Browser.now();
-    //     this.startMousePos = new Vector3(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
-    //     this.curMousePos = this.startMousePos.clone();
-    //     Laya.stage.on(Laya.Event.MOUSE_MOVE, this, this.OnTouchMove);
-    //     Laya.stage.on(Laya.Event.MOUSE_UP, this, this.OnTouchOut);
-    //     // 移出屏幕视作松开鼠标
-    //     Laya.stage.on(Laya.Event.MOUSE_OUT, this, this.OnTouchOut);
-    // }
-    // OnTouchOut(){
-    //     // Laya.timer.clear(this,this.OnTouchMove);
-
-    //     if (!this.startMousePos) return;
-    //     Laya.stage.off(Laya.Event.MOUSE_MOVE, this, this.OnTouchMove);
-    //     Laya.stage.off(Laya.Event.MOUSE_UP, this, this.OnTouchOut);
-    //     Laya.stage.off(Laya.Event.MOUSE_OUT, this, this.OnTouchOut);
-    //     let now = Laya.Browser.now();
-    //     let interval = now - this.mouseDownTime;
-    //     this.endMousePos = new Vector3(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
-    //     let dist = Laya.Vector3.distance(this.endMousePos, this.startMousePos);
-    //     // if (interval < GlobalConfig.Appsetting.Input.FireMinInterval) return;
-    //     if (dist < 50 && interval < 200) {
-    //         //射箭逻辑
-    //     }
-    //     this.mouseDownTime = now;
-    // }
-    // OnTouchMove(){
-    //     var MousePos = new Vector2(Laya.MouseManager.instance.mouseX,Laya.MouseManager.instance.mouseY);
-    //     var offestX = MousePos.x - this.mousepos.x;
-    //     // offestX = offestX > 100?100:offestX;
-    //     // offestX = offestX < -100?-100:offestX;
-    //     this.offx = GameTools.Instance.lerp(this.offx,offestX,this.curtouchsmoothness);
-        
-    //     var movespeed = this.offx*0.07; 
-    //     this.Player.transform.translate(new Vector3(-movespeed,0,0));
-    //     // this.Player.transform.position = this.Player.transform.position.x < -4.5?new Vector3(-4.5,this.Player.transform.position.y,this.Player.transform.position.z):this.Player.transform.position;
-    //     // this.Player.transform.position = this.Player.transform.position.x > 4.5?new Vector3(4.5,this.Player.transform.position.y,this.Player.transform.position.z):this.Player.transform.position;
-    //     var dir = new Vector3(-offestX*0.001,0,0);
-    //     this.mousepos = MousePos;
-
-    //     //转向逻辑
-    //     let tmpMousePos = new Vector3(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
-    //     Vector3.subtract(tmpMousePos, this.curMousePos,this.offset);
-    //     let OffsetX;
-    //     OffsetX = this.offset.x>20?20:this.offset.x;
-    //     OffsetX = this.offset.x<-20?-20:this.offset.x;
-    //     let rotation = new Vector3(0,-OffsetX*0.003,0);
-    //     this.Player.transform.rotate(rotation);
-    //     this.curMousePos = tmpMousePos;
-    // }
+    
     mouseDownTime:number;
     startMousePos:Vector3;
     endMousePos:Vector3;
     curMousePos:Vector3;
-
     curMousePos1:Vector2;
     offset:Vector3 = new Vector3(0,0,0);
+    offestx = 0;
+
     onMouseDown(e: Laya.Event) {
-        // this.press = true;
-        // this.mouseDownTime = Laya.Browser.now();
+        if(!this._runner.canmove)return;
+        this._runner._press = true;
+        this.mouseDownTime = Laya.Browser.now();
         this.startMousePos = new Vector3(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
         var startpoint = new Laya.Vector2(Laya.MouseManager.instance.mouseX,Laya.MouseManager.instance.mouseY);
-        // this.curMousePos = this.startMousePos.clone();
+        this.curMousePos = this.startMousePos.clone();
         this.curMousePos1 = startpoint.clone();
         Laya.timer.frameLoop(1,this,this.onMouseMove);
-        // Laya.stage.on(Laya.Event.MOUSE_MOVE, this, this.onMouseMove);
         Laya.stage.on(Laya.Event.MOUSE_UP, this, this.onMouseUp);
         // // //移出屏幕视作松开鼠标
         Laya.stage.on(Laya.Event.MOUSE_OUT, this, this.onMouseUp);
     }
 
-    offestx = 0;
     onMouseMove() {
-        // let tmpMousePos = new Vector3(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
-        // Vector3.subtract(tmpMousePos, this.curMousePos,this.offset);
-        // let OffsetX;
-        // OffsetX = this.offset.x>15?15:this.offset.x;
-        // OffsetX = this.offset.x<-15?-15:this.offset.x;
-        // let rotation = new Vector3(0,-OffsetX*0.004,0);
-        // this.Player.transform.rotate(rotation);
-        // this.curMousePos = tmpMousePos;
-
-
-
-
-
-
         var MousePos = new Laya.Vector2(Laya.MouseManager.instance.mouseX,Laya.MouseManager.instance.mouseY);
         var offestX = MousePos.x - this.curMousePos1.x;
-
-        offestX = offestX > 100?100:offestX;
-        offestX = offestX < -100?-100:offestX;
-        //EventManager.EventTrigger(EventType.Hover,Math.round(offestX));
-
         this.offestx = GameTools.Instance.lerp(this.offestx,offestX,0.015);
-
         this._runner.MoveX(-this.offestx);
-
         var dir = new Vector3(-offestX*0.005,0,0);
-
         this._runner.TurnDir(dir);
-
         this.curMousePos1 = new Vector2(MousePos.x,MousePos.y) ;
     }
 
     onMouseUp() {
         this.offestx = 0;
         Laya.timer.clear(this,this.onMouseMove);
-
-
-        // this.press = false;
-        // if (!this.startMousePos) return;
-        // Laya.stage.off(Laya.Event.MOUSE_MOVE, this, this.onMouseMove);
-        // Laya.stage.off(Laya.Event.MOUSE_UP, this, this.onMouseUp);
-        // Laya.stage.off(Laya.Event.MOUSE_OUT, this, this.onMouseUp);
-        // let now = Laya.Browser.now();
-        // let interval = now - this.mouseDownTime;
-        // this.endMousePos = new Vector3(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
-        // let dist = Laya.Vector3.distance(this.endMousePos, this.startMousePos);
+        this._runner._press = false;
+        if (!this.startMousePos) return;
+        Laya.stage.off(Laya.Event.MOUSE_MOVE, this, this.onMouseMove);
+        Laya.stage.off(Laya.Event.MOUSE_UP, this, this.onMouseUp);
+        Laya.stage.off(Laya.Event.MOUSE_OUT, this, this.onMouseUp);
+        let now = Laya.Browser.now();
+        let interval = now - this.mouseDownTime;
+        this.endMousePos = new Vector3(Laya.MouseManager.instance.mouseX, Laya.MouseManager.instance.mouseY);
+        let dist = Laya.Vector3.distance(this.endMousePos, this.startMousePos);
+        //两次射箭之间间隔时间
         // // if (interval < GlobalConfig.Appsetting.Input.FireMinInterval) return;
-        // if (dist < 50 && interval < 200) {
-        //     //射箭逻辑
-        // }
-        // this.mouseDownTime = now;
+        if (dist < 50 && interval < 200) {
+            //射箭逻辑
+            console.log("shoot--");
+        }
+        this.mouseDownTime = now;
     }
 
      /**相机跟随*/
@@ -211,7 +125,6 @@ export class PlayerControl{
          this.Camera.transform.rotation = qqqwe;
      }
 
-
      /**竖直方向射线检测*/
     get DownRayCheck():boolean{
         var isDownHit = false;
@@ -225,29 +138,5 @@ export class PlayerControl{
         }
         return isDownHit;
      }
-     rolepos = new Vector3;
-     rundir= new Vector3;
-     curspeed = 0;
-    Move(){
-        if (this.canmove) {
-            this.speed = this.press?1:0.5;
-            this.curspeed = GameTools.Instance.lerp(this.curspeed, this.speed, 0.04);
-            Vector3.scale(new Vector3(0, 0, 1), this.curspeed, this.rundir);
-            Vector3.add(this.Player.transform.position, this.rundir, this.rolepos);
-            Vector3.lerp(this.Player.transform.position, this.rolepos, 0.15, this.rolepos);
-            this.Player.transform.position = this.rolepos;
-        }
-    }
-    //射线检测
-    RayCheck(){
-        if(this.DownRayCheck){
-            this.Player.transform.position = new Laya.Vector3(this.Player.transform.position.x,this.DownHit.point.y,this.Player.transform.position.z);
-        }
-    }
-    LateUpdate(){
-        // this.Move();
-        // this.RayCheck();
-    }
-    
-    
+
 }

+ 145 - 6
src/Game/Runner.ts

@@ -1,8 +1,31 @@
 import Vector3 = Laya.Vector3;
 import Sprite3D = Laya.Sprite3D;
+import { GameTools } from "../Tools/GameTools";
+import { EventManager, EventState, StageState } from "../Tools/EventManager";
+import { AssetManager } from "../Tools/AssetManager";
+//人物状态
+export enum CharacterState{Run,Idle,Die,Win,Shoot}
 export class Runner extends Laya.Script3D{
     private static ins:Runner;
+    //玩家
     m_player:Sprite3D;
+    //玩家的动画控制器
+    m_animator:Laya.Animator;
+    //马的动画控制器
+    m_horseanimator:Laya.Animator;
+    //人物状态
+    m_characterstate:CharacterState;
+    public canmove:boolean = false;
+    //人物速度
+    private _speed:number = 1;
+    //是否处于按压状态
+    public _press:boolean = false;
+
+    //下方射线打到的物体
+    private DownHit:Laya.HitResult = new Laya.HitResult();
+    //前方射线打到的物体
+    private FowardHit:Laya.HitResult = new Laya.HitResult();
+
     constructor(){
         super();
     }
@@ -16,25 +39,41 @@ export class Runner extends Laya.Script3D{
     }
     onAwake(){
         this.m_player = this.owner as Sprite3D;
+        this.m_animator = this.owner.getComponent(Laya.Animator) as Laya.Animator;
+        this.m_horseanimator = this.owner.getChildAt(1).getComponent(Laya.Animator) as Laya.Animator;
+        this.ChangeState(CharacterState.Idle);
+
+        EventManager.StageOn(StageState.Start,this,this.Begin);
     }
+    Begin(){
+        this.canmove = true;
+        this.ChangeState(CharacterState.Run);
+    }
+    curspeed = 0;
     onUpdate(){
-
+        if(this.canmove){
+            if(this._press){
+                this._speed = 2;
+            }
+            this.Move(new Vector3(0,0,1),this._speed);
+        }
+        this.RayCheck();
     }
     MoveX(_speed:number){
         _speed*=0.07;
-
         //var dir = new Vector3(_speed,0,0);
         //Vector3.add(this.m_sprite.transform.position,dir,this.m_sprite.transform.position);
         this.m_player.transform.translate(new Vector3(_speed,0,0));
-
-        this.m_player.transform.position = this.m_player.transform.position.x < -4.5?new Vector3(-4.5,this.m_player.transform.position.y,this.m_player.transform.position.z):this.m_player.transform.position;
-        this.m_player.transform.position = this.m_player.transform.position.x > 4.5?new Vector3(4.5,this.m_player.transform.position.y,this.m_player.transform.position.z):this.m_player.transform.position;
+        // this.m_player.transform.position = this.m_player.transform.position.x < -4.5?new Vector3(-4.5,this.m_player.transform.position.y,this.m_player.transform.position.z):this.m_player.transform.position;
+        // this.m_player.transform.position = this.m_player.transform.position.x > 4.5?new Vector3(4.5,this.m_player.transform.position.y,this.m_player.transform.position.z):this.m_player.transform.position;
         //this.m_sprite.transform.position = this.curpos;
     }
     currotV = new Vector3();
     currot = new Laya.Quaternion;
     NormalizeSpeed:Vector3 = new Vector3();
-    turndir:Vector3 = new Vector3(1,0,0);
+    curpos:Vector3 = new Vector3();
+    offest:Vector3 = new Vector3();
+
     TurnDir(_dir:Vector3)
     {
         if(_dir.x != 0)
@@ -53,4 +92,104 @@ export class Runner extends Laya.Script3D{
             this.m_player.transform.rotation = this.currot;
         }
     }
+    Move(_dir:Vector3,_speed:number){
+        var sp = GameTools.Instance.lerp(this.curspeed,_speed,0.1);
+        this.curspeed = sp;
+        Vector3.scale(_dir,this.curspeed,this.offest);
+        Vector3.add(this.m_player.transform.position,this.offest,this.curpos);
+        Vector3.lerp(this.m_player.transform.position,this.curpos,0.15,this.curpos);
+        
+        this.curpos = new Vector3(this.curpos.x,this.curpos.y,this.curpos.z);
+        this.m_player.transform.position = this.curpos;
+    }
+    ChangeState(_state:CharacterState){
+        if(this.m_characterstate == _state)return
+        this.m_characterstate = _state;
+        switch (this.m_characterstate) {
+            case CharacterState.Idle:
+                this.Idle();
+                break;
+            case CharacterState.Run:
+                this.Run();
+                break
+            case CharacterState.Die:
+                this.Die();
+                break;
+            case CharacterState.Win:
+                this.Win();
+                break;
+            case CharacterState.Shoot:
+                this.Shoot();
+                break;
+        }
+    }
+    Idle(){
+        this.m_animator.play("Idle");
+        this.m_horseanimator.play("Horse_Idle");
+    }
+    Run(){
+        this.m_animator.play("Idle");
+        this.m_horseanimator.play("Horse_Run");
+    }
+    Die(){
+
+    }
+    Win(){
+
+    }
+    Shoot(){
+        this.m_animator.play("aimshoot");
+        this.m_animator.play("Horse_Run");
+    }
+    RayCheck(){
+        if(this.DownRayCheck){
+
+        }
+        if(this.FowardRayCheck){
+            this.CrashBarrier();
+        }
+    }
+    //撞到障碍物
+    CrashBarrier(){
+        var target = this.FowardHit.collider.owner as Laya.Sprite3D;
+        if(target.name == ""){
+
+        }
+        else if(target.name == ""){
+
+        }
+        else if(target.name == ""){
+
+        }
+        else if(target.name == ""){
+
+        }
+    }
+    
+    /**竖直方向射线检测*/
+    get DownRayCheck():boolean{
+        var isDownHit = false;
+        var startPos:Vector3 = new Vector3(this.m_player.transform.position.x,this.m_player.transform.position.y+1.5,this.m_player.transform.position.z+0.5);
+        var direction:Vector3 = new Vector3(0,-1,0);
+        var DownRay:Laya.Ray = new Laya.Ray(startPos,direction);
+        if(AssetManager.Instance.mainscene.physicsSimulation.rayCast(DownRay,this.DownHit,100)){
+            if (this.DownHit.collider.collisionGroup == 100) {
+                isDownHit = true;
+            }
+        }
+        return isDownHit;
+    }
+    /**水平方向射线检测*/
+    get FowardRayCheck():boolean{
+        var isFowardHit = false;
+        var startPos:Vector3 = new Vector3(this.m_player.transform.position.x,this.m_player.transform.position.y+1.5,this.m_player.transform.position.z+0.5);
+        var direction:Vector3 = new Vector3(0,0,1);
+        var DownRay:Laya.Ray = new Laya.Ray(startPos,direction);
+        if(AssetManager.Instance.mainscene.physicsSimulation.rayCast(DownRay,this.FowardHit,1)){
+            if (this.FowardHit.collider.collisionGroup == 100) {
+                isFowardHit = true;
+            }
+        }
+        return isFowardHit;
+    }
 }

+ 1 - 1
src/GameConfig.ts

@@ -10,7 +10,7 @@ export default class GameConfig{
     static screenMode:string="none";
     static alignV:string="top";
     static alignH:string="left";
-    static startScene:any="";
+    static startScene:any="MainGameView.scene";
     static sceneRoot:string="";
     static debug:boolean=false;
     static stat:boolean=false;

+ 4 - 0
src/Tools/AssetManager.ts

@@ -52,4 +52,8 @@ export class ResourcesPath{
     [
         "Game/res/Role/LayaScene_Role/Conventional/enemy.lh"
     ]
+    static Prop = 
+    [
+        "Game/res/Prop/LayaScene_Prop/Conventional/Archer"
+    ]
 }

+ 24 - 0
src/View/InGameView.ts

@@ -0,0 +1,24 @@
+import { ui } from "../ui/layaMaxUI";
+import { SC } from "./ViewManager";
+export default class InGameView extends ui.InGameViewUI implements SC{
+    private static ins:InGameView;
+    constructor(){
+        super();
+        InGameView.ins = this;
+    }
+    public static get Instance():InGameView{
+        if(InGameView.ins){
+            return InGameView.ins
+        }
+        else{
+            return new InGameView();
+        }
+    }
+    Show(){
+       
+    }
+    Close(){
+
+    }
+    
+}

+ 33 - 0
src/View/MainGameView.ts

@@ -0,0 +1,33 @@
+import { ui } from "../ui/layaMaxUI";
+import { SC, ViewManager, ViewType } from "./ViewManager";
+import { EventManager, StageState } from "../Tools/EventManager";
+
+export default class MainGameView extends ui.MainGameViewUI implements SC{
+    private static ins:MainGameView;
+    constructor()
+    {
+        super();
+        MainGameView.ins = this;
+    }
+    public static get Instance():MainGameView{
+        if(MainGameView.ins){
+            return MainGameView.ins
+        }
+        else{
+            return new MainGameView();
+        }
+    }
+    Show(){
+        this.StartBtn.clickHandler = Laya.Handler.create(this,this.ClickStart);
+
+    }
+    Close(){
+
+    }
+    ClickStart(){
+        EventManager.StageTrigger(StageState.Start);
+        ViewManager.Instance.ShowView(ViewType.IngameView);
+    }
+    
+
+}

+ 98 - 0
src/View/ViewManager.ts

@@ -0,0 +1,98 @@
+import MainGameView from "./MainGameView";
+import InGameView from "./InGameView";
+
+export enum ViewType{MainView,IngameView};
+
+export interface SC{
+    Show();
+    Close();
+}
+export class ViewManager{
+    private static ins:ViewManager;
+    public showexportview:number = 0;
+    
+    private popViewDic:[any][any] = [];
+    public ViewSprite:Laya.Sprite = new Laya.Sprite();
+    public OtherViewSprite:Laya.Sprite = new Laya.Sprite();
+    public curView:any;
+    constructor(){
+        ViewManager.ins = this;
+        Laya.stage.addChild(this.ViewSprite);
+        Laya.stage.addChild(this.OtherViewSprite);
+    }
+    public static get Instance():ViewManager{
+        if(ViewManager.ins){
+            return ViewManager.ins
+        }
+        else{
+            return new ViewManager();
+        }
+    }
+    ShowView(_viewtype:ViewType,data = null){
+        if(this.curView != null){
+            this.curView.Close();
+            this.curView.destroy();
+            this.curView.removeSelf();
+        }
+        // GuangGao.Clear();
+        this.curView = this.CreateView(_viewtype);
+        this.curView.name = ViewType[_viewtype];
+        this.ViewSprite.addChild(this.curView);
+        this.curView.Show(data);
+    }
+    CloseView(){
+        if(this.curView != null){
+            this.curView.Close();
+            this.curView.destroy();
+            this.curView.removeSelf();
+        }
+    }
+    //全屏导出页
+    public OpenPopView(viewType:ViewType,data:any = null)
+    {
+        // GuangGao.Clear();
+        var popView;
+        if(this.popViewDic[viewType])
+        {
+            popView = this.popViewDic[viewType];
+            this.OtherViewSprite.setChildIndex(popView,this.OtherViewSprite.numChildren - 1);
+            popView.visible = true;
+        }
+        else
+        {
+            popView = this.CreateView(viewType);
+            this.OtherViewSprite.addChild(popView);
+            this.popViewDic[viewType] = popView;
+        }
+        this.showexportview = 1;
+        popView.OnOpen(data);
+    }
+
+    public ClosePopView(viewType:ViewType)
+    {
+        var popView = this.popViewDic[viewType];
+        if(popView == null){
+            return;
+        }
+        // GuangGao.Clear();
+        popView.OnHide();
+        popView.visible = false;
+        this.showexportview = 0;
+    }
+
+    ClearPopViews()
+    {
+        // GuangGao.Clear();
+    }
+
+    CreateView(_viewtype:ViewType){
+        switch (_viewtype) {
+            case ViewType.MainView:
+            return new MainGameView();
+            case ViewType.IngameView:
+            return new InGameView();
+        }
+        return null;
+    }
+
+}

+ 26 - 0
src/ui/layaMaxUI.ts

@@ -0,0 +1,26 @@
+/**This class is automatically generated by LayaAirIDE, please do not make any modifications. */
+import View=Laya.View;
+import Dialog=Laya.Dialog;
+import Scene=Laya.Scene;
+var REG: Function = Laya.ClassUtils.regClass;
+export module ui {
+    export class InGameViewUI extends Laya.Scene {
+        public static  uiView:any ={"type":"Scene","props":{"width":720,"height":1280},"compId":2,"loadList":[],"loadList3D":[]};
+        constructor(){ super()}
+        createChildren():void {
+            super.createChildren();
+            this.createView(InGameViewUI.uiView);
+        }
+    }
+    REG("ui.InGameViewUI",InGameViewUI);
+    export class MainGameViewUI extends Laya.Scene {
+		public StartBtn:Laya.Button;
+        public static  uiView:any ={"type":"Scene","props":{"width":720,"height":1280},"compId":2,"child":[{"type":"Button","props":{"y":897,"x":360,"width":100,"var":"StartBtn","stateNum":1,"skin":"comp/button.png","pivotY":50,"pivotX":50,"label":"label","height":100},"compId":4}],"loadList":["comp/button.png"],"loadList3D":[]};
+        constructor(){ super()}
+        createChildren():void {
+            super.createChildren();
+            this.createView(MainGameViewUI.uiView);
+        }
+    }
+    REG("ui.MainGameViewUI",MainGameViewUI);
+}