Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
ngt14_czm
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
ngt14_czm
Commits
58994e8b
Commit
58994e8b
authored
Oct 27, 2022
by
Tt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拖拽基础及校验完成
parent
953b0d58
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
79 additions
and
45 deletions
+79
-45
cocos_generator.ts
assets/cocos_generator/scene/cocos_generator.ts
+78
-45
Game.ts
assets/cocos_generator/scene/tool/Game.ts
+1
-0
No files found.
assets/cocos_generator/scene/cocos_generator.ts
View file @
58994e8b
...
...
@@ -163,7 +163,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
for
(
let
y
=
0
;
y
<
9
;
y
++
)
{
for
(
let
x
=
0
;
x
<
12
;
x
++
)
{
let
node
=
cc
.
instantiate
(
block
);
let
data
=
{
x
,
y
,
val
:
''
};
let
data
=
{
x
,
y
,
val
:
''
,
rightVal
:
''
};
node
.
data
=
data
;
node
.
x
=
-
495
+
space
.
x
*
x
;
node
.
y
=
365
-
space
.
y
*
y
;
...
...
@@ -178,7 +178,9 @@ export default class SceneComponent extends MyCocosSceneComponent {
let
first
=
null
;
this
.
layout_blocks
.
children
.
forEach
(
node
=>
{
let
point
=
node
.
data
;
if
(
list
.
some
(
li
=>
li
.
compare
(
point
)))
{
let
li
=
list
.
find
(
li
=>
li
.
compare
(
point
))
if
(
li
)
{
point
.
rightVal
=
li
.
rightVal
pg
.
view
.
visible
(
pg
.
view
.
find
(
node
,
'
img_undone
'
),
false
)
pg
.
view
.
visible
(
pg
.
view
.
find
(
node
,
'
img_focus
'
),
true
)
if
(
!
point
.
val
&&
!
first
)
{
...
...
@@ -217,6 +219,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
node
.
x
=
280
+
space
.
x
*
(
index
-
9
)
node
.
y
=
-
110
-
space
.
y
*
2
;
}
data
.
pos
=
cc
.
v2
(
node
)
this
.
layout_words
.
addChild
(
node
);
this
.
updateWord
(
node
,
data
);
});
...
...
@@ -262,39 +265,35 @@ export default class SceneComponent extends MyCocosSceneComponent {
if
(
!
this
.
touching
)
return
;
if
(
this
.
touching
!=
data
)
return
;
// let rect = cc.rect(target.x, target.y, target.width, target.height);
let
rect
=
cc
.
rect
(
target
.
x
,
target
.
y
,
50
,
50
);
let
rect
=
cc
.
rect
(
target
.
x
,
target
.
y
,
1
,
1
);
//坐标转换
console
.
log
(
"
1123123123
"
)
return
;
let
boat_left
=
pg
.
view
.
find
(
this
,
'
layout_bottom/boat_left
'
)
let
boat_right
=
pg
.
view
.
find
(
this
,
'
layout_bottom/boat_right
'
)
let
leftRect
=
cc
.
rect
(
boat_left
.
x
-
boat_left
.
width
/
2
,
boat_left
.
y
-
boat_left
.
height
/
2
,
boat_left
.
width
,
boat_left
.
height
);
let
rightRect
=
cc
.
rect
(
boat_right
.
x
-
boat_right
.
width
/
2
,
boat_right
.
y
-
boat_right
.
height
/
2
,
boat_right
.
width
,
boat_right
.
height
);
let
isRight
=
false
;
let
currentRect
=
null
;
// if (rect.intersects(leftRect)) {
// isRight = !!Game.getIns().boatLeft.isChild(data);
// Game.getIns().boatLeft.setRight(data);
// currentRect = leftRect;
// } else if (rect.intersects(rightRect)) {
// isRight = !!Game.getIns().boatRight.isChild(data);
// Game.getIns().boatRight.setRight(data);
// currentRect = rightRect;
// }
if
(
!
currentRect
)
{
this
.
touching
=
null
;
this
.
playLocalAudio
(
'
error
'
).
then
(()
=>
{
this
.
touching
=
null
;
// this.updateItem(target, data);
let
collNode
=
null
;
this
.
layout_blocks
.
children
.
forEach
(
node
=>
{
// 开始做碰撞
// 坐标转换
let
nodeWP
=
node
.
convertToWorldSpaceAR
(
cc
.
v2
(
-
40
,
-
40
));
let
nodeNP
=
this
.
layout_words
.
convertToNodeSpaceAR
(
nodeWP
);
let
nodeRect
=
cc
.
rect
(
nodeNP
.
x
,
nodeNP
.
y
,
node
.
width
,
node
.
height
);
if
(
rect
.
intersects
(
nodeRect
))
{
collNode
=
node
;
}
})
//是否碰撞
if
(
!
collNode
)
{
this
.
touching
=
null
;
target
.
x
=
target
.
data
.
pos
.
x
;
target
.
y
=
target
.
data
.
pos
.
y
;
// this.playLocalAudio('error').then(() => {
// this.touching = null;
// // this.updateItem(target, data);
// })
return
;
}
//是否正确
let
isRight
=
collNode
.
data
.
rightVal
==
data
.
word
;
if
(
isRight
)
{
let
item
=
target
;
let
lastArea
=
100
;
// this.playLocalAudio('right').then(() => {
// if (data.audioUrl) {
// pg.audio.playAudioByUrlThen(data.audioUrl).then(() => {
...
...
@@ -304,29 +303,63 @@ export default class SceneComponent extends MyCocosSceneComponent {
// this.touching = null;
// }
// })
if
(
item
.
scaleX
==
-
1
)
{
// 计算当前坐标距离最左侧的距离
let
space
=
currentRect
.
width
-
((
rect
.
x
+
rect
.
width
)
-
currentRect
.
x
)
-
lastArea
/
5
;
let
time
=
space
/
10
;
cc
.
tween
(
item
).
by
(
time
,
{
x
:
space
}).
start
();
}
else
{
// 计算当前坐标距离最左侧的距离
let
space
=
rect
.
x
-
currentRect
.
x
-
lastArea
;
let
time
=
space
/
10
;
cc
.
tween
(
item
).
by
(
time
,
{
x
:
-
space
}).
start
();
}
this
.
touching
=
null
;
item
.
off
(
cc
.
Node
.
EventType
.
TOUCH_START
,
this
.
onItemTouchStart
,
this
);
item
.
off
(
cc
.
Node
.
EventType
.
TOUCH_MOVE
,
this
.
onItemTouchMove
,
this
);
item
.
off
(
cc
.
Node
.
EventType
.
TOUCH_END
,
this
.
onItemTouchEnd
,
this
);
item
.
off
(
cc
.
Node
.
EventType
.
TOUCH_CANCEL
,
this
.
onItemTouchCancel
,
this
);
pg
.
event
.
emit
(
'
mouse_05_add
'
)
}
else
{
this
.
playLocalAudio
(
'
error
'
).
then
(()
=>
{
// this.playLocalAudio('error').then(() => {
// this.touching = null;
// // this.updateItem(target, data);
// })
this
.
touching
=
null
;
// this.updateItem(target, data)
;
})
target
.
x
=
target
.
data
.
pos
.
x
;
target
.
y
=
target
.
data
.
pos
.
y
;
}
// 检测一行是否完成, 完成加星星
// pg.event.emit('mouse_05_add')
return
;
// if (isRight) {
// let item = target;
// let lastArea = 100;
// // this.playLocalAudio('right').then(() => {
// // if (data.audioUrl) {
// // pg.audio.playAudioByUrlThen(data.audioUrl).then(() => {
// // this.touching = null;
// // })
// // } else {
// // this.touching = null;
// // }
// // })
// if (item.scaleX == -1) {
// // 计算当前坐标距离最左侧的距离
// let space = currentRect.width - ((rect.x + rect.width) - currentRect.x) - lastArea / 5;
// let time = space / 10;
// cc.tween(item).by(time, { x: space }).start();
// } else {
// // 计算当前坐标距离最左侧的距离
// let space = rect.x - currentRect.x - lastArea;
// let time = space / 10;
// cc.tween(item).by(time, { x: -space }).start();
// }
// item.off(cc.Node.EventType.TOUCH_START, this.onItemTouchStart, this);
// item.off(cc.Node.EventType.TOUCH_MOVE, this.onItemTouchMove, this);
// item.off(cc.Node.EventType.TOUCH_END, this.onItemTouchEnd, this);
// item.off(cc.Node.EventType.TOUCH_CANCEL, this.onItemTouchCancel, this);
// pg.event.emit('mouse_05_add')
// } else {
// this.playLocalAudio('error').then(() => {
// this.touching = null;
// // this.updateItem(target, data);
// })
// }
//判断是否结束了
// if (Game.getIns().boatLeft.isAllRight() && Game.getIns().boatRight.isAllRight()) {
// this.showGameOver();
...
...
assets/cocos_generator/scene/tool/Game.ts
View file @
58994e8b
...
...
@@ -167,6 +167,7 @@ export class GameNGT14 {
list
.
push
({
x
:
line
.
point
.
x
+
i
,
y
:
line
.
point
.
y
,
rightVal
:
line
.
answer
[
i
],
compare
:
function
(
p
)
{
return
this
.
x
==
p
.
x
&&
this
.
y
==
p
.
y
;
}
...
...
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