Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zeroing-libs
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
劳工
zeroing-libs
Commits
1b305156
Commit
1b305156
authored
Sep 16, 2020
by
lujinlei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
-a
parent
7de6de9a
Changes
19
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1453 additions
and
13 deletions
+1453
-13
rockji-new.json
dist/customs/rockji-new.json
+140
-0
rockji.json
dist/customs/rockji.json
+18
-2
app.js
src/custom/rockji-new/debug/app.js
+136
-0
index.html
src/custom/rockji-new/debug/index.html
+52
-0
load-assets.js
src/custom/rockji-new/debug/load-assets.js
+64
-0
main.js
src/custom/rockji-new/debug/main.js
+260
-0
main.js.map
src/custom/rockji-new/debug/main.js.map
+1
-0
props.js
src/custom/rockji-new/debug/props.js
+7
-0
meta.json
src/custom/rockji-new/meta.json
+137
-0
GameView.ts
src/custom/rockji-new/src/game/GameView.ts
+370
-0
GameWrapper.ts
src/custom/rockji-new/src/game/GameWrapper.ts
+65
-0
Goods.ts
src/custom/rockji-new/src/game/Goods.ts
+97
-0
object-pool-init.ts
src/custom/rockji-new/src/game/object-pool-init.ts
+14
-0
utils.ts
src/custom/rockji-new/src/game/utils.ts
+20
-0
index.ts
src/custom/rockji-new/src/index.ts
+14
-0
props.ts
src/custom/rockji-new/src/props.ts
+15
-0
main.js
src/custom/rockji/debug/main.js
+25
-9
main.js.map
src/custom/rockji/debug/main.js.map
+1
-1
meta.json
src/custom/rockji/meta.json
+17
-1
No files found.
dist/customs/rockji-new.json
0 → 100644
View file @
1b305156
This diff is collapsed.
Click to expand it.
dist/customs/rockji.json
View file @
1b305156
This diff is collapsed.
Click to expand it.
src/custom/rockji-new/debug/app.js
0 → 100644
View file @
1b305156
/**
* Created by renjianfeng on 2020-03-13.
*/
const
customId
=
'rockji-new'
;
(
async
function
()
{
let
customModule
=
await
fetch
(
`../meta.json`
);
customModule
=
await
customModule
.
json
();
console
.
log
(
customModule
);
await
loadAssets
(
customModule
.
assets
);
launchWithCustomModule
(
customModule
);
})();
function
launchWithCustomModule
(
customModule
)
{
//engine.registerCustomCodeModule(customModule);
engine
.
registerCustomModule
(
customId
,
window
[
customId
]);
const
{
props
:
propsOption
,
assets
}
=
customModule
;
let
props
=
engine
.
computeProps
(
customModuleProps
,
propsOption
);
const
customModuleIns
=
{
id
:
customId
,
props
,
assets
,
};
engine
.
registerCustomModules
([
customModuleIns
]);
engine
.
launchWithConfig
({
options
:
{
entrySceneView
:
'entry'
,
},
assets
:
[],
views
:
[{
name
:
'entry'
,
type
:
'node'
,
properties
:
{
x
:
0
,
y
:
0
,
}
}],
customs
:
[]
},
null
,
function
()
{
setTimeout
(()
=>
{
engine
.
addCustomModule
(
customId
,
engine
.
gameStage
.
sceneContainer
.
getChildAt
(
0
));
engine
.
globalEvent
.
dispatchEvent
(
'rock-info'
,
{
prizes
:
[
{
"icon"
:
"//yun.duiba.com.cn/polaris/odzr8wuh7y.3417f09f476bd948682b54ec13018796a63aa15f.jpeg"
,
"id"
:
"o58df634f"
,
"index"
:
1
,
"name"
:
"一等奖"
,
"prizeId"
:
"sss_3"
,
"prizeType"
:
2
,
"refId"
:
"49781"
,
"refType"
:
"virtual"
},
{
"icon"
:
"//yun.duiba.com.cn/polaris/o0shhpxtoy.22951ab8ac8975c1c08ba7933caa21fe2d629806.jpg"
,
"id"
:
"o4a578392"
,
"index"
:
2
,
"name"
:
"二等奖"
,
"prizeId"
:
"sss_2"
,
"prizeType"
:
2
,
"refId"
:
"49780"
,
"refType"
:
"virtual"
},
{
"icon"
:
"//yun.duiba.com.cn/polaris/xnjwcjf5ip.b7e68855228ddc5ef86bed1fefe63e7b1a65ebdf.jpeg"
,
"id"
:
"o26efbbeb"
,
"index"
:
3
,
"name"
:
"三等奖"
,
"prizeId"
:
"sss_1"
,
"prizeType"
:
2
,
"refId"
:
"49779"
,
"refType"
:
"virtual"
},
{
"icon"
:
"//yun.duiba.com.cn/polaris/u9vmvsvdeb.ebd3ca0774faddbf7220feca9eba30dfda1a343a.jpg"
,
"id"
:
"o26efbbeb"
,
"index"
:
3
,
"name"
:
"三等奖"
,
"prizeId"
:
"sss_4"
,
"prizeType"
:
2
,
"refId"
:
"49779"
,
"refType"
:
"virtual"
},
{
"icon"
:
"//yun.duiba.com.cn/polaris/v6uikiq60u.cbf7c5a21b83079aa3ea2a4fd41e7234fb8578a4.jpg"
,
"id"
:
"o26efbbeb"
,
"index"
:
3
,
"name"
:
"三等奖"
,
"prizeId"
:
"sss_5"
,
"prizeType"
:
2
,
"refId"
:
"49779"
,
"refType"
:
"virtual"
},
{
"icon"
:
"//yun.duiba.com.cn/polaris/10元话费.a34ae4a9411cfd82065fa366f8c3e3ec7a897fed.png"
,
"id"
:
"o26efbbeb"
,
"index"
:
3
,
"name"
:
"三等奖"
,
"prizeId"
:
"sss_6"
,
"prizeType"
:
2
,
"refId"
:
"49779"
,
"refType"
:
"virtual"
}]
});
},
100
);
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'rock-start'
,
{
prizeId
:
"sss_2"
});
},
5000
);
});
engine
.
globalEvent
.
addEventListener
(
'food-fell-time-update'
,
(
e
)
=>
{
console
.
log
(
e
.
type
,
e
.
data
);
});
engine
.
globalEvent
.
addEventListener
(
'food-fell-score-update'
,
(
e
)
=>
{
console
.
log
(
e
.
type
,
e
.
data
);
});
engine
.
globalEvent
.
addEventListener
(
'food-fell-game-over'
,
(
e
)
=>
{
console
.
log
(
e
.
type
,
e
.
data
);
});
}
function
getAssetByUUID
(
uuid
)
{
return
engine
.
resolveCustomAsset
(
customId
,
uuid
);
}
function
getProps
()
{
return
engine
.
getProps
(
customId
);
}
src/custom/rockji-new/debug/index.html
0 → 100644
View file @
1b305156
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
摇奖机
</title>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"
/>
<meta
name=
"apple-mobile-web-app-capable"
content=
"yes"
/>
<meta
name=
"full-screen"
content=
"true"
/>
<meta
name=
"screen-orientation"
content=
"portrait"
/>
<meta
name=
"x5-fullscreen"
content=
"true"
/>
<meta
name=
"360-fullscreen"
content=
"true"
/>
<style>
html
,
body
{
padding
:
0
;
margin
:
0
;
border
:
0
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
position
:
absolute
;
background-color
:
white
;
}
.game-container
{
width
:
100%
;
height
:
100%
;
line-height
:
0
;
font-size
:
0
;
}
</style>
</head>
<body>
<div
id=
"game-container"
class=
"game-container"
></div>
<!-- <script crossorigin="anonymous" src="//yun.duiba.com.cn/editor/zeroing/libs/engine.50cdcef6ebe4e8c0fbc624f9d4fbf225102c5750.js"></script> -->
<script
crossorigin=
"anonymous"
src=
"//yun.duiba.com.cn/editor/zeroing/libs/engine.fbc60c6d3cb30e5ab97e82d392d9efeee91b8581.js"
></script>
<script
crossorigin=
"anonymous"
src=
"//yun.duiba.com.cn/editor/zeroing/libs/svga.fd3923ae6e664251ca7981801a65809cc5f36bc3.js"
></script>
<!-- <script src="//yun.duiba.com.cn/editor/zeroing/libs/engine.ebc906f6b50b8da0a669f77027981d5f3cb560ce.js"></script> -->
<!-- <script src="http://localhost:4002/debug/engine.js"></script>
<script src="http://localhost:4003/debug/engine-svga.js"></script> -->
<!--<script src="//yun.duiba.com.cn/editor/zeroing/libs/engine.9a9dbfda4cb2dd5508ecddfe3d95dfd88063f7b5.js"></script>-->
<script
src=
"app.js"
></script>
<script
src=
"props.js"
></script>
<script
src=
"load-assets.js"
></script>
<script
src=
"main.js"
></script>
<script>
</script>
</body>
\ No newline at end of file
src/custom/rockji-new/debug/load-assets.js
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2020-01-21.
*/
const
assets
=
[
{
"name"
:
"雨滴0"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/badb3627bbcc75276a3eed53daa8b0a454ced6eb.png"
,
"uuid"
:
"d3ce99da-89e1-447d-8c52-b3f391925c3c"
,
"ext"
:
".png"
},
{
"name"
:
"雨滴1"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/5cc0092913c571eeb52317b8e1e0dc715793049c.png"
,
"uuid"
:
"02f17008-1d8d-4108-a0fc-03fbc71fd118"
,
"ext"
:
".png"
},
{
"name"
:
"雨滴2"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/4b938949b85d50b36ef0f66450643495efbf7580.png"
,
"uuid"
:
"46aa4f8a-9a6c-4210-8ffd-92da0dd3bc75"
,
"ext"
:
".png"
},
{
"name"
:
"炸弹"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/171e92283cd13c013ee1b76d28d252ff08815d47.png"
,
"uuid"
:
"eb88b42d-e151-4c1b-94b9-7c16f7bfac29"
,
"ext"
:
".png"
},
{
"name"
:
"石块"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/99b0af0c59fe79a415a3f032149cfacc27e3ac2c.png"
,
"uuid"
:
"ab1bdabc-21ba-46bf-9299-6c638f766c88"
,
"ext"
:
".png"
},
{
"name"
:
"水花"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/11b1f49fa3afa3a48f1dd3e3c1eb294e3fa9d886.svga"
,
"uuid"
:
"cdd2268f-ad65-4b5e-a965-ee61b730da21"
,
"ext"
:
".svga"
},
{
"name"
:
"石头svga"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/01aa6fcb33aa8231f075257026eab2f0aeb3c27a.svga"
,
"uuid"
:
"846a139d-0990-4db4-a323-f22379932ee4"
,
"ext"
:
".svga"
},
{
"name"
:
"炸弹svga"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/3b58e7ace031b09c651cf8e7202f9c86e86852c9.svga"
,
"uuid"
:
"d7a3947b-7fcb-48f2-9ddf-2f075d37a619"
,
"ext"
:
".svga"
},
{
"name"
:
"玩家"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/db0130d36ef79865be9c753ea0627027f16341d8.png"
,
"uuid"
:
"4931d296-4421-4a2f-8299-7bab87407c72"
,
"ext"
:
".png"
}
];
function
loadAssets
(
customModuleAssets
,
onProgress
,
onComplete
){
return
engine
.
loadAssets
(
assets
.
concat
(...
customModuleAssets
),
onProgress
,
onComplete
);
}
src/custom/rockji-new/debug/main.js
0 → 100644
View file @
1b305156
(
function
(
global
,
factory
)
{
typeof
exports
===
'object'
&&
typeof
module
!==
'undefined'
?
module
.
exports
=
factory
(
require
(
'tslib'
))
:
typeof
define
===
'function'
&&
define
.
amd
?
define
([
'tslib'
],
factory
)
:
(
global
=
global
||
self
,
global
[
'rockji-new'
]
=
factory
(
global
.
tslib
));
}(
this
,
(
function
(
tslib
)
{
'use strict'
;
var
props
=
{};
function
prepareProps
()
{
var
metaProps
=
getProps
();
engine
.
injectProp
(
props
,
metaProps
);
}
function
injectProps
(
p
)
{
engine
.
injectProp
(
props
,
p
);
}
//# sourceMappingURL=props.js.map
var
GameView
=
(
function
(
_super
)
{
tslib
.
__extends
(
GameView
,
_super
);
function
GameView
()
{
var
_this
=
_super
.
call
(
this
)
||
this
;
_this
.
textureCache
=
{};
_this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
_this
.
setup
,
_this
);
_this
.
prizeId
=
props
.
prizeId
;
_this
.
prizes
=
props
.
prizes
;
_this
.
countdown
=
150
;
_this
.
timeSpace
=
500
;
console
.
log
(
"props.prizes="
,
props
.
prizes
);
return
_this
;
}
GameView
.
prototype
.
setup
=
function
()
{
if
(
this
.
_hasSetup
)
{
return
;
}
this
.
_hasSetup
=
true
;
this
.
itemInfo
=
{};
this
.
mainContainer
=
new
engine
.
Container
();
this
.
viewContainer
=
new
engine
.
Container
();
this
.
addChild
(
this
.
viewContainer
);
this
.
viewContainer
.
width
=
props
.
viewWidth
;
this
.
viewContainer
.
height
=
props
.
viewHeight
;
this
.
bgImg
=
new
engine
.
Image
();
this
.
bgImg
.
source
=
engine
.
getAssetByName
(
"rock-背景"
).
url
;
this
.
viewContainer
.
addChild
(
this
.
bgImg
);
this
.
container0
=
new
engine
.
Container
();
this
.
container1
=
new
engine
.
Container
();
this
.
container2
=
new
engine
.
Container
();
this
.
mainContainer
.
addChild
(
this
.
container0
);
this
.
mainContainer
.
addChild
(
this
.
container1
);
this
.
mainContainer
.
addChild
(
this
.
container2
);
this
.
viewContainer
.
addChild
(
this
.
mainContainer
);
this
.
mainContainer
.
x
=
props
.
cOriginSizeX
;
this
.
mainContainer
.
y
=
props
.
cOriginSizeY
;
var
mask
=
new
engine
.
Rect
();
mask
.
x
=
props
.
cOriginSizeX
;
mask
.
y
=
props
.
cOriginSizeY
;
mask
.
fillColor
=
0xffff00
;
mask
.
width
=
props
.
maskSizeW
;
mask
.
height
=
props
.
maskSizeH
;
this
.
addChild
(
mask
);
this
.
mainContainer
.
mask
=
mask
;
if
(
this
.
prizes
.
length
>
3
)
{
this
.
createItem
(
2
);
this
.
prizeMaxH
=
this
.
prizes
.
length
*
(
props
.
boxImgSizeH
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
}
else
{
this
.
createItem
(
1
);
this
.
prizeMaxH
=
4
*
(
props
.
boxImgSizeH
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
}
this
.
orgY
=
-
(
this
.
prizeMaxH
-
props
.
maskSizeH
)
+
props
.
boxImgSizeH
*
0.5
;
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
this
[
'container'
+
i
].
x
=
i
*
(
props
.
cSpaceSizeX
*
2
+
props
.
boxImgSizeW
);
this
[
'container'
+
i
].
y
=
this
.
orgY
;
}
};
GameView
.
prototype
.
createItem
=
function
(
type
)
{
var
len
=
4
;
if
(
type
==
1
)
{
len
=
4
;
}
else
if
(
type
==
2
)
{
len
=
this
.
prizes
.
length
;
}
for
(
var
j
=
0
;
j
<
3
;
j
++
)
{
this
.
itemInfo
[
"items"
+
j
]
=
[];
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
var
url
=
this
.
prizes
[
i
%
this
.
prizes
.
length
].
icon
;
var
itemBox
=
new
engine
.
Image
();
itemBox
.
source
=
engine
.
getAssetByName
(
"奖品外框图"
).
url
;
itemBox
.
width
=
props
.
boxImgSizeW
;
itemBox
.
height
=
props
.
boxImgSizeH
;
itemBox
.
x
=
props
.
spaceSizeX
;
itemBox
.
y
=
props
.
spaceSizeY
+
i
*
(
props
.
boxImgSizeH
+
props
.
spaceSizeY
);
this
[
"container"
+
j
].
addChild
(
itemBox
);
var
item
=
new
engine
.
Sprite
();
item
.
texture
=
this
.
getTexture
(
url
);
this
.
itemInfo
[
"items"
+
j
][
i
]
=
item
;
item
.
width
=
props
.
imgSizeW
;
item
.
height
=
props
.
imgSizeH
;
item
.
x
=
(
itemBox
.
width
-
item
.
width
)
/
2
;
item
.
y
=
(
itemBox
.
height
-
item
.
height
)
/
2
;
itemBox
.
addChild
(
item
);
}
}
};
GameView
.
prototype
.
reset
=
function
()
{
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
this
[
"container"
+
i
].
y
=
this
.
orgY
;
}
};
GameView
.
prototype
.
start
=
function
()
{
var
_this
=
this
;
this
.
prizeId
=
props
.
prizeId
;
console
.
log
(
"this.prizeId="
,
this
.
prizeId
);
var
_loop_1
=
function
(
i
)
{
engine
.
Tween
.
removeTweens
(
this_1
[
"container"
+
i
]);
setTimeout
(
function
()
{
engine
.
Tween
.
get
(
_this
[
"container"
+
i
],
{
loop
:
true
}).
to
({
y
:
0
},
_this
.
countdown
).
call
(
function
()
{
_this
[
"container"
+
i
].
y
=
_this
.
orgY
;
});
},
this_1
.
timeSpace
*
i
);
};
var
this_1
=
this
;
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
_loop_1
(
i
);
}
setTimeout
(
function
()
{
var
_loop_2
=
function
(
i
)
{
setTimeout
(
function
()
{
_this
[
"container"
+
i
].
y
=
_this
.
orgY
;
engine
.
Tween
.
removeTweens
(
_this
[
"container"
+
i
]);
engine
.
Tween
.
get
(
_this
[
"container"
+
i
]).
to
({
y
:
-
(
props
.
boxImgSizeH
*
0.5
+
props
.
spaceSizeY
)
},
1500
);
},
_this
.
timeSpace
*
i
);
};
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
_loop_2
(
i
);
}
_this
.
setPrizePos
();
setTimeout
(
function
()
{
engine
.
globalEvent
.
dispatchEvent
(
'rock-gameover'
);
},
_this
.
timeSpace
*
2
+
2000
);
},
2500
);
};
GameView
.
prototype
.
setPrizePos
=
function
()
{
var
direct
=
Math
.
random
()
>
0.5
?
1
:
-
1
;
for
(
var
j
=
0
;
j
<
3
;
j
++
)
{
var
len
=
this
.
itemInfo
[
"items"
+
j
].
length
;
direct
*=
-
1
;
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
var
plen
=
this
.
prizes
.
length
;
if
(
direct
>
0
)
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTexture
(
this
.
prizes
[(
plen
-
1
)
-
(
i
%
plen
)].
icon
);
}
else
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTexture
(
this
.
prizes
[(
i
%
plen
)].
icon
);
}
}
}
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
var
p
=
this
.
itemInfo
[
"items"
+
i
][
1
].
parent
;
p
.
removeChild
(
this
.
itemInfo
[
"items"
+
i
][
1
]);
var
ix
=
this
.
itemInfo
[
"items"
+
i
][
1
].
x
;
var
iy
=
this
.
itemInfo
[
"items"
+
i
][
1
].
y
;
var
iw
=
this
.
itemInfo
[
"items"
+
i
][
1
].
width
;
var
ih
=
this
.
itemInfo
[
"items"
+
i
][
1
].
height
;
var
nItem
=
new
engine
.
Sprite
();
nItem
.
texture
=
this
.
getTexture
(
this
.
getPrizeUrl
(
this
.
prizeId
));
this
.
itemInfo
[
"items"
+
i
][
1
]
=
nItem
;
nItem
.
x
=
ix
;
nItem
.
y
=
iy
;
nItem
.
width
=
iw
;
nItem
.
height
=
ih
;
p
.
addChild
(
nItem
);
}
};
GameView
.
prototype
.
getPrizeUrl
=
function
(
pid
)
{
var
purl
=
""
;
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
if
(
this
.
prizes
[
i
].
prizeId
==
pid
)
{
return
this
.
prizes
[
i
].
icon
;
}
}
return
purl
;
};
GameView
.
prototype
.
pause
=
function
()
{
};
GameView
.
prototype
.
revive
=
function
()
{
};
GameView
.
prototype
.
resume
=
function
()
{
};
GameView
.
prototype
.
died
=
function
()
{
this
.
pause
();
};
GameView
.
prototype
.
getTexture
=
function
(
url
)
{
var
texture
=
this
.
textureCache
[
url
];
if
(
!
texture
)
{
texture
=
this
.
textureCache
[
url
]
=
engine
.
Texture
.
fromImage
(
url
);
}
return
texture
;
};
return
GameView
;
}(
engine
.
Container
));
//# sourceMappingURL=GameView.js.map
var
GameWrapper
=
(
function
(
_super
)
{
tslib
.
__extends
(
GameWrapper
,
_super
);
function
GameWrapper
()
{
var
_this
=
_super
.
call
(
this
)
||
this
;
engine
.
globalEvent
.
addEventListener
(
'rock-reset'
,
_this
.
reset
,
_this
);
engine
.
globalEvent
.
addEventListener
(
'rock-start'
,
_this
.
start
,
_this
);
engine
.
globalEvent
.
addEventListener
(
'rock-info'
,
_this
.
rinfo
,
_this
);
return
_this
;
}
GameWrapper
.
prototype
.
reset
=
function
(
event
)
{
injectProps
(
event
.
data
);
this
.
_gameView
.
visible
=
true
;
this
.
_gameView
.
reset
();
};
GameWrapper
.
prototype
.
start
=
function
(
event
)
{
injectProps
(
event
.
data
);
this
.
_status
=
1
;
this
.
_gameView
.
start
();
};
GameWrapper
.
prototype
.
rinfo
=
function
(
event
)
{
injectProps
(
event
.
data
);
console
.
log
(
"event="
,
event
);
console
.
log
(
"event.data = "
,
event
.
data
);
var
gameView
=
this
.
_gameView
=
new
GameView
();
this
.
addChild
(
gameView
);
};
GameWrapper
.
prototype
.
pause
=
function
()
{
this
.
_gameView
.
pause
();
};
GameWrapper
.
prototype
.
resume
=
function
()
{
this
.
_gameView
.
resume
();
};
GameWrapper
.
prototype
.
revive
=
function
()
{
this
.
_gameView
.
revive
();
};
GameWrapper
.
prototype
.
clear
=
function
()
{
this
.
_gameView
.
visible
=
false
;
};
GameWrapper
.
prototype
.
onTap
=
function
(
event
)
{
};
return
GameWrapper
;
}(
engine
.
Container
));
//# sourceMappingURL=GameWrapper.js.map
function
index
(
props
)
{
prepareProps
();
injectProps
(
props
);
var
instance
=
new
GameWrapper
();
return
instance
;
}
//# sourceMappingURL=index.js.map
return
index
;
})));
//# sourceMappingURL=main.js.map
\ No newline at end of file
src/custom/rockji-new/debug/main.js.map
0 → 100644
View file @
1b305156
This diff is collapsed.
Click to expand it.
src/custom/rockji-new/debug/props.js
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2020-01-21.
*/
let
customModuleProps
=
{
};
src/custom/rockji-new/meta.json
0 → 100644
View file @
1b305156
{
"name"
:
"摇奖机"
,
"desc"
:
"摇奖机"
,
"props"
:
{
"boxImgSizeW"
:{
"alias"
:
"奖品图片外框宽"
,
"type"
:
"number"
,
"default"
:
110
},
"boxImgSizeH"
:{
"alias"
:
"奖品图片外框高"
,
"type"
:
"number"
,
"default"
:
111
},
"imgSizeW"
:
{
"alias"
:
"奖品图片宽"
,
"type"
:
"number"
,
"default"
:
99
},
"imgSizeH"
:
{
"alias"
:
"奖品图片高"
,
"type"
:
"number"
,
"default"
:
99
},
"spaceSizeX"
:
{
"alias"
:
"奖品横向间隙"
,
"type"
:
"number"
,
"default"
:
15
},
"spaceSizeY"
:
{
"alias"
:
"奖品纵向间隙"
,
"type"
:
"number"
,
"default"
:
20
},
"cOriginSizeX"
:
{
"alias"
:
"遮罩左边顶点坐标"
,
"type"
:
"number"
,
"default"
:
22
},
"cOriginSizeY"
:
{
"alias"
:
"遮罩左边顶点坐标"
,
"type"
:
"number"
,
"default"
:
19
},
"cSpaceSizeX"
:
{
"alias"
:
"每列奖品容器的横向间隙"
,
"type"
:
"number"
,
"default"
:
23
},
"maskSizeW"
:
{
"alias"
:
"遮罩宽"
,
"type"
:
"number"
,
"default"
:
428
},
"maskSizeH"
:
{
"alias"
:
"遮罩高"
,
"type"
:
"number"
,
"default"
:
221
},
"viewWidth"
:
{
"alias"
:
"模块宽"
,
"type"
:
"number"
,
"default"
:
472
},
"viewHeight"
:
{
"alias"
:
"模块高"
,
"type"
:
"number"
,
"default"
:
256
}
},
"assets"
:
[
{
"name"
:
"rock-背景"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png"
,
"uuid"
:
"7baa74f5-e057-4fd3-846f-f58ff7a92c3d"
,
"ext"
:
".png"
},
{
"name"
:
"奖品外框图"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/bee4c8c7fba8a83b18d3e43921118421f73f389d.png"
,
"uuid"
:
"80036ef2-d070-469b-afd0-54d8296cfbe9"
,
"ext"
:
".png"
}
],
"events"
:
{
"in"
:
{
"rock-info"
:
{
"alias"
:
"初始化进入页面调用"
,
"data"
:
[{
"icon"
:
"//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png"
,
"id"
:
"o58df634f"
,
"index"
:
1
,
"name"
:
"一等奖"
,
"prizeId"
:
"sss_3"
,
"prizeType"
:
2
,
"refId"
:
"49781"
,
"refType"
:
"virtual"
},
{
"icon"
:
"//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png"
,
"id"
:
"o4a578392"
,
"index"
:
2
,
"name"
:
"二等奖"
,
"prizeId"
:
"sss_2"
,
"prizeType"
:
2
,
"refId"
:
"49780"
,
"refType"
:
"virtual"
},
{
"icon"
:
"//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png"
,
"id"
:
"o26efbbeb"
,
"index"
:
3
,
"name"
:
"三等奖"
,
"prizeId"
:
"sss_1"
,
"prizeType"
:
2
,
"refId"
:
"49779"
,
"refType"
:
"virtual"
}]
},
"rock-start"
:
{
"alias"
:
"开始摇奖,透传中奖id"
,
"data"
:{
"prizeId"
:
"sss_3"
}
},
"rock-reset"
:
{
"alias"
:
"关闭中奖弹窗时调用"
}
},
"out"
:
{
"rock-gameover"
:
{
"alias"
:
"摇奖机停止是派发"
}
}
}
}
\ No newline at end of file
src/custom/rockji-new/src/game/GameView.ts
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2018/8/16.
*/
import
{
props
}
from
"../props"
;
import
{
playSound
,
createSvga
}
from
"./utils"
;
import
ObjectPool
=
engine
.
ObjectPool
;
import
{
getTextureByName
}
from
"./utils"
;
import
{
Goods
}
from
"./Goods"
;
import
{
PoolName
}
from
"./object-pool-init"
;
export
default
class
GameView
extends
engine
.
Container
{
private
_hasSetup
;
//玩家
private
player
:
engine
.
Container
;
//触摸层
// private rectBg: engine.Rect;
private
rectBg
:
engine
.
Container
;
//npc层
private
NpcBg
:
engine
.
Container
;
//倒计时
private
countdown
:
number
;
//每列滚动时间间隔
private
timeSpace
:
number
;
private
prizes
;
private
bgImg
:
engine
.
Image
;
private
bgImgUrl
:
string
;
private
itemInfo
:
any
;
private
prizeMaxH
:
number
;
private
orgY
:
number
;
private
prizeId
:
string
;
private
container0
:
engine
.
Container
;
private
container1
:
engine
.
Container
;
private
container2
:
engine
.
Container
;
private
mainContainer
:
engine
.
Container
;
private
viewContainer
:
engine
.
Container
;
private
configInfo
:
any
;
private
textureCache
=
{};
constructor
()
{
super
();
this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
this
.
setup
,
this
);
// this.configInfo = {
// prizes:[
// {type:0, url:'//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png'},
// {type:1, url:'//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png'},
// {type:2, url:'//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png'}
// ],//奖品链接列表
// bgImgUrl:'//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png',
// imgSize:{w:99,h:103},//奖品尺寸
// spaceSize:{x:20, y:20},//奖品横向和纵向间隙
// cOriginSize:{x:22, y:19},//遮罩左边定点位置
// cSpaceSize:{x:23, y:0},//每列奖品的间隙
// }
// this.bgImgUrl = '//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png';
// this.maskSize = {w:428, h:221};
// this.imgSize = {w:99,h:103};
// this.spaceSize = {x:20, y:20};
// // this.originSize = {x:0, y:0}
// this.cOriginSize = {x:22, y:19};//遮罩的初始坐标
// this.cSpaceSize = {x:23, y:0};//奖品容器横向纵向的边距
// this.prizes = [
// {
// "icon":"//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png",
// "id":"o58df634f",
// "index":1,
// "name":"一等奖",
// "prizeId":"sss_3",
// "prizeType":2,
// "refId":"49781",
// "refType":"virtual"
// },
// {
// "icon":"//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png",
// "id":"o4a578392",
// "index":2,
// "name":"二等奖",
// "prizeId":"sss_2",
// "prizeType":2,
// "refId":"49780",
// "refType":"virtual"
// },
// {
// "icon":"//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png",
// "id":"o26efbbeb",
// "index":3,
// "name":"三等奖",
// "prizeId":"sss_1",
// "prizeType":2,
// "refId":"49779",
// "refType":"virtual"
// }];
this
.
prizeId
=
props
.
prizeId
;
this
.
prizes
=
props
.
prizes
;
this
.
countdown
=
150
;
this
.
timeSpace
=
500
;
console
.
log
(
"props.prizes="
,
props
.
prizes
);
}
private
waterSvga
private
stoneSvga
private
boomSvga
private
playerSvga
setup
()
{
if
(
this
.
_hasSetup
)
{
return
;
}
this
.
_hasSetup
=
true
;
this
.
itemInfo
=
{};
// this.bgImg = new engine.Image();
// this.bgImg.source = this.bgImgUrl;
this
.
mainContainer
=
new
engine
.
Container
();
this
.
viewContainer
=
new
engine
.
Container
();
this
.
addChild
(
this
.
viewContainer
);
this
.
viewContainer
.
width
=
props
.
viewWidth
;
this
.
viewContainer
.
height
=
props
.
viewHeight
;
//this.bgImg = new engine.Image(getTextureByName('rock-背景'));
this
.
bgImg
=
new
engine
.
Image
();
this
.
bgImg
.
source
=
engine
.
getAssetByName
(
"rock-背景"
).
url
;
this
.
viewContainer
.
addChild
(
this
.
bgImg
);
this
.
container0
=
new
engine
.
Container
();
this
.
container1
=
new
engine
.
Container
();
this
.
container2
=
new
engine
.
Container
();
this
.
mainContainer
.
addChild
(
this
.
container0
);
this
.
mainContainer
.
addChild
(
this
.
container1
);
this
.
mainContainer
.
addChild
(
this
.
container2
);
this
.
viewContainer
.
addChild
(
this
.
mainContainer
);
this
.
mainContainer
.
x
=
props
.
cOriginSizeX
;
this
.
mainContainer
.
y
=
props
.
cOriginSizeY
;
let
mask
=
new
engine
.
Rect
();
mask
.
x
=
props
.
cOriginSizeX
;
mask
.
y
=
props
.
cOriginSizeY
;
mask
.
fillColor
=
0xffff00
;
mask
.
width
=
props
.
maskSizeW
;
mask
.
height
=
props
.
maskSizeH
;
this
.
addChild
(
mask
);
this
.
mainContainer
.
mask
=
mask
;
// this.container0.width = 140;
// this.container0.height = 221;
// this.container1.width = 140()
// this.container1.height = 221;
// this.container2.width = 140;
// this.container2.height = 221;
if
(
this
.
prizes
.
length
>
3
)
{
this
.
createItem
(
2
);
this
.
prizeMaxH
=
this
.
prizes
.
length
*
(
props
.
boxImgSizeH
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
}
else
{
this
.
createItem
(
1
);
this
.
prizeMaxH
=
4
*
(
props
.
boxImgSizeH
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
}
this
.
orgY
=
-
(
this
.
prizeMaxH
-
props
.
maskSizeH
)
+
props
.
boxImgSizeH
*
0.5
;
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
this
[
'container'
+
i
].
x
=
i
*
(
props
.
cSpaceSizeX
*
2
+
props
.
boxImgSizeW
);
// this['container' + i].y = this.orgY;
this
[
'container'
+
i
].
y
=
this
.
orgY
;
}
//mask 438 221
}
/**
* type 1.小于4个奖品 2.4个及以上奖品
*/
private
createItem
(
type
:
number
):
void
{
let
len
=
4
;
if
(
type
==
1
)
{
len
=
4
;
}
else
if
(
type
==
2
)
{
len
=
this
.
prizes
.
length
;
}
for
(
let
j
=
0
;
j
<
3
;
j
++
)
{
this
.
itemInfo
[
"items"
+
j
]
=
[];
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
let
url
=
this
.
prizes
[
i
%
this
.
prizes
.
length
].
icon
;
let
itemBox
=
new
engine
.
Image
();
itemBox
.
source
=
engine
.
getAssetByName
(
"奖品外框图"
).
url
;
itemBox
.
width
=
props
.
boxImgSizeW
;
itemBox
.
height
=
props
.
boxImgSizeH
;
itemBox
.
x
=
props
.
spaceSizeX
;
itemBox
.
y
=
props
.
spaceSizeY
+
i
*
(
props
.
boxImgSizeH
+
props
.
spaceSizeY
);
this
[
"container"
+
j
].
addChild
(
itemBox
);
let
item
=
new
engine
.
Sprite
();
item
.
texture
=
this
.
getTexture
(
url
);
this
.
itemInfo
[
"items"
+
j
][
i
]
=
item
;
item
.
width
=
props
.
imgSizeW
;
item
.
height
=
props
.
imgSizeH
;
item
.
x
=
(
itemBox
.
width
-
item
.
width
)
/
2
;
item
.
y
=
(
itemBox
.
height
-
item
.
height
)
/
2
;
itemBox
.
addChild
(
item
);
// console.log('i=', i)
}
}
}
/**
* 重置场景
*/
reset
()
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
this
[
"container"
+
i
].
y
=
this
.
orgY
;
}
}
/**
* 开始
*/
start
()
{
this
.
prizeId
=
props
.
prizeId
;
console
.
log
(
"this.prizeId="
,
this
.
prizeId
);
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
engine
.
Tween
.
removeTweens
(
this
[
"container"
+
i
]);
setTimeout
(()
=>
{
engine
.
Tween
.
get
(
this
[
"container"
+
i
],
{
loop
:
true
}).
to
({
y
:
0
},
this
.
countdown
).
call
(()
=>
{
this
[
"container"
+
i
].
y
=
this
.
orgY
;
});
},
this
.
timeSpace
*
i
);
}
setTimeout
(()
=>
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
// this["container" + i].y = 0;//this.orgY;
setTimeout
(()
=>
{
this
[
"container"
+
i
].
y
=
this
.
orgY
;
engine
.
Tween
.
removeTweens
(
this
[
"container"
+
i
]);
engine
.
Tween
.
get
(
this
[
"container"
+
i
]).
to
({
y
:
-
(
props
.
boxImgSizeH
*
0.5
+
props
.
spaceSizeY
)},
1500
);
},
this
.
timeSpace
*
i
);
}
this
.
setPrizePos
();
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'rock-gameover'
);
},
this
.
timeSpace
*
2
+
2000
);
},
2500
);
}
private
setPrizePos
():
void
{
let
direct
=
Math
.
random
()
>
0.5
?
1
:
-
1
;
for
(
let
j
=
0
;
j
<
3
;
j
++
)
{
let
len
=
this
.
itemInfo
[
"items"
+
j
].
length
;
direct
*=
-
1
;
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
let
plen
=
this
.
prizes
.
length
;
if
(
direct
>
0
)
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTexture
(
this
.
prizes
[(
plen
-
1
)
-
(
i
%
plen
)].
icon
);
// this.itemInfo["items" + j][i].source = this.prizes[(plen - 1) - (i % plen)].icon;
}
else
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTexture
(
this
.
prizes
[(
i
%
plen
)].
icon
);
// this.itemInfo["items" + j][i].source = this.prizes[(i % plen)].icon;
}
}
}
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
// this.prizeId = "sss_3";
// this.itemInfo["items" + i][1].texture = this.getTexture(this.getPrizeUrl(this.prizeId));
let
p
=
this
.
itemInfo
[
"items"
+
i
][
1
].
parent
;
p
.
removeChild
(
this
.
itemInfo
[
"items"
+
i
][
1
]);
let
ix
=
this
.
itemInfo
[
"items"
+
i
][
1
].
x
;
let
iy
=
this
.
itemInfo
[
"items"
+
i
][
1
].
y
;
let
iw
=
this
.
itemInfo
[
"items"
+
i
][
1
].
width
;
let
ih
=
this
.
itemInfo
[
"items"
+
i
][
1
].
height
;
let
nItem
=
new
engine
.
Sprite
();
nItem
.
texture
=
this
.
getTexture
(
this
.
getPrizeUrl
(
this
.
prizeId
));
this
.
itemInfo
[
"items"
+
i
][
1
]
=
nItem
;
nItem
.
x
=
ix
;
nItem
.
y
=
iy
;
nItem
.
width
=
iw
;
nItem
.
height
=
ih
;
p
.
addChild
(
nItem
);
// this.itemInfo["items" + i][1].source = this.getPrizeUrl(this.prizeId);
}
}
private
getPrizeUrl
(
pid
:
string
):
string
{
let
purl
=
""
;
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
if
(
this
.
prizes
[
i
].
prizeId
==
pid
)
{
return
this
.
prizes
[
i
].
icon
;
}
}
return
purl
;
}
/**
* 暂停
*/
pause
()
{
}
/**
* 恢复
*/
revive
()
{
}
/**
* 重新开始
*/
resume
()
{
// this.reset()
// this.start()
}
/**
* 玩家死亡
*/
private
died
()
{
this
.
pause
()
}
/**
* 获取纹理(缓存)
* @param url
*/
getTexture
(
url
)
{
let
texture
=
this
.
textureCache
[
url
];
if
(
!
texture
)
{
texture
=
this
.
textureCache
[
url
]
=
engine
.
Texture
.
fromImage
(
url
);
}
return
texture
;
}
}
src/custom/rockji-new/src/game/GameWrapper.ts
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2020-01-09.
*/
import
GameView
from
"./GameView"
;
import
{
injectProps
}
from
"../props"
;
export
class
GameWrapper
extends
engine
.
Container
{
private
_status
;
private
_gameView
:
GameView
;
constructor
()
{
super
();
engine
.
globalEvent
.
addEventListener
(
'rock-reset'
,
this
.
reset
,
this
);
engine
.
globalEvent
.
addEventListener
(
'rock-start'
,
this
.
start
,
this
);
engine
.
globalEvent
.
addEventListener
(
'rock-info'
,
this
.
rinfo
,
this
);
// this.addEventListener(engine.MouseEvent.CLICK, this.onTap, this);
// gameView.reset()
// gameView.start()
}
reset
(
event
:
engine
.
Event
)
{
injectProps
(
event
.
data
);
this
.
_gameView
.
visible
=
true
;
this
.
_gameView
.
reset
();
}
start
(
event
:
engine
.
Event
)
{
injectProps
(
event
.
data
);
this
.
_status
=
1
;
this
.
_gameView
.
start
();
}
private
rinfo
(
event
:
engine
.
Event
):
void
{
injectProps
(
event
.
data
);
console
.
log
(
"event="
,
event
)
console
.
log
(
"event.data = "
,
event
.
data
);
let
gameView
=
this
.
_gameView
=
new
GameView
();
this
.
addChild
(
gameView
);
}
pause
()
{
this
.
_gameView
.
pause
();
}
resume
()
{
this
.
_gameView
.
resume
();
}
revive
()
{
this
.
_gameView
.
revive
();
}
clear
()
{
this
.
_gameView
.
visible
=
false
;
}
private
onTap
(
event
)
{
// this._gameView.tap(event);
}
}
src/custom/rockji-new/src/game/Goods.ts
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2020-02-02.
*
* 掉落物品
*/
import
{
getTextureByName
}
from
"./utils"
;
import
{
props
}
from
"../props"
;
export
class
Goods
extends
engine
.
Container
{
private
_body
:
engine
.
Rect
private
_toY
;
constructor
()
{
super
();
let
body
body
=
this
.
_body
=
new
engine
.
Rect
()
// let randomNum = Math.floor(Math.random() * 3)
// console.log('雨滴' + randomNum);
let
rain
=
new
engine
.
Sprite
(
getTextureByName
(
'雨滴0'
));
let
rain1
=
new
engine
.
Sprite
(
getTextureByName
(
'雨滴1'
));
let
rain2
=
new
engine
.
Sprite
(
getTextureByName
(
'雨滴2'
));
rain
[
"npcType"
]
=
"rain0"
rain1
[
"npcType"
]
=
"rain1"
rain2
[
"npcType"
]
=
"rain2"
let
stone
=
new
engine
.
Sprite
(
getTextureByName
(
'石块'
));
stone
[
"npcType"
]
=
"stone"
let
boom
=
new
engine
.
Sprite
(
getTextureByName
(
'炸弹'
));
boom
[
"npcType"
]
=
"boom"
rain
.
visible
=
false
;
rain1
.
visible
=
false
;
rain2
.
visible
=
false
;
stone
.
visible
=
false
;
boom
.
visible
=
false
;
body
.
addChild
(
rain
)
body
.
addChild
(
rain1
)
body
.
addChild
(
rain2
)
body
.
addChild
(
stone
)
body
.
addChild
(
boom
)
this
.
addChild
(
body
);
body
.
width
=
.
0001
;
body
.
height
=
.
0001
;
body
.
mouseEnabled
=
false
;
}
getRandomNumberByRange
(
start
,
end
)
{
return
Math
.
floor
(
Math
.
random
()
*
(
end
-
start
)
+
start
)
}
reset
()
{
this
.
visible
=
true
;
this
.
rotation
=
0
;
this
.
anchorOffsetY
=
0
;
this
.
y
=
0
;
this
.
x
=
(
750
-
120
)
*
Math
.
random
()
+
30
;
this
.
rotation
=
0
;
let
random
=
Math
.
random
()
if
(
typeof
(
props
.
goodsProbability
)
==
'string'
){
props
.
goodsProbability
=
props
.
goodsProbability
.
split
(
','
).
map
((
i
:
string
)
=>
+
i
)
console
.
log
(
props
.
goodsProbability
);
}
if
(
random
<
props
.
goodsProbability
[
0
]){
let
randomNum
=
Math
.
floor
(
Math
.
random
()
*
3
)
this
.
showNpc
(
"rain"
+
randomNum
)
}
else
if
(
random
>=
props
.
goodsProbability
[
0
]
&&
random
<=
(
props
.
goodsProbability
[
0
]
+
props
.
goodsProbability
[
1
])){
this
.
showNpc
(
"stone"
)
}
else
if
(
random
>
(
props
.
goodsProbability
[
0
]
+
props
.
goodsProbability
[
1
])){
this
.
showNpc
(
"boom"
)
}
}
showNpc
(
type
){
for
(
let
i
=
0
;
i
<
this
.
_body
.
children
.
length
;
i
++
){
this
.
_body
.
children
[
i
].
visible
=
false
;
this
.
_body
.
children
[
i
].
mouseEnabled
=
false
;
}
for
(
let
i
=
0
;
i
<
this
.
_body
.
children
.
length
;
i
++
){
if
(
this
.
_body
.
children
[
i
][
"npcType"
]
==
type
){
this
[
"npcType"
]
=
type
this
.
_body
.
children
[
i
].
visible
=
true
;
this
.
_body
.
children
[
i
].
mouseEnabled
=
false
;
}
}
}
set
anchorOffsetY
(
v
)
{
this
.
_body
.
y
=
v
;
}
}
src/custom/rockji-new/src/game/object-pool-init.ts
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2020-02-03.
*/
import
{
Goods
}
from
"./Goods"
;
import
ObjectPool
=
engine
.
ObjectPool
;
export
const
PoolName
:
string
=
'goods'
;
ObjectPool
.
registerPool
(
PoolName
,
function
()
{
return
new
Goods
();
},
function
(
item
:
Goods
,
data
)
{
item
.
reset
();
});
src/custom/rockji-new/src/game/utils.ts
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2020-01-21.
*/
export
function
getTexture
(
uuid
)
{
return
engine
.
Texture
.
from
(
getAssetByUUID
(
uuid
).
uuid
);
}
export
function
getTextureByName
(
name
)
{
return
engine
.
Texture
.
from
(
getAssetByName
(
name
).
uuid
);
}
export
function
playSound
(
name
)
{
engine
.
playSound
(
getAssetByName
(
name
).
uuid
,
{
keep
:
true
});
}
export
function
createSvga
(
name
,
anchorName
?)
{
let
inst
=
new
svga
.
Svga
();
inst
.
source
=
'asset://'
+
getAssetByName
(
name
).
uuid
;
return
inst
;
}
\ No newline at end of file
src/custom/rockji-new/src/index.ts
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2019-11-20.
*/
import
{
GameWrapper
}
from
"./game/GameWrapper"
;
import
{
injectProps
,
prepareProps
}
from
"./props"
;
export
default
function
(
props
)
{
prepareProps
();
injectProps
(
props
);
let
instance
=
new
GameWrapper
();
return
instance
;
}
src/custom/rockji-new/src/props.ts
0 → 100644
View file @
1b305156
/**
* Created by rockyl on 2020-01-21.
*/
export
let
props
:
any
=
{};
export
function
prepareProps
()
{
let
metaProps
=
getProps
();
engine
.
injectProp
(
props
,
metaProps
);
}
export
function
injectProps
(
p
)
{
engine
.
injectProp
(
props
,
p
);
}
src/custom/rockji/debug/main.js
View file @
1b305156
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
tslib
.
__extends
(
GameView
,
_super
);
tslib
.
__extends
(
GameView
,
_super
);
function
GameView
()
{
function
GameView
()
{
var
_this
=
_super
.
call
(
this
)
||
this
;
var
_this
=
_super
.
call
(
this
)
||
this
;
_this
.
textureCache
=
{};
_this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
_this
.
setup
,
_this
);
_this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
_this
.
setup
,
_this
);
_this
.
prizeId
=
props
.
prizeId
;
_this
.
prizeId
=
props
.
prizeId
;
_this
.
prizes
=
props
.
prizes
;
_this
.
prizes
=
props
.
prizes
;
...
@@ -65,7 +66,7 @@
...
@@ -65,7 +66,7 @@
this
.
createItem
(
1
);
this
.
createItem
(
1
);
this
.
prizeMaxH
=
4
*
(
props
.
imgSizeW
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
this
.
prizeMaxH
=
4
*
(
props
.
imgSizeW
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
}
}
this
.
orgY
=
-
(
this
.
prizeMaxH
-
props
.
maskSizeH
)
+
props
.
i
mgSizeH
*
0.5
;
this
.
orgY
=
-
(
this
.
prizeMaxH
-
props
.
maskSizeH
)
+
props
.
boxI
mgSizeH
*
0.5
;
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
this
[
'container'
+
i
].
x
=
i
*
(
props
.
cSpaceSizeX
*
2
+
props
.
imgSizeW
);
this
[
'container'
+
i
].
x
=
i
*
(
props
.
cSpaceSizeX
*
2
+
props
.
imgSizeW
);
this
[
'container'
+
i
].
y
=
this
.
orgY
;
this
[
'container'
+
i
].
y
=
this
.
orgY
;
...
@@ -83,14 +84,21 @@
...
@@ -83,14 +84,21 @@
this
.
itemInfo
[
"items"
+
j
]
=
[];
this
.
itemInfo
[
"items"
+
j
]
=
[];
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
var
url
=
this
.
prizes
[
i
%
this
.
prizes
.
length
].
icon
;
var
url
=
this
.
prizes
[
i
%
this
.
prizes
.
length
].
icon
;
var
itemBox
=
new
engine
.
Image
();
itemBox
.
source
=
getAssetByName
(
"奖品外框图"
).
url
;
itemBox
.
width
=
props
.
boxImgSizeW
;
itemBox
.
height
=
props
.
boxImgSizeH
;
itemBox
.
x
=
props
.
spaceSizeX
;
itemBox
.
y
=
props
.
spaceSizeY
+
i
*
(
props
.
boxImgSizeH
+
props
.
spaceSizeY
);
this
[
"container"
+
j
].
addChild
(
itemBox
);
var
item
=
new
engine
.
Sprite
();
var
item
=
new
engine
.
Sprite
();
item
.
texture
=
engine
.
Texture
.
fromImag
e
(
url
);
item
.
texture
=
this
.
getTextur
e
(
url
);
this
.
itemInfo
[
"items"
+
j
][
i
]
=
item
;
this
.
itemInfo
[
"items"
+
j
][
i
]
=
item
;
this
[
"container"
+
j
].
addChild
(
item
);
item
.
width
=
props
.
imgSizeW
;
item
.
width
=
props
.
imgSizeW
;
item
.
height
=
props
.
imgSizeH
;
item
.
height
=
props
.
imgSizeH
;
item
.
x
=
props
.
spaceSizeX
;
item
.
x
=
(
itemBox
.
width
-
item
.
width
)
/
2
;
item
.
y
=
props
.
spaceSizeY
+
i
*
(
props
.
imgSizeH
+
props
.
spaceSizeY
);
item
.
y
=
(
itemBox
.
height
-
item
.
height
)
/
2
;
itemBox
.
addChild
(
item
);
}
}
}
}
};
};
...
@@ -120,7 +128,7 @@
...
@@ -120,7 +128,7 @@
setTimeout
(
function
()
{
setTimeout
(
function
()
{
_this
[
"container"
+
i
].
y
=
_this
.
orgY
;
_this
[
"container"
+
i
].
y
=
_this
.
orgY
;
engine
.
Tween
.
removeTweens
(
_this
[
"container"
+
i
]);
engine
.
Tween
.
removeTweens
(
_this
[
"container"
+
i
]);
engine
.
Tween
.
get
(
_this
[
"container"
+
i
]).
to
({
y
:
-
(
props
.
i
mgSizeH
*
0.5
+
props
.
spaceSizeY
)
},
1500
);
engine
.
Tween
.
get
(
_this
[
"container"
+
i
]).
to
({
y
:
-
(
props
.
boxI
mgSizeH
*
0.5
+
props
.
spaceSizeY
)
},
1500
);
},
_this
.
timeSpace
*
i
);
},
_this
.
timeSpace
*
i
);
};
};
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
...
@@ -140,10 +148,10 @@
...
@@ -140,10 +148,10 @@
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
var
plen
=
this
.
prizes
.
length
;
var
plen
=
this
.
prizes
.
length
;
if
(
direct
>
0
)
{
if
(
direct
>
0
)
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
engine
.
Texture
.
fromImag
e
(
this
.
prizes
[(
plen
-
1
)
-
(
i
%
plen
)].
icon
);
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTextur
e
(
this
.
prizes
[(
plen
-
1
)
-
(
i
%
plen
)].
icon
);
}
}
else
{
else
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
engine
.
Texture
.
fromImag
e
(
this
.
prizes
[(
i
%
plen
)].
icon
);
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTextur
e
(
this
.
prizes
[(
i
%
plen
)].
icon
);
}
}
}
}
}
}
...
@@ -155,7 +163,7 @@
...
@@ -155,7 +163,7 @@
var
iw
=
this
.
itemInfo
[
"items"
+
i
][
1
].
width
;
var
iw
=
this
.
itemInfo
[
"items"
+
i
][
1
].
width
;
var
ih
=
this
.
itemInfo
[
"items"
+
i
][
1
].
height
;
var
ih
=
this
.
itemInfo
[
"items"
+
i
][
1
].
height
;
var
nItem
=
new
engine
.
Sprite
();
var
nItem
=
new
engine
.
Sprite
();
nItem
.
texture
=
engine
.
Texture
.
fromImag
e
(
this
.
getPrizeUrl
(
this
.
prizeId
));
nItem
.
texture
=
this
.
getTextur
e
(
this
.
getPrizeUrl
(
this
.
prizeId
));
this
.
itemInfo
[
"items"
+
i
][
1
]
=
nItem
;
this
.
itemInfo
[
"items"
+
i
][
1
]
=
nItem
;
nItem
.
x
=
ix
;
nItem
.
x
=
ix
;
nItem
.
y
=
iy
;
nItem
.
y
=
iy
;
...
@@ -182,8 +190,16 @@
...
@@ -182,8 +190,16 @@
GameView
.
prototype
.
died
=
function
()
{
GameView
.
prototype
.
died
=
function
()
{
this
.
pause
();
this
.
pause
();
};
};
GameView
.
prototype
.
getTexture
=
function
(
url
)
{
var
texture
=
this
.
textureCache
[
url
];
if
(
!
texture
)
{
texture
=
this
.
textureCache
[
url
]
=
engine
.
Texture
.
fromImage
(
url
);
}
return
texture
;
};
return
GameView
;
return
GameView
;
}(
engine
.
Container
));
}(
engine
.
Container
));
//# sourceMappingURL=GameView.js.map
var
GameWrapper
=
(
function
(
_super
)
{
var
GameWrapper
=
(
function
(
_super
)
{
tslib
.
__extends
(
GameWrapper
,
_super
);
tslib
.
__extends
(
GameWrapper
,
_super
);
...
...
src/custom/rockji/debug/main.js.map
View file @
1b305156
This diff is collapsed.
Click to expand it.
src/custom/rockji/meta.json
View file @
1b305156
...
@@ -2,6 +2,16 @@
...
@@ -2,6 +2,16 @@
"name"
:
"摇奖机"
,
"name"
:
"摇奖机"
,
"desc"
:
"摇奖机"
,
"desc"
:
"摇奖机"
,
"props"
:
{
"props"
:
{
"boxImgSizeW"
:{
"alias"
:
"奖品图片外框宽"
,
"type"
:
"number"
,
"default"
:
110
},
"boxImgSizeH"
:{
"alias"
:
"奖品图片外框高"
,
"type"
:
"number"
,
"default"
:
111
},
"imgSizeW"
:
{
"imgSizeW"
:
{
"alias"
:
"奖品图片宽"
,
"alias"
:
"奖品图片宽"
,
"type"
:
"number"
,
"type"
:
"number"
,
...
@@ -15,7 +25,7 @@
...
@@ -15,7 +25,7 @@
"spaceSizeX"
:
{
"spaceSizeX"
:
{
"alias"
:
"奖品横向间隙"
,
"alias"
:
"奖品横向间隙"
,
"type"
:
"number"
,
"type"
:
"number"
,
"default"
:
20
"default"
:
15
},
},
"spaceSizeY"
:
{
"spaceSizeY"
:
{
"alias"
:
"奖品纵向间隙"
,
"alias"
:
"奖品纵向间隙"
,
...
@@ -65,6 +75,12 @@
...
@@ -65,6 +75,12 @@
"url"
:
"//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png"
,
"uuid"
:
"7baa74f5-e057-4fd3-846f-f58ff7a92c3d"
,
"uuid"
:
"7baa74f5-e057-4fd3-846f-f58ff7a92c3d"
,
"ext"
:
".png"
"ext"
:
".png"
},
{
"name"
:
"奖品外框图"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/bee4c8c7fba8a83b18d3e43921118421f73f389d.png"
,
"uuid"
:
"80036ef2-d070-469b-afd0-54d8296cfbe9"
,
"ext"
:
".png"
}
}
],
],
"events"
:
{
"events"
:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment