@shijiu/jsview-vue-samples 2.3.151-test.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/ABImageAlt/App.vue +114 -0
  2. package/ABImageAlt/Item.vue +133 -0
  3. package/{MetroWidgetDemos/SkeletonDiagram/assets/imageList.json → ABImageAlt/assets/imageList.js} +9 -1
  4. package/ABImageAlt/data.js +17 -0
  5. package/AI_Check_Rules.txt +5 -0
  6. package/AnimPicture/App.vue +20 -10
  7. package/ApicSwitch/App.vue +90 -0
  8. package/ApicSwitch/TabItem.vue +65 -0
  9. package/ApicSwitch/WebpShow.vue +24 -0
  10. package/ApicSwitch/data.js +50 -0
  11. package/Basic/AI_skills_update.md +1 -0
  12. package/Basic/components/div/ColorFormatTest.vue +93 -0
  13. package/Basic/components/div/DivRadius.vue +97 -15
  14. package/Basic/components/div/DivTag3Group.vue +30 -0
  15. package/Basic/components/img/ImageType.vue +65 -0
  16. package/Basic/components/panel/Panel2.vue +13 -1
  17. package/Basic/components/text/TextAlign.vue +7 -1
  18. package/BlobLoadTest/App.vue +201 -0
  19. package/BreakLinesApi/App.vue +82 -0
  20. package/CanvasDrawChart/App.vue +11 -0
  21. package/CanvasDrawChart/Graph1.vue +104 -0
  22. package/CanvasDrawChart/Graph2.vue +115 -0
  23. package/CssPreprocessor/Scss/PanelData.js +1 -1
  24. package/CssPreprocessor/Scss/components/scss-group4/ScssMaps.vue +4 -3
  25. package/CssPreprocessor/Scss/components/scss-group5/ScssImporting.vue +2 -2
  26. package/DemoForOperator/Bounce/FreeMoveBuilder.js +1 -1
  27. package/DemoForOperator/Firework1/App.vue +12 -1
  28. package/DemoForOperator/Firework1/Fireworks.vue +18 -0
  29. package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +1 -0
  30. package/DemoForOperator/Focus/Alpha/Item.vue +1 -0
  31. package/DemoForOperator/Focus/Light/Item.vue +1 -0
  32. package/DemoForOperator/Focus/Normal/Item.vue +1 -0
  33. package/DemoForOperator/FrameShadow/FrameShadow.vue +1 -1
  34. package/DemoForOperator/Genie/App.vue +20 -6
  35. package/DemoForOperator/Genie/App2.vue +61 -0
  36. package/DemoForOperator/Genie/geniePakcer/GenieImage.vue +298 -0
  37. package/DemoForOperator/Genie/geniePakcer/GenieSlot.vue +292 -0
  38. package/DemoForOperator/Genie/geniePakcer/GenieTools.ts +463 -0
  39. package/DemoForOperator/Jigsaw/JigsawFull.vue +12 -7
  40. package/DemoForOperator/Jigsaw/JigsawSingle.vue +13 -7
  41. package/DemoForOperator/LongChatBox/App.vue +13 -13
  42. package/DemoForOperator/LongChatBox/Bubble.vue +78 -66
  43. package/DemoForOperator/LongChatBox/LongChat.vue +68 -36
  44. package/DemoForOperator/LongChatBox/testData.js +7 -44
  45. package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +1 -1
  46. package/DemoForOperator/routeList.js +8 -2
  47. package/DemoHomepage/App.vue +74 -1
  48. package/DemoHomepage/components/BodyFrame.vue +1 -0
  49. package/DemoHomepage/components/TabFrame.vue +1 -1
  50. package/DemoHomepage/router.js +723 -160
  51. package/DemoHomepage/views/Homepage.vue +60 -2
  52. package/DemoHomepage/watchTest.vue +50 -0
  53. package/FilterDemo/AnimatePic.vue +63 -17
  54. package/FilterDemo/App.vue +3 -3
  55. package/FlexCellDemo/AI_skills_update.md +4 -0
  56. package/FlexCellDemo/TestFrame1.vue +12 -2
  57. package/FlexCellDemo/TestFrame2.vue +10 -1
  58. package/FlexCellDemo/TestFrame3.vue +114 -59
  59. package/FpsLimit/App.vue +102 -0
  60. package/FreeMoveChildAttract/App.vue +18 -8
  61. package/FreeMoveLink/App.vue +49 -20
  62. package/Hover/App.vue +144 -0
  63. package/HttpRequestSSE/SSEReader.js +200 -0
  64. package/ImpactStop/App.vue +2 -2
  65. package/Input/FullKeyboard.vue +3 -3
  66. package/Input/InputPanel.vue +63 -3
  67. package/JsvLine/App.vue +53 -38
  68. package/LatexDemo/App.vue +3 -1
  69. package/LatexFormula/App.vue +196 -0
  70. package/LongImage/App.vue +1 -1
  71. package/LongImage/LongImageScroll.vue +100 -47
  72. package/LongImage/Scroll.vue +28 -9
  73. package/LongText/LongTextScroll.vue +1 -0
  74. package/Markdown/App.vue +36 -0
  75. package/Markdown/Bubble.vue +109 -0
  76. package/Markdown/LongChat.vue +206 -0
  77. package/Markdown/Markdown/Markdown.vue +156 -0
  78. package/Markdown/Markdown/index.ts +1 -0
  79. package/Markdown/Markdown/marked/LICENSE.md +45 -0
  80. package/Markdown/Markdown/marked/index.ts +2 -0
  81. package/Markdown/Markdown/marked/marked.d.ts +756 -0
  82. package/Markdown/Markdown/marked/marked.js +71 -0
  83. package/Markdown/Markdown/parser.ts +1365 -0
  84. package/Markdown/data.js +581 -0
  85. package/MetroWidgetDemos/AI_skills_update.md +2 -0
  86. package/MetroWidgetDemos/ListExpand/ChildItem.vue +130 -0
  87. package/MetroWidgetDemos/ListExpand/ExpandItem.vue +375 -0
  88. package/MetroWidgetDemos/ListExpand/ExpandItem1.vue +403 -0
  89. package/MetroWidgetDemos/ListExpand/assets/arrow-down.png +0 -0
  90. package/MetroWidgetDemos/ListExpand/assets/up-arrow.png +0 -0
  91. package/MetroWidgetDemos/ListExpand/components/WidgetListHandler.vue +150 -0
  92. package/MetroWidgetDemos/ListExpand/index.vue +88 -0
  93. package/MetroWidgetDemos/ListExpand/list.js +2421 -0
  94. package/MetroWidgetDemos/RefreshDemo/App.vue +14 -1
  95. package/MetroWidgetDemos/RenderAccelerate/App.vue +142 -0
  96. package/MetroWidgetDemos/RenderAccelerate/AppPage.vue +78 -0
  97. package/MetroWidgetDemos/RenderAccelerate/AppTab.vue +62 -0
  98. package/MetroWidgetDemos/RenderAccelerate/ContentItem.vue +409 -0
  99. package/MetroWidgetDemos/RenderAccelerate/Item.vue +67 -0
  100. package/MetroWidgetDemos/RenderAccelerate/TabItem.vue +100 -0
  101. package/MetroWidgetDemos/RenderAccelerate/ViewSwiper.vue +215 -0
  102. package/MetroWidgetDemos/RenderAccelerate/WidgetItem.vue +107 -0
  103. package/MetroWidgetDemos/SkeletonDiagram/App.vue +35 -8
  104. package/MetroWidgetDemos/SkeletonDiagram/Item.vue +11 -2
  105. package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.js +245 -0
  106. package/MetroWidgetDemos/SkeletonDiagram/data.js +3 -3
  107. package/MetroWidgetDemos/SpatialNav/App.vue +177 -0
  108. package/MetroWidgetDemos/SpatialNav/Buttons.vue +83 -0
  109. package/MetroWidgetDemos/SpatialNav/CustomFocus.vue +57 -0
  110. package/MetroWidgetDemos/{TripleWidget → SpatialNav}/Item.vue +1 -8
  111. package/MetroWidgetDemos/{TripleWidget/WidgetItem.vue → SpatialNav/SimpleFloor.vue} +14 -45
  112. package/MetroWidgetDemos/SpatialNav/StepMw.vue +113 -0
  113. package/MetroWidgetDemos/SpatialNav/TabContent/TabContent.vue +185 -0
  114. package/MetroWidgetDemos/SpatialNav/TripleSection/TripleSection.vue +69 -0
  115. package/MetroWidgetDemos/SpatialNav/TripleSection/WidgetItem.vue +100 -0
  116. package/MetroWidgetDemos/SpatialNav/TvSection/List.vue +75 -0
  117. package/MetroWidgetDemos/SpatialNav/TvSection/TvSection.vue +91 -0
  118. package/MetroWidgetDemos/basic2/App.vue +407 -0
  119. package/MetroWidgetDemos/basic2/Item.vue +68 -0
  120. package/MetroWidgetDemos/direction/App.vue +22 -0
  121. package/MetroWidgetDemos/gazeFocusDiff/App.vue +126 -0
  122. package/MetroWidgetDemos/gazeFocusDiff/Item.vue +87 -0
  123. package/MetroWidgetDemos/minimalUsage/App.vue +66 -0
  124. package/MetroWidgetDemos/minimalUsage/Item.vue +54 -0
  125. package/MetroWidgetDemos/ninePatchFocusPage/App.vue +22 -7
  126. package/MetroWidgetDemos/ninePatchFocusPage/Item.vue +7 -5
  127. package/MetroWidgetDemos/ninePatchFocusPage/focusConstants.js +2 -0
  128. package/MetroWidgetDemos/routeList.js +203 -12
  129. package/MetroWidgetDemos/slideSetting/App.vue +288 -99
  130. package/MetroWidgetDemos/zIndex/App.vue +117 -0
  131. package/MetroWidgetDemos/zIndex/Item.vue +61 -0
  132. package/NinePatchTester/App.vue +24 -31
  133. package/PreDecode/App.vue +140 -0
  134. package/ReactiveTest/App.vue +115 -0
  135. package/ReactiveTest/Item.vue +92 -0
  136. package/ReactiveTest/assets/imageList.js +245 -0
  137. package/ReactiveTest/component/TestSmartDiv.vue +50 -0
  138. package/ReactiveTest/component/TestSmartDivSrcList.vue +74 -0
  139. package/ReactiveTest/component/TestSmartImage.vue +46 -0
  140. package/ReactiveTest/component/TestSmartImageSrcList.vue +90 -0
  141. package/ReactiveTest/component/TestSmartImageStyle.vue +41 -0
  142. package/ReactiveTest/data.js +49 -0
  143. package/ScreenToBlob/App.vue +250 -0
  144. package/SecTorTest/App.vue +9 -3
  145. package/SpringFestival/SpringFestivalScene/FreeMoveBuilder.js +3 -3
  146. package/SyncDecode/App.vue +137 -0
  147. package/TextSizeLimit/App.vue +211 -0
  148. package/TransitPage/App.vue +2 -0
  149. package/assets/logo.png +0 -0
  150. package/package.json +5 -5
  151. package/DemoForOperator/Genie/geniePakcer/Genie.vue +0 -741
  152. package/DemoForOperator/LongChatBox/TextManager.ts +0 -147
  153. package/DemoForOperator/LongChatBox/VirtualList.vue +0 -298
  154. package/DemoForOperator/LongChatBox/utile.js +0 -331
  155. package/DivMetroPerformance/App.vue +0 -157
  156. package/DivMetroPerformance/Item.vue +0 -58
  157. package/DivMetroPerformance/assets/bg.jpg +0 -0
  158. package/DivMetroPerformance/assets/coupon_content.png +0 -0
  159. package/DivMetroPerformance/assets/coupon_left.png +0 -0
  160. package/DivMetroPerformance/assets/coupon_mid.png +0 -0
  161. package/DivMetroPerformance/assets/coupon_right.png +0 -0
  162. package/DivMetroPerformance/assets/focus_border.png +0 -0
  163. package/DivMetroPerformance/assets/holder_logo.png +0 -0
  164. package/DivMetroPerformance/assets/jrbm.png +0 -0
  165. package/DivMetroPerformance/assets/line_left.png +0 -0
  166. package/DivMetroPerformance/assets/line_mid.png +0 -0
  167. package/DivMetroPerformance/assets/line_right.png +0 -0
  168. package/DivMetroPerformance/assets/loading.png +0 -0
  169. package/DivMetroPerformance/assets/logo.png +0 -0
  170. package/DivMetroPerformance/assets/mcjx.png +0 -0
  171. package/DivMetroPerformance/assets/tao.png +0 -0
  172. package/DivMetroPerformance/assets/tmall.png +0 -0
  173. package/DivMetroPerformance/border.png +0 -0
  174. package/DivMetroPerformance/components/ContentItem.vue +0 -384
  175. package/DivMetroPerformance/components/MyTab.vue +0 -129
  176. package/DivMetroPerformance/data.js +0 -124
  177. package/DivMetroPerformance/utils/GridItem.vue +0 -28
  178. package/DivMetroPerformance/utils/GridPlate.vue +0 -85
  179. package/MediaDemo/App.vue +0 -127
  180. package/MediaDemo/assets/audio-poster.png +0 -0
  181. package/MediaDemo/components/Button.vue +0 -69
  182. package/MediaDemo/components/Controllor.vue +0 -286
  183. package/MediaDemo/components/StatusBar.vue +0 -100
  184. package/MediaDemo/components/frames/AudioFrame.vue +0 -39
  185. package/MediaDemo/components/frames/AudioPoster.vue +0 -48
  186. package/MediaDemo/components/frames/MediaFrame.vue +0 -153
  187. package/MediaDemo/components/frames/VideoFrame.vue +0 -39
  188. package/MetroWidgetDemos/TripleWidget/App.vue +0 -87
  189. package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +0 -99
  190. package/Parkour/App.vue +0 -13
  191. package/Parkour/Common/Context.js +0 -21
  192. package/Parkour/Common/MatchmanInfo.js +0 -62
  193. package/Parkour/Common/Random.js +0 -61
  194. package/Parkour/Common/Sound.js +0 -50
  195. package/Parkour/appConfig/HOW_TO_CONFIG.md +0 -20
  196. package/Parkour/appConfig/app.config.mjs +0 -5
  197. package/Parkour/appConfig/app_sign_private_key_sample.crt +0 -28
  198. package/Parkour/appConfig/app_sign_public_key_sample.pem +0 -9
  199. package/Parkour/appConfig/jsview.config.mjs +0 -39
  200. package/Parkour/assets/Bgimages/bg1.png +0 -0
  201. package/Parkour/assets/Bgimages/bg2.png +0 -0
  202. package/Parkour/assets/Bgimages/bg3.png +0 -0
  203. package/Parkour/assets/Bgimages/bg4.png +0 -0
  204. package/Parkour/assets/Bgimages/bg5.png +0 -0
  205. package/Parkour/assets/audio/jump.mp3 +0 -0
  206. package/Parkour/assets/audio/lose.mp3 +0 -0
  207. package/Parkour/assets/role_skin1/fail.json +0 -44
  208. package/Parkour/assets/role_skin1/fail.png +0 -0
  209. package/Parkour/assets/role_skin1/jump_down.json +0 -20
  210. package/Parkour/assets/role_skin1/jump_down.png +0 -0
  211. package/Parkour/assets/role_skin1/jump_up.json +0 -44
  212. package/Parkour/assets/role_skin1/jump_up.png +0 -0
  213. package/Parkour/assets/role_skin1/roll.json +0 -44
  214. package/Parkour/assets/role_skin1/roll.png +0 -0
  215. package/Parkour/assets/role_skin1/run.json +0 -52
  216. package/Parkour/assets/role_skin1/run.png +0 -0
  217. package/Parkour/components/Backdrop.vue +0 -61
  218. package/Parkour/components/GameSence.vue +0 -602
  219. package/Parkour/components/Matchman.vue +0 -85
  220. package/ThrowMoveDemo/AccelerateDemo.vue +0 -85
  221. package/ThrowMoveDemo/App.vue +0 -104
  222. package/ThrowMoveDemo/LRParabolicDemo.vue +0 -101
  223. package/ThrowMoveDemo/TargetDemo.vue +0 -87
  224. package/ThrowMoveDemo/UDParabolicDemo.vue +0 -92
  225. /package/{AnimPicture/assets → assets}/animated_webp.webp +0 -0
  226. /package/{AnimPicture/assets → assets}/ball_3.webp +0 -0
  227. /package/{AnimPicture/assets → assets}/girl_run.gif +0 -0
  228. /package/{AnimPicture/assets → assets}/quan.webp +0 -0
@@ -1,602 +0,0 @@
1
- <template>
2
- <jsv-focus-block autoFocus :onAction="actionDefines">
3
- <Backdrop :control="control1" :ArrayItem="ArrayItem1" :bgImg="bgImg1" :preload_info="preload_info1"
4
- :TopRef="GameContext.TopRef1" :MidRef="GameContext.MidRef1" :BottomRef="GameContext.BottomRef1"
5
- :ObstacleRef="GameContext.ObstacleRef1" :style="{ left: 1280 * 1.5 }" :LeftRef="GameContext.LeftRef1"></Backdrop>
6
- <Backdrop :control="control2" :ArrayItem="ArrayItem2" :bgImg="bgImg2" :preload_info="preload_info2"
7
- :TopRef="GameContext.TopRef2" :MidRef="GameContext.MidRef2" :BottomRef="GameContext.BottomRef2"
8
- :ObstacleRef="GameContext.ObstacleRef2" :LeftRef="GameContext.LeftRef2"></Backdrop>
9
- <Matchman />
10
- <!-- 游戏结束的弹窗 -->
11
- <div v-if="isover" :style="{
12
- width: 460,
13
- height: 180,
14
- top: 280,
15
- left: 440 - 60,
16
- backgroundColor: 'rgba(255, 255, 255, 0.8)',
17
- color: '#000000',
18
- fontSize: 50,
19
- textAlign: 'center',
20
- borderRadius: 30
21
- }">游戏结束
22
- <div :style="{
23
- width: 460,
24
- height: 180,
25
- top: 90,
26
- left: 0,
27
- }">按[OK]键重新开始</div>
28
- </div>
29
- <!-- 变速动画 -->
30
- <div v-if="isshow"
31
- :style="{ width: 300, height: 50, color: '#FF1213', top: 40, left: 660, fontSize: 40, animation: 'show 2s ease-in-out' }"
32
- @animationend="AnimEnd">
33
- 当前速度:{{ speed }}</div>
34
- </jsv-focus-block>
35
- </template>
36
-
37
- <script setup>
38
- import {
39
- JsvActorMoveControl, SpriteController,
40
- createImpactTracer,
41
- createImpactCallback,
42
- createImpactAutoFroze,
43
- } from "jsview"
44
- import { shallowRef, onMounted, watch, onBeforeUnmount, ref, provide, inject } from "vue";
45
- import Matchman from "./Matchman.vue"
46
- import { _formatInfo, jsonObject } from "../Common/MatchmanInfo"
47
- import { randomBg, randomFloor } from "../Common/Random";
48
- import Backdrop from "./Backdrop.vue";
49
- import Sound from "../Common/Sound.js"
50
- import { Context } from "../Common/Context";
51
- /* 火柴人相关变量控制 */
52
-
53
- //音频
54
- const PlaySound = new Sound()
55
-
56
- //给定ref
57
- let match = shallowRef(null)
58
- provide("match", match)
59
-
60
- //火柴人纵向动作控制器
61
- const verticalControl = new JsvActorMoveControl();
62
- provide("verticalControl", verticalControl)
63
-
64
- //雪碧图控制器
65
- const spriteController_run = new SpriteController()
66
- provide("spriteController_run", spriteController_run)
67
-
68
- const spriteController_jump = new SpriteController()
69
- provide("spriteController_jump", spriteController_jump)
70
-
71
- const spriteController_down = new SpriteController()
72
- provide("spriteController_down", spriteController_down)
73
-
74
- const spriteController_roll = new SpriteController()
75
- provide("spriteController_roll", spriteController_roll)
76
-
77
- const spriteController_fail = new SpriteController()
78
- provide("spriteController_fail", spriteController_fail)
79
-
80
- //主碰撞区域的ref
81
- let body = shallowRef(null)
82
- provide("body", body)
83
- //副碰撞区域(顶层碰撞)的ref
84
- let head = shallowRef(null)
85
- provide("head", head)
86
- //初始化跑步状态json
87
- let sprite_info = ref(_formatInfo(jsonObject.run_json));
88
- provide("sprite_info", sprite_info)
89
- //尺寸
90
- const view_size = {
91
- w: sprite_info.value.maxW,
92
- h: sprite_info.value.maxH,
93
- };
94
- provide('view_size', view_size)
95
- //切换主副碰撞体的变量
96
- let ischange = shallowRef(null)
97
- provide("ischange", ischange)
98
- //跳跃计数
99
- let num = shallowRef(0)
100
- //跳跃变量
101
- let isjump = shallowRef(false)
102
- provide("isjump", isjump)
103
- //滚动变量
104
- let isroll = shallowRef(false)
105
- provide("isroll", isroll)
106
- //跑动变量
107
- let isrun = shallowRef(true)
108
- provide('isrun', isrun)
109
- //落下变量
110
- let isdown = shallowRef(false)
111
- provide("isdown", isdown)
112
- //结束变量
113
- let isover = shallowRef(false)
114
- provide("isover", isover)
115
-
116
- //火柴人动画结束的回调
117
- const onAnimEnd = () => {
118
- ischange.value = false
119
- //在滚动状态时不会正常触发,
120
- if (isjump.value) {
121
- isroll.value = false
122
- isdown.value = false
123
- isrun.value = false
124
- num.value = 0
125
- }
126
- else if (!isover.value) {
127
- isroll.value = false
128
- isdown.value = false
129
- isjump.value = false
130
- isrun.value = true
131
- num.value = 0
132
- } else {
133
- isover.value = true
134
- isroll.value = false
135
- isdown.value = false
136
- isjump.value = false
137
- isrun.value = false
138
- }
139
-
140
- }
141
- provide("onAnimEnd", onAnimEnd)
142
-
143
-
144
- /* 背景图相关 */
145
- //背景控制
146
- const control1 = new JsvActorMoveControl()
147
- const control2 = new JsvActorMoveControl()
148
- //随机数组
149
- let ArrayItem1 = ref([])
150
- let ArrayItem2 = ref([])
151
- //随机背景图片
152
- let bgImg1 = shallowRef('')
153
- let bgImg2 = shallowRef('')
154
- //预加载的背景图
155
- const preload_info1 = shallowRef([]);
156
- const preload_info2 = shallowRef([])
157
-
158
- //背景和地板初始化
159
- randomFloor(ArrayItem1)
160
- randomFloor(ArrayItem2)
161
- randomBg(bgImg1, preload_info1)
162
- randomBg(bgImg2, preload_info2)
163
-
164
- /* 整体控制 */
165
-
166
- //拿取ref给子组件
167
- let GameContext = new Context()
168
-
169
- //碰撞管理
170
- let bump = shallowRef(false)
171
- let sensorList = [];
172
-
173
- //碰撞即停变量
174
- let viewsAutoFroze = null;
175
-
176
- //变化标志
177
- let flag1 = shallowRef(0)
178
- let flag2 = shallowRef(0)
179
-
180
- //接收key
181
- let SenceKey = inject("SenceKey")
182
-
183
- //地板碰撞函数
184
- const collisionCallback = () => {
185
- if (!bump.value) {
186
- if (!isroll.value) {
187
- isrun.value = true
188
- isdown.value = false
189
- isjump.value = false
190
- isover.value = false
191
- num.value = 0
192
- }
193
- } else {
194
- isover.value = true
195
- isroll.value = false
196
- isrun.value = false
197
- isdown.value = false
198
- isjump.value = false
199
- num.value = 0
200
- }
201
- }
202
-
203
- //边缘坠落函数
204
- const separate = () => {
205
- if (!isjump.value) {
206
- verticalControl.throwAlongY(
207
- 0,
208
- 4000,
209
- { type: "catch", position: 300, direction: 1 },
210
- () => {
211
- gameOver()
212
- }, // 未碰撞落地时,游戏结束
213
- () => {
214
- isdown.value = true
215
- isroll.value = false
216
- isrun.value = false
217
- isdown.value = false
218
- isjump.value = false
219
- isover.value = false
220
- } // 到达拐点时调整成落下状态
221
- );
222
- }
223
- }
224
-
225
- //键盘事件
226
- const onKeyDown = (ev) => {
227
- if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
228
- //交给主页处理,这里不做处理
229
- }
230
- else if (isover.value) {
231
- if (ev.keyCode == 13) {
232
- SenceKey.value += 1
233
- } else {
234
- return true
235
- }
236
- } else if (ev.keyCode == 38 && num.value < 2) {
237
- ischange.value = false
238
- isroll.value = false
239
- isjump.value = true
240
- isdown.value = false
241
- isrun.value = false
242
- isover.value = false
243
- num.value += 1
244
- verticalControl.throwAlongY(
245
- -1000,
246
- 2450,
247
- { type: "catch", position: 300, direction: 1 },
248
- () => {
249
- gameOver()
250
- }, // 未碰撞落地时,游戏结束
251
- () => {
252
- isroll.value = false
253
- isrun.value = false
254
- isdown.value = true
255
- isjump.value = false
256
- isover.value = false
257
- } // 到达拐点时调整成落下状态
258
- );
259
- //跳跃音频
260
- PlaySound.playJumpSound()
261
-
262
- } else if (ev.keyCode == 40) {
263
- isroll.value = true
264
- isrun.value = false
265
- isdown.value = false
266
- isjump.value = false
267
- isover.value = false
268
- num.value = 0
269
- ischange.value = true
270
- spriteController_roll.start()
271
- }
272
- }
273
- //游戏结束函数
274
- const gameOver = () => {
275
- spriteController_fail.start()
276
- isover.value = true
277
- isrun.value = false
278
- isdown.value = false
279
- isjump.value = false
280
- isroll.value = false
281
- num.value = 0
282
- //播放失败音频,停止运动
283
- PlaySound.playFailSound()
284
- control1.pause()
285
- control2.pause()
286
- }
287
-
288
- const actionDefines = {
289
- onKeyDown
290
- }
291
-
292
- //速度显示变量
293
- let speed = shallowRef(274)
294
- //控制速度动画div的变量
295
- let isshow = shallowRef(true)
296
-
297
- //速度动画结束回调
298
- const AnimEnd = () => {
299
- isshow.value = false
300
- }
301
-
302
- //监听背景图运动 更新随机地板以及变速
303
- watch(flag1, (n, o) => {
304
- if (n == 1) {
305
- isshow.value = true
306
- speed.value = 640
307
- control1.altStraightSpeed(640, 3000)
308
- control2.altStraightSpeed(640, 3000)
309
- ArrayItem1.value = []
310
- randomFloor(ArrayItem1)
311
- } else if (n == 2) {
312
- ArrayItem1.value = []
313
- }
314
- bgImg1.value = ''
315
- randomBg(bgImg1, preload_info1)
316
- })
317
- watch(flag2, (n, o) => {
318
- if (n == 1) {
319
- isshow.value = true
320
- speed.value = 384
321
- control1.altStraightSpeed(384, 3000)
322
- control2.altStraightSpeed(384, 3000)
323
- }
324
- ArrayItem2.value = []
325
- randomFloor(ArrayItem2)
326
- bgImg2.value = ''
327
- randomBg(bgImg2, preload_info2)
328
- })
329
-
330
- /* 在此生命周期进行碰撞体定义操作以及初始化音频 */
331
- onMounted(() => {
332
- //初始化音频
333
- PlaySound.initSound()
334
- //初始落下
335
- verticalControl.throwAlongY(
336
- 0,
337
- 9000,
338
- { type: "catch", position: 300, direction: 1 },
339
- () => {
340
- gameOver()
341
- },
342
- () => {
343
- isroll.value = false
344
- isrun.value = false
345
- isdown.value = true
346
- isjump.value = false
347
- isover.value = false
348
- num.value = 1
349
- }
350
- );
351
- //给定碰撞即停句柄
352
- viewsAutoFroze = createImpactAutoFroze(
353
- [match.value.mainDiv], null
354
- );
355
-
356
- //移动两个背景图
357
- control1.scrollMoveAlongX(-1280 * 2 * 1.5, 274, 0, () => {
358
- flag1.value += 1
359
- return true
360
- })
361
- control2.scrollMoveAlongX(-1280 * 1.5, 274, 1280 * 1.5, () => {
362
- flag2.value += 1
363
- return true
364
- })
365
-
366
- //创建碰撞体,因为每个场景只有两个地板,直接为2
367
- for (let i = 0; i < 2; i++) {
368
-
369
- //第一屏 上层碰撞体,边缘坠落(火柴人主碰撞体)
370
- sensorList.push(
371
- createImpactTracer(
372
- body.value,
373
- GameContext.TopRef1.value[i],
374
- createImpactCallback(() => {
375
- collisionCallback()
376
- }, () => {
377
- num.value = 1
378
- separate()
379
- }, null),
380
- )
381
- );
382
- //第二屏 上层碰撞体,边缘坠落(火柴人主碰撞体)
383
- sensorList.push(
384
- createImpactTracer(
385
- body.value,
386
- GameContext.TopRef2.value[i],
387
- createImpactCallback(() => {
388
- collisionCallback()
389
- }, () => {
390
- num.value = 1
391
- separate()
392
- }, null),
393
- )
394
- );
395
-
396
- //第一屏 中层碰撞(火柴人主碰撞体)
397
- sensorList.push(
398
- createImpactTracer(
399
- body.value,
400
- GameContext.MidRef1.value[i],
401
- createImpactCallback(() => {
402
- //此处计算是针对于pc端 320为初始小人top,50和40为上下两个碰撞体大小。20是为视觉效果更好。
403
- verticalControl.jumpTo(0, ArrayItem1.value[i].top - 320 - 50 - 40 - 20)
404
- collisionCallback()
405
- }, null),
406
- viewsAutoFroze
407
- )
408
- );
409
- //第二屏 中层碰撞(火柴人主碰撞体)
410
- sensorList.push(
411
- createImpactTracer(
412
- body.value,
413
- GameContext.MidRef2.value[i],
414
- createImpactCallback(() => {
415
- verticalControl.jumpTo(0, ArrayItem2.value[i].top - 320 - 50 - 40 - 20)
416
- collisionCallback()
417
- }, null),
418
- viewsAutoFroze
419
- )
420
- );
421
-
422
- //第一屏 下层碰撞体,碰撞即游戏结束(火柴人主碰撞体)
423
- sensorList.push(
424
- createImpactTracer(
425
- body.value,
426
- GameContext.BottomRef1.value[i],
427
- createImpactCallback(() => {
428
- if (isjump.value) {
429
- bump.value = true
430
- gameOver()
431
- }
432
- }, null),
433
- viewsAutoFroze
434
- )
435
- );
436
- // 第一屏 下层碰撞体,碰撞即游戏结束(火柴人副碰撞体)
437
- sensorList.push(
438
- createImpactTracer(
439
- head.value,
440
- GameContext.BottomRef1.value[i],
441
- createImpactCallback(() => {
442
- if (isjump.value) {
443
- bump.value = true
444
- gameOver()
445
- }
446
- }, null),
447
- viewsAutoFroze
448
- )
449
- );
450
-
451
- //第二屏 下层碰撞体,碰撞即游戏结束(火柴人主碰撞体)
452
- sensorList.push(
453
- createImpactTracer(
454
- body.value,
455
- GameContext.BottomRef2.value[i],
456
- createImpactCallback(() => {
457
- if (isjump.value) {
458
- bump.value = true
459
- gameOver()
460
- }
461
- }, null),
462
- viewsAutoFroze
463
- )
464
- );
465
- // 第一屏 下层碰撞体,碰撞即游戏结束(火柴人副碰撞体)
466
- sensorList.push(
467
- createImpactTracer(
468
- head.value,
469
- GameContext.BottomRef2.value[i],
470
- createImpactCallback(() => {
471
- if (isjump.value) {
472
- bump.value = true
473
- gameOver()
474
- }
475
- }, null),
476
- viewsAutoFroze
477
- )
478
- );
479
- //第一屏 跳跃碰到左边临界点(火柴人主碰撞体)
480
- sensorList.push(
481
- createImpactTracer(
482
- body.value,
483
- GameContext.LeftRef1.value[i],
484
- createImpactCallback(() => {
485
- bump.value = true
486
- gameOver()
487
- }, null),
488
- viewsAutoFroze
489
- )
490
- );
491
- //第一屏 跳跃碰到左边临界点(火柴人副碰撞体)
492
- sensorList.push(
493
- createImpactTracer(
494
- head.value,
495
- GameContext.LeftRef1.value[i],
496
- createImpactCallback(() => {
497
- bump.value = true
498
- gameOver()
499
- }, null),
500
- viewsAutoFroze
501
- )
502
- );
503
- //第二屏 跳跃碰到左边临界点(火柴人主碰撞体)
504
- sensorList.push(
505
- createImpactTracer(
506
- body.value,
507
- GameContext.LeftRef2.value[i],
508
- createImpactCallback(() => {
509
- bump.value = true
510
- gameOver()
511
- }, null),
512
- viewsAutoFroze
513
- )
514
- );
515
- //第二屏 跳跃碰到左边临界点(火柴人副碰撞体)
516
- sensorList.push(
517
- createImpactTracer(
518
- head.value,
519
- GameContext.LeftRef2.value[i],
520
- createImpactCallback(() => {
521
- bump.value = true
522
- gameOver()
523
- }, null),
524
- viewsAutoFroze
525
- )
526
- );
527
- }
528
- //第一屏 与障碍物相撞(火柴人主碰撞体)
529
- sensorList.push(
530
- createImpactTracer(
531
- body.value,
532
- GameContext.ObstacleRef1.value[0],
533
- createImpactCallback(() => {
534
- bump.value = true
535
- gameOver()
536
- }, null),
537
- viewsAutoFroze
538
- )
539
- );
540
- //第一屏 与障碍物相撞(火柴人副碰撞体)
541
- sensorList.push(
542
- createImpactTracer(
543
- head.value,
544
- GameContext.ObstacleRef1.value[0],
545
- createImpactCallback(() => {
546
- bump.value = true
547
- gameOver()
548
- }, null),
549
- viewsAutoFroze
550
- )
551
- );
552
- //第二屏 与障碍物相撞(火柴人主碰撞体)
553
- sensorList.push(
554
- createImpactTracer(
555
- body.value,
556
- GameContext.ObstacleRef2.value[0],
557
- createImpactCallback(() => {
558
- bump.value = true
559
- gameOver()
560
- }, null),
561
- viewsAutoFroze
562
- )
563
- );
564
- //第二屏 与障碍物相撞(火柴人副碰撞体)
565
- sensorList.push(
566
- createImpactTracer(
567
- head.value,
568
- GameContext.ObstacleRef2.value[0],
569
- createImpactCallback(() => {
570
- bump.value = true
571
- gameOver()
572
- }, null),
573
- viewsAutoFroze
574
- )
575
- );
576
-
577
- })
578
-
579
- /* 重要! 退出后应该释放所有碰撞监听者 */
580
- onBeforeUnmount(() => {
581
- for (const sensor of sensorList) {
582
- sensor.Recycle();
583
- }
584
- viewsAutoFroze?.Recycle();
585
- //摧毁音频
586
- PlaySound.destroy();
587
- })
588
- </script>
589
-
590
- <style lang="scss" scoped>
591
- @keyframes show {
592
- from {
593
- transform: scale3d(1, 1, 1);
594
- opacity: 1;
595
- }
596
-
597
- to {
598
- transform: scale3d(1.2, 1.2, 1.2);
599
- opacity: 0;
600
- }
601
- }
602
- </style>
@@ -1,85 +0,0 @@
1
- <template>
2
- <div>
3
- <JsvPreload :preloadList="preload_info"></JsvPreload>
4
- <JsvActorMove :control="verticalControl" :style="{ top: 720 / 2 - 40, left: 50 }" ref="match">
5
- <!-- 跑动 -->
6
- <JsvSpriteAnim :spriteInfo="sprite_info_run.info" :loop="'infinite'" :viewSize="view_size" :duration="0.5"
7
- :autostart="true" :imageUrl="pngObject.run_png" :controller="spriteController_run" v-show="isrun">
8
- </JsvSpriteAnim>
9
- <!-- 跳起 -->
10
- <JsvSpriteAnim :spriteInfo="sprite_info_jumpUp.info" :loop="1" :viewSize="view_size" :duration="0.6"
11
- :autostart="true" :imageUrl="pngObject.jumpUp_png" :controller="spriteController_jump" v-show="isjump">
12
- </JsvSpriteAnim>
13
- <!-- 落下 -->
14
- <JsvSpriteAnim :spriteInfo="sprite_info_jumpDown.info" :loop="'infinite'" :viewSize="view_size" :duration="1"
15
- :autostart="true" :imageUrl="pngObject.jumpDown_png" :controller="spriteController_down" v-show="isdown">
16
- </JsvSpriteAnim>
17
- <!-- 滚动 -->
18
- <JsvSpriteAnim :spriteInfo="sprite_info_roll.info" :loop="2" :viewSize="view_size" :duration="0.4" :autostart="true"
19
- :imageUrl="pngObject.roll_png" :onAnimEnd="onAnimEnd" :controller="spriteController_roll" v-show="isroll">
20
- </JsvSpriteAnim>
21
- <!-- 失败 -->
22
- <JsvSpriteAnim :spriteInfo="sprite_info_fail.info" :loop="1" :viewSize="view_size" :duration="0.6" :autostart="true"
23
- :imageUrl="pngObject.fail_png" :controller="spriteController_fail" v-show="isover" :onAnimEnd="onAnimEnd">
24
- </JsvSpriteAnim>
25
- <!-- 主碰撞体 -->
26
- <div key="body" ref="body" :style="{
27
- top: 60,
28
- left: 70,
29
- width: 20,
30
- height: 50,
31
- backgroundColor: 'rgba(0,0,0,0)'
32
- }"></div>
33
- <!-- 副碰撞体 上层区域 -->
34
- <div key="head" ref="head" :style="{
35
- top: 20,
36
- left: 70,
37
- width: 20,
38
- height: 40,
39
- backgroundColor: 'rgba(0,0,0,0)'
40
- }" v-show="!ischange"></div>
41
- </JsvActorMove>
42
- </div>
43
- </template>
44
-
45
- <script setup>
46
- import {
47
- JsvActorMove,
48
- JsvSpriteAnim,
49
- JsvPreload,
50
- buildPreloadInfo,
51
- } from "jsview"
52
- import { inject } from "vue";
53
- import { pngObject, _formatInfo, jsonObject } from "../Common/MatchmanInfo";
54
- //预加载火柴人信息
55
- const preload_info = [buildPreloadInfo(pngObject.fail_png), buildPreloadInfo(pngObject.roll_png), buildPreloadInfo(pngObject.jumpDown_png), buildPreloadInfo(pngObject.jumpUp_png), buildPreloadInfo(pngObject.run_png)]
56
- //接收信息
57
- let verticalControl = inject("verticalControl")
58
- let body = inject("body")
59
- let head = inject("head")
60
- let ischange = inject("ischange")
61
- const onAnimEnd = inject("onAnimEnd")
62
- let view_size = inject("view_size")
63
- let match = inject("match")
64
- let isrun = inject("isrun")
65
- let isroll = inject("isroll")
66
- let isdown = inject("isdown")
67
- let isjump = inject("isjump")
68
- let isover = inject('isover')
69
-
70
- //不同形态控制器
71
- const spriteController_run = inject("spriteController_run")
72
- const spriteController_jump = inject("spriteController_jump")
73
- const spriteController_down = inject("spriteController_down")
74
- const spriteController_roll = inject("spriteController_roll")
75
- const spriteController_fail = inject("spriteController_fail")
76
-
77
- const sprite_info_run = _formatInfo(jsonObject.run_json)
78
- const sprite_info_jumpUp = _formatInfo(jsonObject.jumpUp_json)
79
- const sprite_info_jumpDown = _formatInfo(jsonObject.jumpDown_json)
80
- const sprite_info_roll = _formatInfo(jsonObject.roll_json)
81
- const sprite_info_fail = _formatInfo(jsonObject.fail_json)
82
-
83
- </script>
84
-
85
- <style lang="scss" scoped></style>