@shijiu/jsview-vue-samples 2.0.1106 → 2.0.1127-next-vue.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.
- package/DemoHomepage/router.js +13 -2
- package/HashParams/App.vue +59 -0
- package/ImpactStop/App.vue +1 -0
- package/Parkour/App.vue +13 -0
- package/Parkour/Common/Context.js +19 -0
- package/Parkour/Common/MatchmanInfo.js +62 -0
- package/Parkour/Common/Random.js +61 -0
- package/Parkour/Common/Sound.js +50 -0
- package/Parkour/appConfig/HOW_TO_CONFIG.md +20 -0
- package/Parkour/appConfig/app.config.mjs +5 -0
- package/Parkour/appConfig/app_sign_private_key_sample.crt +28 -0
- package/Parkour/appConfig/app_sign_public_key_sample.pem +9 -0
- package/Parkour/appConfig/jsview.config.mjs +43 -0
- package/Parkour/assets/Bgimages/bg1.png +0 -0
- package/Parkour/assets/Bgimages/bg2.png +0 -0
- package/Parkour/assets/Bgimages/bg3.png +0 -0
- package/Parkour/assets/Bgimages/bg4.png +0 -0
- package/Parkour/assets/Bgimages/bg5.png +0 -0
- package/Parkour/assets/audio/jump.mp3 +0 -0
- package/Parkour/assets/audio/lose.mp3 +0 -0
- package/Parkour/assets/role_skin1/fail.json +44 -0
- package/Parkour/assets/role_skin1/fail.png +0 -0
- package/Parkour/assets/role_skin1/jump_down.json +20 -0
- package/Parkour/assets/role_skin1/jump_down.png +0 -0
- package/Parkour/assets/role_skin1/jump_up.json +44 -0
- package/Parkour/assets/role_skin1/jump_up.png +0 -0
- package/Parkour/assets/role_skin1/roll.json +44 -0
- package/Parkour/assets/role_skin1/roll.png +0 -0
- package/Parkour/assets/role_skin1/run.json +52 -0
- package/Parkour/assets/role_skin1/run.png +0 -0
- package/Parkour/components/Backdrop.vue +56 -0
- package/Parkour/components/GameSence.vue +554 -0
- package/Parkour/components/Matchman.vue +85 -0
- package/package.json +1 -1
package/DemoHomepage/router.js
CHANGED
|
@@ -196,11 +196,22 @@ let routeList = [
|
|
|
196
196
|
name:'红包雨',
|
|
197
197
|
path:'/Game/GiftRain',
|
|
198
198
|
component:()=>import('jsview-vue-samples/GiftRain/App.vue'),
|
|
199
|
-
},
|
|
199
|
+
},
|
|
200
|
+
{
|
|
200
201
|
name:'雷达图',
|
|
201
202
|
path:'/Game/RadarChart',
|
|
202
203
|
component:()=>import('jsview-vue-samples/JsvRadarChart/App.vue')
|
|
203
|
-
}
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name:'跑酷游戏',
|
|
207
|
+
path:'/Game/Parkour',
|
|
208
|
+
component:()=>import('jsview-vue-samples/parkour/App.vue')
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: 'Hash参数',
|
|
212
|
+
path: '/feature/HashParams',
|
|
213
|
+
component: () => import('jsview-vue-samples/HashParams/App.vue'),
|
|
214
|
+
},
|
|
204
215
|
];
|
|
205
216
|
|
|
206
217
|
//添加MetroWidget demo
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useRoute } from "vue-router";
|
|
3
|
+
// url: http://ip:port/main.jsv.js?p1=123#/feature/HashParams?p3=test&p4=123
|
|
4
|
+
const route = useRoute();
|
|
5
|
+
const href = window.location.href;
|
|
6
|
+
const search = window.location.search;
|
|
7
|
+
const query = JSON.stringify(route.query);
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<jsv-focus-block autoFocus></jsv-focus-block>
|
|
12
|
+
<div class="root">
|
|
13
|
+
<div
|
|
14
|
+
:style="{
|
|
15
|
+
top: 50,
|
|
16
|
+
height: 100,
|
|
17
|
+
}"
|
|
18
|
+
class="content"
|
|
19
|
+
>
|
|
20
|
+
{{ `url: ${href}` }}
|
|
21
|
+
</div>
|
|
22
|
+
<div
|
|
23
|
+
:style="{
|
|
24
|
+
top: 150,
|
|
25
|
+
height: 50,
|
|
26
|
+
}"
|
|
27
|
+
class="content"
|
|
28
|
+
>
|
|
29
|
+
{{ `search param: ${search}` }}
|
|
30
|
+
</div>
|
|
31
|
+
<div
|
|
32
|
+
:style="{
|
|
33
|
+
top: 200,
|
|
34
|
+
height: 50,
|
|
35
|
+
}"
|
|
36
|
+
class="content"
|
|
37
|
+
>
|
|
38
|
+
{{ `query: ${query}` }}
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</template>
|
|
42
|
+
|
|
43
|
+
<style scoped>
|
|
44
|
+
.root {
|
|
45
|
+
width: 1280;
|
|
46
|
+
height: 720;
|
|
47
|
+
background-color: #007788;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.content {
|
|
51
|
+
left: 50;
|
|
52
|
+
width: 1200;
|
|
53
|
+
font-size: 30;
|
|
54
|
+
color: #ffffff;
|
|
55
|
+
white-space: pre-wrap;
|
|
56
|
+
text-overflow: clip;
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
}
|
|
59
|
+
</style>
|
package/ImpactStop/App.vue
CHANGED
package/Parkour/App.vue
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<GameSence :key="SenceKey"></GameSence>
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { provide, shallowRef } from 'vue';
|
|
7
|
+
import GameSence from './components/GameSence.vue';
|
|
8
|
+
//定义变量key,通过修改key值来进行页面重载
|
|
9
|
+
let SenceKey = shallowRef(0)
|
|
10
|
+
provide("SenceKey", SenceKey)
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<style lang="scss" scoped></style>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/* 在此存放Demo中全局影响的变量*/
|
|
2
|
+
import { shallowRef } from "vue";
|
|
3
|
+
class Context {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.left = shallowRef(0);
|
|
6
|
+
//各ref
|
|
7
|
+
this.TopRef1=shallowRef(null)
|
|
8
|
+
this.TopRef2=shallowRef(null)
|
|
9
|
+
this.MidRef1=shallowRef(null);
|
|
10
|
+
this.MidRef2=shallowRef(null);
|
|
11
|
+
this.BottomRef1=shallowRef(null)
|
|
12
|
+
this.BottomRef2=shallowRef(null);
|
|
13
|
+
this.ObstacleRef1=shallowRef(null)
|
|
14
|
+
this.ObstacleRef2=shallowRef(null)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
Context
|
|
19
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* 此js文件用于更新火柴人的动作 */
|
|
2
|
+
import fail_json from "../assets/role_skin1/fail.json"
|
|
3
|
+
import fail_png from "../assets/role_skin1/fail.png"
|
|
4
|
+
import roll_json from "../assets/role_skin1/roll.json"
|
|
5
|
+
import roll_png from "../assets/role_skin1/roll.png"
|
|
6
|
+
import jumpDown_json from "../assets/role_skin1/jump_down.json"
|
|
7
|
+
import jumpDown_png from "../assets/role_skin1/jump_down.png"
|
|
8
|
+
import jumpUp_json from "../assets/role_skin1/jump_up.json"
|
|
9
|
+
import jumpUp_png from "../assets/role_skin1/jump_up.png"
|
|
10
|
+
import run_json from "../assets/role_skin1/run.json"
|
|
11
|
+
import run_png from "../assets/role_skin1/run.png"
|
|
12
|
+
|
|
13
|
+
//精灵图信息函数
|
|
14
|
+
const _formatInfo = (action_json) => {
|
|
15
|
+
const info = {
|
|
16
|
+
frames: [],
|
|
17
|
+
meta: {
|
|
18
|
+
size: action_json.meta.size,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
let frames_ref = info.frames;
|
|
22
|
+
let max_width = 0;
|
|
23
|
+
let max_height = 0;
|
|
24
|
+
|
|
25
|
+
for (let i = 0; i < action_json.frames.length; i++) {
|
|
26
|
+
const target = action_json.frames[i].spriteSourceSize;
|
|
27
|
+
frames_ref.push({
|
|
28
|
+
target,
|
|
29
|
+
source: action_json.frames[i].frame,
|
|
30
|
+
});
|
|
31
|
+
const sprite_with = target.x + target.w;
|
|
32
|
+
const sprite_height = target.y + target.h;
|
|
33
|
+
if (sprite_with > max_width) {
|
|
34
|
+
max_width = sprite_with;
|
|
35
|
+
}
|
|
36
|
+
if (sprite_height > max_height) {
|
|
37
|
+
max_height = sprite_height;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { info, maxW: max_width, maxH: max_height };
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//存入整个json对象
|
|
44
|
+
const jsonObject={
|
|
45
|
+
fail_json,
|
|
46
|
+
roll_json,
|
|
47
|
+
jumpDown_json,
|
|
48
|
+
jumpUp_json,
|
|
49
|
+
run_json
|
|
50
|
+
}
|
|
51
|
+
const pngObject={
|
|
52
|
+
fail_png,
|
|
53
|
+
roll_png,
|
|
54
|
+
jumpDown_png,
|
|
55
|
+
jumpUp_png,
|
|
56
|
+
run_png
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
_formatInfo,
|
|
60
|
+
jsonObject,
|
|
61
|
+
pngObject,
|
|
62
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/* 此js文件用于初始化以及更新随机背景图和地板 */
|
|
2
|
+
import bg1 from "../assets/Bgimages/bg1.png"
|
|
3
|
+
import bg2 from "../assets/Bgimages/bg2.png"
|
|
4
|
+
import bg3 from "../assets/Bgimages/bg3.png"
|
|
5
|
+
import bg4 from "../assets/Bgimages/bg4.png"
|
|
6
|
+
import bg5 from "../assets/Bgimages/bg5.png"
|
|
7
|
+
import { shallowRef } from "vue"
|
|
8
|
+
import { buildPreloadInfo } from "jsview"
|
|
9
|
+
import { Context } from "./Context"
|
|
10
|
+
/* 背景图相关 */
|
|
11
|
+
//定义随机背景图数组
|
|
12
|
+
const bgArray = [bg1, bg2, bg3, bg4, bg5]
|
|
13
|
+
//随机背景图
|
|
14
|
+
const randomBg = (bg, array) => {
|
|
15
|
+
array.value = []
|
|
16
|
+
const randomIndex = Math.floor(Math.random() * bgArray.length);
|
|
17
|
+
bg.value = bgArray[randomIndex]
|
|
18
|
+
array.value.push(buildPreloadInfo(bg.value))
|
|
19
|
+
return bg
|
|
20
|
+
}
|
|
21
|
+
/* 地板相关 */
|
|
22
|
+
|
|
23
|
+
//拿地板定位left的值
|
|
24
|
+
let GameContext = new Context()
|
|
25
|
+
//设定缝隙长度
|
|
26
|
+
const gapWidth = 280;
|
|
27
|
+
//给定最大长度
|
|
28
|
+
const maxLength = 820;
|
|
29
|
+
//给定最小长度
|
|
30
|
+
const minLength = 600
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
//随机的div样式
|
|
34
|
+
const randomFloor = (array) => {
|
|
35
|
+
for (let i = 0; i < 2; i++) {
|
|
36
|
+
const length = Math.floor(Math.random() * (maxLength - minLength + 1)) + minLength + gapWidth
|
|
37
|
+
GameContext.left.value += length
|
|
38
|
+
let top = shallowRef(0)
|
|
39
|
+
if (i !== 0) {
|
|
40
|
+
top.value = 500 - Math.floor(Math.random() * 180)
|
|
41
|
+
} else {
|
|
42
|
+
top.value = 500
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
array.value.push({ length: length, left: GameContext.left.value, top: top.value })
|
|
46
|
+
}
|
|
47
|
+
array.value.forEach((item, index) => {
|
|
48
|
+
if (index == 0) {
|
|
49
|
+
item.left = 0
|
|
50
|
+
} else {
|
|
51
|
+
item.left = array.value[index - 1].left + array.value[index - 1].length;
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
return array
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
randomFloor,
|
|
59
|
+
randomBg,
|
|
60
|
+
gapWidth
|
|
61
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* 音频 */
|
|
2
|
+
import { JsvSoundPool } from "jsview";
|
|
3
|
+
import jumpAudio from "../assets/audio/jump.mp3"
|
|
4
|
+
import failAudio from "../assets/audio/lose.mp3"
|
|
5
|
+
|
|
6
|
+
class Sound {
|
|
7
|
+
initSound() {
|
|
8
|
+
this.soundPool = new JsvSoundPool(10);
|
|
9
|
+
this.soundPool.request(
|
|
10
|
+
`url(${jumpAudio})`,
|
|
11
|
+
null,
|
|
12
|
+
1,
|
|
13
|
+
(state, audioController) => {
|
|
14
|
+
console.log("load jump audio ", state)
|
|
15
|
+
if (state === 0) {
|
|
16
|
+
Sound._AudioController1 = audioController;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
this.soundPool.request(
|
|
21
|
+
`url(${failAudio})`,
|
|
22
|
+
null,
|
|
23
|
+
1,
|
|
24
|
+
(state, audioController) => {
|
|
25
|
+
console.log("load fail audio ", state)
|
|
26
|
+
if (state === 0) {
|
|
27
|
+
Sound._AudioController2 = audioController;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
playJumpSound() {
|
|
34
|
+
if (Sound._AudioController1) {
|
|
35
|
+
Sound._AudioController1.play();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
playFailSound() {
|
|
40
|
+
if (Sound._AudioController2) {
|
|
41
|
+
Sound._AudioController2.play();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
destroy () {
|
|
46
|
+
this.soundPool.destroy()
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
export default Sound ;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
app_data文件夹用来记录APP的设定信息,包括APP的全球唯一标识,签名信息
|
|
2
|
+
|
|
3
|
+
1. 全球唯一标识AppName设定方法:
|
|
4
|
+
修改app.config.js文件中的AppName信息,一般命名方法为 domain/子应用名
|
|
5
|
+
|
|
6
|
+
2. 签名信息,使用RSA签名,设定方法:
|
|
7
|
+
使用在线生成工具生成RSA钥匙对,例如 http://www.metools.info/code/c80.html
|
|
8
|
+
注意选择设定信息有三点要注意:
|
|
9
|
+
A. 秘钥长度固定为 2048 bit
|
|
10
|
+
B. 秘钥格式固定为 PKCS#8
|
|
11
|
+
(生成出的公钥以 -----BEGIN PUBLIC KEY----- 开头,而非 -----BEGIN RSA PUBLIC KEY-----)
|
|
12
|
+
C. 密码不要设置
|
|
13
|
+
将生成的公钥复制粘贴到文件app_sign_public_key.pem中,内容可以参照 app_sign_public_key_sample.pem 文件
|
|
14
|
+
同理,将私钥复制粘贴到文件app_sign_private_key.crt中
|
|
15
|
+
|
|
16
|
+
JsView签名原理说明:
|
|
17
|
+
在进行js build时,会将 main.jsv.xxxx.js (包含AppName具体值)文件的md5值用私钥进行编码,编码出的内容和公钥一起写入到该文件的文件头中,JsView加载后用公钥反编码出该md5值,和文件的md5进行比对,若md5一致则认为此公钥合法,然后此公钥会和AppName进行映射,作为设定快捷访问地址等权限控制的调用作为参考,以防止其他APP对本APP(以AppName为查询键)的私有内容进行非法访问和破坏。
|
|
18
|
+
|
|
19
|
+
注意: 私钥(app_sign_private_key.crt)不要被泄漏,私钥若泄漏,则其他APP可以伪装AppName,查询本APP的私有内容,覆盖本APP设定的快捷访问地址。
|
|
20
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyAMjq7vLF45SQ
|
|
3
|
+
Xk3KtelbgEOR57okn2vFXMRa9lrHEkfP72YPnP7INHxMQ8pWIEx8nfhOTjCQbzAN
|
|
4
|
+
5omUxjJizNsqcgfKldLgdwQAUENozMSsxWiteMyjvH0aX5X0vbpSOykUnkg/UROG
|
|
5
|
+
vCyIj1buylww8FAMA4TamxfivOCLmQU7qlZNq7bZ/ZOYsdvAYRfd5Ey0Si8kgsk8
|
|
6
|
+
/I9halBymQeVylBB+qY5d4L0IVLjcjbc9y9tU0+o4NoqFfkKCFQaSNXqYVey9yCG
|
|
7
|
+
eHtpx9XT+SNDzvFTbGQaAVyoYSKjshQk58u1yn9kRp0t7rUvRfAQh6ocKBlPMucP
|
|
8
|
+
x4zTv8PPAgMBAAECggEAJzhVDK6pf0Cts0GUEl4SlL6mJLfSI8+ch1fxS7mMNuCo
|
|
9
|
+
QgCVlEsbODGYUZV+N4vWTn7f/yDrQme9RtLM7aLd5zcL80Y8wT5RwHN4xjjpIWY8
|
|
10
|
+
z3SPo+lB7bHSPsVg3RQQwZ2XZ5uYf5r1mnJLvasXlHWx6naIrJz54NDbanIDZ75p
|
|
11
|
+
YMvN/JIF4CQR58CNsPI3I8Ww5hnCSAynKlJy6qOf+C0XYxTRUs4TkZFa851a3E1q
|
|
12
|
+
4E8HMCvt4BZiGfyvLyS6+2pDevY9gcym1yIYwhcIRviD8S1hGpGPcmHbbt7Sj70Y
|
|
13
|
+
hr4oqbgxhlpQl9y2iUZ4VSKN3f1eU2O5Qufsn2cpQQKBgQDgZ2o+W5AIThqepzkK
|
|
14
|
+
+ExiXXVkHmSAtne5uLEz8SU/xwc0c0j9sOUlmpCvgn+aKbQO8MModAblPgo2QvI1
|
|
15
|
+
YTnX/V+TBm/4mBmCq+F7i0z2ZrexGO6CSbe8lVSBy/sAbzNMeK6fPnS0aO4ZWjYS
|
|
16
|
+
SDQ8/FAbxsHjUo2u5UDHJBj+JQKBgQDLENxo7EsCVB0R80WpL1VhkzXz3VTeMaSs
|
|
17
|
+
rj81eu7Ji/55Eh7QzPI3TUNcFAUHRN8THT320dCiXkg0s/YTKD2j9s7mnAFjyNnG
|
|
18
|
+
oiAmOvSpSKZgRGHh63LzwIDtSSQoeJQw+6ujvvF2elsWJ7s3t1N6tZD/E9E291yF
|
|
19
|
+
WFDixdn14wKBgQCQV5TMVYMZBHw07uVPPBWN9AWth6sn67apPLam7YcDNhdZUopx
|
|
20
|
+
vFY40OoeKre/RvHt5knx/GfvDu/spTU8xrQ5TV4rqSle4x8NoVehayHvIHUpshrA
|
|
21
|
+
rYBFClzYPIfQaLa7iqjv/3F8Fj6JCjDbo5wOWlGA/GD8wr4l8IqxTXPSDQKBgQCr
|
|
22
|
+
rmWqj5wbK+In+vU6RLp69Gr48nd+I5qGJAtsu7KG08UhtyA2iA+AkeIRRxu5OZEg
|
|
23
|
+
J+jrdBhgLjX92OiC6dKzfUcP0XWbV4RHW2qy58VSGgoP+cCHsPhO/MID24KmdMtV
|
|
24
|
+
XnGOzzB2apv37z9pq6T4aelcvvRy9E9UrYY1M/FC4QKBgA7CryIz/+Ps7zrn50BN
|
|
25
|
+
TM3wsqomVe2sKj6OIE7f7SLdmA4cAco+xoXBExLxP7aqgrBj4B/7ovloF6edsGMI
|
|
26
|
+
RF8yP8OceBIruFEKwUh4m0uoWshLJVnjk0iU+X8OD5lUCRhEZ6zO6svt5HTP1d+o
|
|
27
|
+
XcUVzSIc3bxXpKmwXAfLKVED
|
|
28
|
+
-----END PRIVATE KEY-----
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
-----BEGIN PUBLIC KEY-----
|
|
2
|
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsgDI6u7yxeOUkF5NyrXp
|
|
3
|
+
W4BDkee6JJ9rxVzEWvZaxxJHz+9mD5z+yDR8TEPKViBMfJ34Tk4wkG8wDeaJlMYy
|
|
4
|
+
YszbKnIHypXS4HcEAFBDaMzErMVorXjMo7x9Gl+V9L26UjspFJ5IP1EThrwsiI9W
|
|
5
|
+
7spcMPBQDAOE2psX4rzgi5kFO6pWTau22f2TmLHbwGEX3eRMtEovJILJPPyPYWpQ
|
|
6
|
+
cpkHlcpQQfqmOXeC9CFS43I23PcvbVNPqODaKhX5CghUGkjV6mFXsvcghnh7acfV
|
|
7
|
+
0/kjQ87xU2xkGgFcqGEio7IUJOfLtcp/ZEadLe61L0XwEIeqHCgZTzLnD8eM07/D
|
|
8
|
+
zwIDAQAB
|
|
9
|
+
-----END PUBLIC KEY-----
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
jsviewConfig: {
|
|
3
|
+
// (可选配置)remote loader
|
|
4
|
+
remoteLoader: null,
|
|
5
|
+
|
|
6
|
+
// (可选配置)localStorage支持
|
|
7
|
+
// presetKeys为预置key,可以直接使用localStorage.xxx的形式,避免undefined错误
|
|
8
|
+
localStorage: {
|
|
9
|
+
domain: null, // 默认自动使用app.config.mjs的AppName作为domain, 可以设置为其他值
|
|
10
|
+
presetKeys: [
|
|
11
|
+
'value1',
|
|
12
|
+
'value3'
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
cookies: {
|
|
17
|
+
domain: '' // 当非null非空时,激活cookie功能,使ajax请求时自动带上cookies,并且document.cookie的get/set可用
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
// (可选配置)填写main.js或者bundle.js相对于index.html的相对位置,
|
|
21
|
+
// 用于image/import.then的相对寻址, vue3默认值是/js/
|
|
22
|
+
jsSubPath: '/js/'
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
vendorConfig: {
|
|
26
|
+
// (可选配置)设置屏幕坐标映射值,screenWidth为屏幕画布定义的宽度,displayScale为清晰度,
|
|
27
|
+
// 默认值是画布宽度1280px, 清晰度为1.0
|
|
28
|
+
designedMap: {
|
|
29
|
+
screenWidth: 1280,
|
|
30
|
+
displayScale: 1.5
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
// (可选配置)按键接受的扩展,例如将静音按键(JAVA键值为164)映射为JS键值20001,
|
|
34
|
+
// PS:注意'164'的引号
|
|
35
|
+
bindKeys: {
|
|
36
|
+
keys: {
|
|
37
|
+
164: 20001
|
|
38
|
+
},
|
|
39
|
+
syncKeys: {
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{"frames": [
|
|
2
|
+
|
|
3
|
+
{
|
|
4
|
+
"filename": "1.png",
|
|
5
|
+
"frame": {"x":0,"y":0,"w":154,"h":112},
|
|
6
|
+
"rotated": false,
|
|
7
|
+
"trimmed": false,
|
|
8
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
9
|
+
"sourceSize": {"w":154,"h":112}
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"filename": "2.png",
|
|
13
|
+
"frame": {"x":154,"y":0,"w":154,"h":112},
|
|
14
|
+
"rotated": false,
|
|
15
|
+
"trimmed": false,
|
|
16
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
17
|
+
"sourceSize": {"w":154,"h":112}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"filename": "3.png",
|
|
21
|
+
"frame": {"x":0,"y":112,"w":154,"h":112},
|
|
22
|
+
"rotated": false,
|
|
23
|
+
"trimmed": false,
|
|
24
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
25
|
+
"sourceSize": {"w":154,"h":112}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"filename": "4.png",
|
|
29
|
+
"frame": {"x":154,"y":112,"w":154,"h":112},
|
|
30
|
+
"rotated": false,
|
|
31
|
+
"trimmed": false,
|
|
32
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
33
|
+
"sourceSize": {"w":154,"h":112}
|
|
34
|
+
}],
|
|
35
|
+
"meta": {
|
|
36
|
+
"app": "http://www.texturepacker.com",
|
|
37
|
+
"version": "1.0",
|
|
38
|
+
"image": "fail.png",
|
|
39
|
+
"format": "RGBA8888",
|
|
40
|
+
"size": {"w":308,"h":224},
|
|
41
|
+
"scale": "1",
|
|
42
|
+
"smartupdate": "$TexturePacker:SmartUpdate:44519538b3a9873cd0d16979a0037991$"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{"frames": [
|
|
2
|
+
|
|
3
|
+
{
|
|
4
|
+
"filename": "5.png",
|
|
5
|
+
"frame": {"x":0,"y":0,"w":154,"h":112},
|
|
6
|
+
"rotated": false,
|
|
7
|
+
"trimmed": false,
|
|
8
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
9
|
+
"sourceSize": {"w":154,"h":112}
|
|
10
|
+
}],
|
|
11
|
+
"meta": {
|
|
12
|
+
"app": "http://www.texturepacker.com",
|
|
13
|
+
"version": "1.0",
|
|
14
|
+
"image": "jump_down.png",
|
|
15
|
+
"format": "RGBA8888",
|
|
16
|
+
"size": {"w":154,"h":112},
|
|
17
|
+
"scale": "1",
|
|
18
|
+
"smartupdate": "$TexturePacker:SmartUpdate:9728b77a05eee5f78b6fb375d523d989$"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{"frames": [
|
|
2
|
+
|
|
3
|
+
{
|
|
4
|
+
"filename": "1.png",
|
|
5
|
+
"frame": {"x":0,"y":0,"w":154,"h":112},
|
|
6
|
+
"rotated": false,
|
|
7
|
+
"trimmed": false,
|
|
8
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
9
|
+
"sourceSize": {"w":154,"h":112}
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"filename": "2.png",
|
|
13
|
+
"frame": {"x":154,"y":0,"w":154,"h":112},
|
|
14
|
+
"rotated": false,
|
|
15
|
+
"trimmed": false,
|
|
16
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
17
|
+
"sourceSize": {"w":154,"h":112}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"filename": "3.png",
|
|
21
|
+
"frame": {"x":0,"y":112,"w":154,"h":112},
|
|
22
|
+
"rotated": false,
|
|
23
|
+
"trimmed": false,
|
|
24
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
25
|
+
"sourceSize": {"w":154,"h":112}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"filename": "4.png",
|
|
29
|
+
"frame": {"x":154,"y":112,"w":154,"h":112},
|
|
30
|
+
"rotated": false,
|
|
31
|
+
"trimmed": false,
|
|
32
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
33
|
+
"sourceSize": {"w":154,"h":112}
|
|
34
|
+
}],
|
|
35
|
+
"meta": {
|
|
36
|
+
"app": "http://www.texturepacker.com",
|
|
37
|
+
"version": "1.0",
|
|
38
|
+
"image": "jump_up.png",
|
|
39
|
+
"format": "RGBA8888",
|
|
40
|
+
"size": {"w":308,"h":224},
|
|
41
|
+
"scale": "1",
|
|
42
|
+
"smartupdate": "$TexturePacker:SmartUpdate:5c6da59e8456caf422003adf18575284$"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{"frames": [
|
|
2
|
+
|
|
3
|
+
{
|
|
4
|
+
"filename": "1.png",
|
|
5
|
+
"frame": {"x":0,"y":0,"w":154,"h":112},
|
|
6
|
+
"rotated": false,
|
|
7
|
+
"trimmed": false,
|
|
8
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
9
|
+
"sourceSize": {"w":154,"h":112}
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"filename": "2.png",
|
|
13
|
+
"frame": {"x":154,"y":0,"w":154,"h":112},
|
|
14
|
+
"rotated": false,
|
|
15
|
+
"trimmed": false,
|
|
16
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
17
|
+
"sourceSize": {"w":154,"h":112}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"filename": "3.png",
|
|
21
|
+
"frame": {"x":0,"y":112,"w":154,"h":112},
|
|
22
|
+
"rotated": false,
|
|
23
|
+
"trimmed": false,
|
|
24
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
25
|
+
"sourceSize": {"w":154,"h":112}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"filename": "4.png",
|
|
29
|
+
"frame": {"x":154,"y":112,"w":154,"h":112},
|
|
30
|
+
"rotated": false,
|
|
31
|
+
"trimmed": false,
|
|
32
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
33
|
+
"sourceSize": {"w":154,"h":112}
|
|
34
|
+
}],
|
|
35
|
+
"meta": {
|
|
36
|
+
"app": "http://www.texturepacker.com",
|
|
37
|
+
"version": "1.0",
|
|
38
|
+
"image": "roll.png",
|
|
39
|
+
"format": "RGBA8888",
|
|
40
|
+
"size": {"w":308,"h":224},
|
|
41
|
+
"scale": "1",
|
|
42
|
+
"smartupdate": "$TexturePacker:SmartUpdate:6a43ab2eec0ad9894ba8d16f6312c57d$"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{"frames": [
|
|
2
|
+
|
|
3
|
+
{
|
|
4
|
+
"filename": "1.png",
|
|
5
|
+
"frame": {"x":0,"y":0,"w":154,"h":112},
|
|
6
|
+
"rotated": false,
|
|
7
|
+
"trimmed": false,
|
|
8
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
9
|
+
"sourceSize": {"w":154,"h":112}
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"filename": "2.png",
|
|
13
|
+
"frame": {"x":154,"y":0,"w":154,"h":112},
|
|
14
|
+
"rotated": false,
|
|
15
|
+
"trimmed": false,
|
|
16
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
17
|
+
"sourceSize": {"w":154,"h":112}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"filename": "3.png",
|
|
21
|
+
"frame": {"x":308,"y":0,"w":154,"h":112},
|
|
22
|
+
"rotated": false,
|
|
23
|
+
"trimmed": false,
|
|
24
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
25
|
+
"sourceSize": {"w":154,"h":112}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"filename": "4.png",
|
|
29
|
+
"frame": {"x":0,"y":112,"w":154,"h":112},
|
|
30
|
+
"rotated": false,
|
|
31
|
+
"trimmed": false,
|
|
32
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
33
|
+
"sourceSize": {"w":154,"h":112}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"filename": "5.png",
|
|
37
|
+
"frame": {"x":154,"y":112,"w":154,"h":112},
|
|
38
|
+
"rotated": false,
|
|
39
|
+
"trimmed": false,
|
|
40
|
+
"spriteSourceSize": {"x":0,"y":0,"w":154,"h":112},
|
|
41
|
+
"sourceSize": {"w":154,"h":112}
|
|
42
|
+
}],
|
|
43
|
+
"meta": {
|
|
44
|
+
"app": "http://www.texturepacker.com",
|
|
45
|
+
"version": "1.0",
|
|
46
|
+
"image": "run.png",
|
|
47
|
+
"format": "RGBA8888",
|
|
48
|
+
"size": {"w":462,"h":224},
|
|
49
|
+
"scale": "1",
|
|
50
|
+
"smartupdate": "$TexturePacker:SmartUpdate:444a5be59b33f66d1f4dacf466c293fd$"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
Binary file
|