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
b4f2e18e
Commit
b4f2e18e
authored
Jun 30, 2020
by
rockyl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
纹理缓存
parent
06309eb6
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
65 additions
and
56 deletions
+65
-56
GameView.ts
src/custom/rockji/src/game/GameView.ts
+65
-56
No files found.
src/custom/rockji/src/game/GameView.ts
View file @
b4f2e18e
...
...
@@ -2,13 +2,12 @@
* Created by rockyl on 2018/8/16.
*/
import
{
props
}
from
"../props"
;
import
{
playSound
,
createSvga
}
from
"./utils"
;
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"
;
import
{
getTextureByName
}
from
"./utils"
;
import
{
Goods
}
from
"./Goods"
;
import
{
PoolName
}
from
"./object-pool-init"
;
export
default
class
GameView
extends
engine
.
Container
{
...
...
@@ -28,24 +27,24 @@ export default class GameView extends engine.Container {
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
bgImg
:
engine
.
Image
;
private
bgImgUrl
:
string
;
private
itemInfo
:
any
;
private
prizeMaxH
:
number
;
private
orgY
:
number
;
private
container0
:
engine
.
Container
;
private
container1
:
engine
.
Container
;
private
container2
:
engine
.
Container
;
private
prizeId
:
string
;
private
mainContainer
:
engine
.
Container
;
private
viewContainer
:
engine
.
Container
;
private
container0
:
engine
.
Container
;
private
container1
:
engine
.
Container
;
private
container2
:
engine
.
Container
;
private
configInfo
:
any
;
private
mainContainer
:
engine
.
Container
;
private
viewContainer
:
engine
.
Container
;
private
configInfo
:
any
;
private
textureCache
=
{};
constructor
()
{
super
();
...
...
@@ -62,7 +61,7 @@ export default class GameView extends engine.Container {
// cOriginSize:{x:22, y:19},//遮罩左边定点位置
// cSpaceSize:{x:23, y:0},//每列奖品的间隙
// }
// this.bgImgUrl = '//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png';
...
...
@@ -109,7 +108,7 @@ export default class GameView extends engine.Container {
this
.
countdown
=
150
;
this
.
timeSpace
=
500
;
console
.
log
(
"props.prizes="
,
props
.
prizes
);
console
.
log
(
"props.prizes="
,
props
.
prizes
);
}
private
waterSvga
...
...
@@ -121,7 +120,7 @@ export default class GameView extends engine.Container {
if
(
this
.
_hasSetup
)
{
return
;
}
this
.
_hasSetup
=
true
;
this
.
itemInfo
=
{};
...
...
@@ -172,17 +171,17 @@ export default class GameView extends engine.Container {
// this.container2.width = 140;
// this.container2.height = 221;
if
(
this
.
prizes
.
length
>
3
)
{
if
(
this
.
prizes
.
length
>
3
)
{
this
.
createItem
(
2
);
this
.
prizeMaxH
=
this
.
prizes
.
length
*
(
props
.
imgSizeW
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
}
else
{
}
else
{
this
.
createItem
(
1
);
this
.
prizeMaxH
=
4
*
(
props
.
imgSizeW
+
props
.
spaceSizeY
)
+
props
.
spaceSizeY
;
}
this
.
orgY
=
-
(
this
.
prizeMaxH
-
props
.
maskSizeH
)
+
props
.
imgSizeH
*
0.5
;
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
this
[
'container'
+
i
].
x
=
i
*
(
props
.
cSpaceSizeX
*
2
+
props
.
imgSizeW
);
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
this
[
'container'
+
i
].
x
=
i
*
(
props
.
cSpaceSizeX
*
2
+
props
.
imgSizeW
);
// this['container' + i].y = this.orgY;
this
[
'container'
+
i
].
y
=
this
.
orgY
;
...
...
@@ -195,20 +194,20 @@ export default class GameView extends engine.Container {
/**
* type 1.小于4个奖品 2.4个及以上奖品
*/
private
createItem
(
type
:
number
):
void
{
private
createItem
(
type
:
number
):
void
{
let
len
=
4
;
if
(
type
==
1
)
{
if
(
type
==
1
)
{
len
=
4
;
}
else
if
(
type
==
2
)
{
}
else
if
(
type
==
2
)
{
len
=
this
.
prizes
.
length
;
}
for
(
let
j
=
0
;
j
<
3
;
j
++
)
{
for
(
let
j
=
0
;
j
<
3
;
j
++
)
{
this
.
itemInfo
[
"items"
+
j
]
=
[];
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
let
url
=
this
.
prizes
[
i
%
this
.
prizes
.
length
].
icon
;
let
item
=
new
engine
.
Sprite
();
item
.
texture
=
engine
.
Texture
.
fromImag
e
(
url
);
item
.
texture
=
this
.
getTextur
e
(
url
);
this
.
itemInfo
[
"items"
+
j
][
i
]
=
item
;
this
[
"container"
+
j
].
addChild
(
item
);
...
...
@@ -218,7 +217,7 @@ export default class GameView extends engine.Container {
item
.
y
=
props
.
spaceSizeY
+
i
*
(
props
.
imgSizeH
+
props
.
spaceSizeY
);
// console.log('i=', i)
}
}
}
...
...
@@ -228,7 +227,7 @@ export default class GameView extends engine.Container {
* 重置场景
*/
reset
()
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
this
[
"container"
+
i
].
y
=
this
.
orgY
;
}
}
...
...
@@ -238,55 +237,55 @@ export default class GameView extends engine.Container {
*/
start
()
{
this
.
prizeId
=
props
.
prizeId
;
console
.
log
(
"this.prizeId="
,
this
.
prizeId
);
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
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
(()
=>
{
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
++
)
{
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
.
imgSizeH
*
0.5
+
props
.
spaceSizeY
)},
1500
);
engine
.
Tween
.
get
(
this
[
"container"
+
i
]).
to
({
y
:
-
(
props
.
imgSizeH
*
0.5
+
props
.
spaceSizeY
)},
1500
);
},
this
.
timeSpace
*
i
);
}
this
.
setPrizePos
();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'rock-gameover'
);
},
this
.
timeSpace
*
2
+
2000
);
},
2500
);
}
private
setPrizePos
():
void
{
private
setPrizePos
():
void
{
let
direct
=
Math
.
random
()
>
0.5
?
1
:
-
1
;
for
(
let
j
=
0
;
j
<
3
;
j
++
)
{
for
(
let
j
=
0
;
j
<
3
;
j
++
)
{
let
len
=
this
.
itemInfo
[
"items"
+
j
].
length
;
direct
*=
-
1
;
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
let
plen
=
this
.
prizes
.
length
;
if
(
direct
>
0
)
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
engine
.
Texture
.
fromImag
e
(
this
.
prizes
[(
plen
-
1
)
-
(
i
%
plen
)].
icon
);
if
(
direct
>
0
)
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTextur
e
(
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
=
engine
.
Texture
.
fromImag
e
(
this
.
prizes
[(
i
%
plen
)].
icon
);
}
else
{
this
.
itemInfo
[
"items"
+
j
][
i
].
texture
=
this
.
getTextur
e
(
this
.
prizes
[(
i
%
plen
)].
icon
);
// this.itemInfo["items" + j][i].source = this.prizes[(i % plen)].icon;
}
}
}
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
// this.prizeId = "sss_3";
// this.itemInfo["items" + i][1].texture =
engine.Texture.fromImag
e(this.getPrizeUrl(this.prizeId));
// this.itemInfo["items" + i][1].texture =
this.getTextur
e(this.getPrizeUrl(this.prizeId));
let
p
=
this
.
itemInfo
[
"items"
+
i
][
1
].
parent
;
p
.
removeChild
(
this
.
itemInfo
[
"items"
+
i
][
1
]);
...
...
@@ -296,7 +295,7 @@ export default class GameView extends engine.Container {
let
ih
=
this
.
itemInfo
[
"items"
+
i
][
1
].
height
;
let
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
;
nItem
.
x
=
ix
;
nItem
.
y
=
iy
;
...
...
@@ -305,16 +304,15 @@ export default class GameView extends engine.Container {
p
.
addChild
(
nItem
);
// this.itemInfo["items" + i][1].source = this.getPrizeUrl(this.prizeId);
}
}
private
getPrizeUrl
(
pid
:
string
):
string
{
private
getPrizeUrl
(
pid
:
string
):
string
{
let
purl
=
""
;
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
if
(
this
.
prizes
[
i
].
prizeId
==
pid
)
{
for
(
let
i
=
0
;
i
<
3
;
i
++
)
{
if
(
this
.
prizes
[
i
].
prizeId
==
pid
)
{
return
this
.
prizes
[
i
].
icon
;
}
}
...
...
@@ -326,7 +324,7 @@ export default class GameView extends engine.Container {
* 暂停
*/
pause
()
{
}
/**
...
...
@@ -350,4 +348,15 @@ export default class GameView extends engine.Container {
this
.
pause
()
}
/**
* 获取纹理(缓存)
* @param url
*/
getTexture
(
url
)
{
let
texture
=
this
.
textureCache
[
url
];
if
(
!
texture
)
{
texture
=
this
.
textureCache
[
url
]
=
engine
.
Texture
.
fromImage
(
url
);
}
return
texture
;
}
}
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