Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
U
unit_demo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
template admin
unit_demo
Commits
a2bc518b
Commit
a2bc518b
authored
Oct 08, 2021
by
范雪寒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 删除无用的分支;添加参考url;增加对修改锚点的支持
parent
806bbcae
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
71 deletions
+40
-71
demo_05_alphaClick.fire
play/assets/unit_demo/scene/demo_05_alphaClick.fire
+4
-4
demo_05_alphaClick.js
play/assets/unit_demo/scene/demo_05_alphaClick.js
+36
-67
No files found.
play/assets/unit_demo/scene/demo_05_alphaClick.fire
View file @
a2bc518b
...
@@ -275,15 +275,15 @@
...
@@ -275,15 +275,15 @@
},
},
"_anchorPoint": {
"_anchorPoint": {
"__type__": "cc.Vec2",
"__type__": "cc.Vec2",
"x": 0.
5
,
"x": 0.
2
,
"y": 0.
5
"y": 0.
2
},
},
"_trs": {
"_trs": {
"__type__": "TypedArray",
"__type__": "TypedArray",
"ctor": "Float64Array",
"ctor": "Float64Array",
"array": [
"array": [
28
2,
14
2,
56
,
-115
,
0,
0,
0,
0,
0,
0,
...
...
play/assets/unit_demo/scene/demo_05_alphaClick.js
View file @
a2bc518b
...
@@ -2,6 +2,8 @@ import {
...
@@ -2,6 +2,8 @@ import {
RandomInt
RandomInt
}
from
"
../script/utils
"
;
}
from
"
../script/utils
"
;
// 参考: https://forum.cocos.org/t/creator/38530/56
cc
.
Class
({
cc
.
Class
({
extends
:
cc
.
Component
,
extends
:
cc
.
Component
,
...
@@ -35,79 +37,46 @@ cc.Class({
...
@@ -35,79 +37,46 @@ cc.Class({
let
posInNode
=
sprite
.
convertToNodeSpaceAR
(
location
);
let
posInNode
=
sprite
.
convertToNodeSpaceAR
(
location
);
let
rect
=
spriteFrame
.
getRect
();
let
rect
=
spriteFrame
.
getRect
();
let
offset
=
spriteFrame
.
getOffset
();
let
offset
=
spriteFrame
.
getOffset
();
if
((
posInNode
.
x
<
offset
.
x
-
(
rect
.
width
*
sprite
.
anchorX
))
if
((
posInNode
.
x
<
offset
.
x
-
rect
.
width
/
2
)
||
(
posInNode
.
y
<
offset
.
y
-
(
rect
.
height
*
sprite
.
anchorY
))
||
(
posInNode
.
y
<
offset
.
y
-
rect
.
height
/
2
)
||
(
posInNode
.
x
>
(
offset
.
x
+
(
rect
.
width
*
(
1
-
sprite
.
anchorX
))))
||
(
posInNode
.
x
>
(
offset
.
x
+
rect
.
width
/
2
))
||
(
posInNode
.
y
>
(
offset
.
y
+
(
rect
.
height
*
(
1
-
sprite
.
anchorY
)))))
{
||
(
posInNode
.
y
>
(
offset
.
y
+
rect
.
height
/
2
)))
{
return
false
;
return
false
;
}
else
{
}
let
posInRect
=
cc
.
v2
(
parseInt
(
posInNode
.
x
-
offset
.
x
+
rect
.
width
/
2
),
parseInt
(
posInNode
.
y
-
offset
.
y
+
rect
.
height
/
2
))
let
tex
=
spriteFrame
.
getTexture
();
let
data
;
if
(
tex
instanceof
cc
.
RenderTexture
)
{
// 细图(width <= 512 && height <= 512) 被引擎自动打包了
if
(
cc
.
sys
.
platform
===
cc
.
sys
.
QQ_PLAY
)
{
// 玩一玩平台
throw
"
在玩一玩平台,请确保你的SpriteFrame 的宽高至少有一个大于512, 这样不会被Atlas, 不然被引擎自动Atlas之后,因为玩一玩不支持gl.readPixels 或 getImageData这样的接口,像素就读不出来了
"
}
var
buffer
=
new
Uint8Array
(
4
);
// data就是这个texture的rgba值数组
if
(
spriteFrame
.
isRotated
())
{
data
=
tex
.
readPixels
(
buffer
,
rect
.
x
+
posInRect
.
y
,
rect
.
y
+
posInRect
.
x
,
1
,
1
);
}
else
{
data
=
tex
.
readPixels
(
buffer
,
rect
.
x
+
posInRect
.
x
,
rect
.
y
+
rect
.
height
-
posInRect
.
y
,
1
,
1
);
}
console
.
log
(
tex
);
}
else
{
var
dataContainer
=
this
.
_textureIdMapDataContainer
[
tex
.
getId
()];
if
(
cc
.
sys
.
platform
===
cc
.
sys
.
QQ_PLAY
)
{
// 针对玩一玩的特殊方式
if
(
!
dataContainer
)
{
tex
.
getHtmlElementObj
().
bkImage
||
tex
.
getHtmlElementObj
().
_generateBKImage
();
dataContainer
=
tex
.
getHtmlElementObj
().
bkImage
;
this
.
_textureIdMapDataContainer
[
tex
.
getId
()]
=
dataContainer
;
}
var
buffer
=
dataContainer
.
buffer
;
let
posInRect
=
cc
.
v2
(
buffer
.
rewind
();
parseInt
(
posInNode
.
x
-
offset
.
x
+
(
rect
.
width
*
sprite
.
anchorX
)),
parseInt
(
posInNode
.
y
-
offset
.
y
+
(
rect
.
height
*
sprite
.
anchorY
))
);
if
(
spriteFrame
.
isRotated
())
{
let
tex
=
spriteFrame
.
getTexture
();
buffer
.
jumpBytes
(((
rect
.
x
+
posInRect
.
y
)
+
(
rect
.
y
+
posInRect
.
x
)
*
tex
.
width
)
*
4
);
if
(
tex
instanceof
cc
.
RenderTexture
)
{
}
else
{
throw
"
图片宽高都小于512的时候,图片资源的packable属性要设置为false。
"
;
buffer
.
jumpBytes
(((
rect
.
x
+
posInRect
.
x
)
+
(
rect
.
y
+
rect
.
height
-
posInRect
.
y
)
*
tex
.
width
)
*
4
);
}
}
data
=
[
buffer
.
readUint8Buffer
(),
buffer
.
readUint8Buffer
(),
buffer
.
readUint8Buffer
(),
buffer
.
readUint8Buffer
()];
var
scale
=
8
;
}
else
{
var
cvs
=
this
.
_textureIdMapDataContainer
[
tex
.
getId
()];
//Canvas 方式
if
(
!
cvs
)
{
var
scale
=
8
;
cvs
=
document
.
createElement
(
"
canvas
"
);
var
cvs
=
dataContainer
;
var
ctx
=
cvs
.
getContext
(
'
2d
'
);
if
(
!
cvs
)
{
cvs
.
width
=
tex
.
width
;
cvs
=
document
.
createElement
(
"
canvas
"
);
cvs
.
height
=
tex
.
height
;
var
ctx
=
cvs
.
getContext
(
'
2d
'
);
ctx
.
drawImage
(
tex
.
getHtmlElementObj
(),
0
,
0
,
tex
.
width
,
tex
.
height
,
0
,
0
,
tex
.
width
/
scale
,
tex
.
height
/
scale
);
cvs
.
width
=
tex
.
width
;
this
.
_textureIdMapDataContainer
[
tex
.
getId
()]
=
cvs
;
cvs
.
height
=
tex
.
height
;
}
ctx
.
drawImage
(
tex
.
getHtmlElementObj
(),
0
,
0
,
tex
.
width
,
tex
.
height
,
0
,
0
,
tex
.
width
/
scale
,
tex
.
height
/
scale
);
this
.
_textureIdMapDataContainer
[
tex
.
getId
()]
=
cvs
;
}
var
ctx
=
cvs
.
getContext
(
'
2d
'
);
let
data
;
if
(
spriteFrame
.
isRotated
())
{
var
ctx
=
cvs
.
getContext
(
'
2d
'
);
data
=
ctx
.
getImageData
((
rect
.
x
+
posInRect
.
y
)
/
scale
,
(
rect
.
y
+
posInRect
.
x
)
/
scale
,
1
,
1
).
data
;
if
(
spriteFrame
.
isRotated
())
{
}
else
{
data
=
ctx
.
getImageData
((
rect
.
x
+
posInRect
.
y
)
/
scale
,
(
rect
.
y
+
posInRect
.
x
)
/
scale
,
1
,
1
).
data
;
data
=
ctx
.
getImageData
((
rect
.
x
+
posInRect
.
x
)
/
scale
,
(
rect
.
y
+
rect
.
height
-
posInRect
.
y
)
/
scale
,
1
,
1
).
data
;
}
else
{
}
data
=
ctx
.
getImageData
((
rect
.
x
+
posInRect
.
x
)
/
scale
,
(
rect
.
y
+
rect
.
height
-
posInRect
.
y
)
/
scale
,
1
,
1
).
data
;
}
}
}
if
(
data
[
3
]
<=
0
)
{
if
(
data
[
3
]
>
0
)
{
return
false
;
return
true
;
}
else
{
}
else
{
return
true
;
return
false
;
}
}
}
},
},
// update (dt) {},
});
});
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