Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
Coloring_OL
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
Coloring_OL
Commits
cc021fd9
Commit
cc021fd9
authored
Jun 14, 2022
by
limingzhe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 人机版
parent
82c66511
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
283 deletions
+0
-283
_NetworkHelper.ts
assets/Coloring_OL/script/_NetworkHelper.ts
+0
-274
_NetworkHelper.ts.meta
assets/Coloring_OL/script/_NetworkHelper.ts.meta
+0
-9
No files found.
assets/Coloring_OL/script/_NetworkHelper.ts
deleted
100644 → 0
View file @
82c66511
import
{
RandomInt
}
from
"
../script/util
"
;
export
class
NetworkHelper
{
_eventListeners
:
any
=
{};
ctor
()
{
}
on
(
eventName
,
func
)
{
this
.
_eventListeners
[
eventName
]
=
func
;
}
async
init
(
roomType
:
string
,
maxPlayers
:
number
)
{
this
.
initRoom
();
try
{
return
await
this
.
joinRoom
(
roomType
,
maxPlayers
);
}
catch
(
e
)
{
await
this
.
initListener
();
this
.
initRoom
();
return
await
this
.
joinRoom
(
roomType
,
maxPlayers
);
}
}
async
startGame
()
{
await
this
.
startFrameSync
();
await
this
.
closeRoom
();
}
async
stopGame
()
{
await
this
.
stopFrameSync
();
await
this
.
leaveRoom
();
}
getRoomInfo
()
{
return
this
.
room
.
roomInfo
;
}
initListener
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
gameId
=
"
obg-i4ql53h1
"
;
//替换为控制台上的 游戏 ID
const
secretKey
=
"
060d81c7abaf24c8ce2afc5a725c152062676d35
"
;
//替换为控制台上的 游戏 Key
const
serverUrl
=
"
i4ql53h1.wxlagame.com
"
;
//替换为控制台上的 域名
const
gameInfo
=
{
gameId
:
gameId
,
openId
:
"
openid_test
"
+
Math
.
random
(),
//自定义的用户唯一ID
secretKey
:
secretKey
};
const
config
=
{
url
:
serverUrl
,
reconnectMaxTimes
:
5
,
reconnectInterval
:
1000
,
resendInterval
:
1000
,
resendTimeout
:
10000
,
cacertNativeUrl
:
""
};
MGOBE
.
DebuggerLog
.
enable
=
false
;
// 如果是原生平台,则加载 Cert 证书,否则会提示 WSS 错误
if
(
cc
.
sys
.
isNative
)
{
let
cacertFile
;
const
cacertNode
=
cc
.
find
(
'
cacertNode
'
);
if
(
cacertNode
)
{
cacertFile
=
cacertNode
.
getComponent
(
'
cacert
'
).
cacertFile
;
}
if
(
!
cacertFile
)
{
this
.
log
(
'
没有cacertFile!!!
'
);
}
config
.
cacertNativeUrl
=
cc
.
loader
.
md5Pipe
&&
cc
.
ENGINE_VERSION
<
"
2.4.0
"
?
cc
.
loader
.
md5Pipe
.
transformURL
(
cacertFile
.
nativeUrl
)
:
cacertFile
.
nativeUrl
;
}
MGOBE
.
Listener
.
init
(
gameInfo
,
config
,
event
=>
{
this
.
log
(
JSON
.
stringify
(
event
));
if
(
event
.
code
!==
0
)
{
this
.
log
(
"
初始化失败:
"
+
event
.
code
);
reject
();
return
;
}
this
.
log
(
"
初始化成功
"
);
resolve
(
null
);
});
});
}
room
:
MGOBE
.
Room
;
initRoom
()
{
this
.
room
=
new
MGOBE
.
Room
();
MGOBE
.
Listener
.
add
(
this
.
room
);
this
.
room
.
onJoinRoom
=
this
.
onJoinRoom
.
bind
(
this
);
this
.
room
.
onLeaveRoom
=
this
.
onLeaveRoom
.
bind
(
this
);
this
.
room
.
onRecvFromClient
=
this
.
onRecvFromClient
.
bind
(
this
);
this
.
room
.
onRecvFrame
=
this
.
onRecvFrame
.
bind
(
this
);
this
.
room
.
onStartFrameSync
=
this
.
onStartFrameSync
.
bind
(
this
);
this
.
room
.
onStopFrameSync
=
this
.
onStopFrameSync
.
bind
(
this
);
this
.
room
.
onRecvFromGameSvr
=
this
.
onRecvFromGameSvr
.
bind
(
this
);
this
.
log
(
'
this.room =
'
+
JSON
.
stringify
(
this
.
room
.
roomInfo
));
}
joinRoom
(
roomType
:
string
,
maxPlayers
:
number
,
customData
:
string
=
''
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
playerName
=
"
Player-
"
+
Math
.
round
(
Math
.
random
()
*
1000
);
const
playerInfo
=
{
name
:
playerName
,
customPlayerStatus
:
0
,
customProfile
:
customData
,
};
const
matchRoomPara
=
{
playerInfo
,
maxPlayers
:
maxPlayers
,
roomType
:
roomType
};
this
.
room
.
matchRoom
(
matchRoomPara
,
event
=>
{
console
.
log
(
event
);
if
(
event
.
code
===
0
)
{
cc
.
log
(
"
匹配成功
"
);
const
player
=
event
.
data
.
roomInfo
.
playerList
.
find
(
player
=>
player
.
name
==
playerName
);
resolve
(
player
.
id
);
}
else
{
cc
.
log
(
"
匹配失败
"
);
reject
();
}
});
});
}
leaveRoom
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
leaveRoom
({},
event
=>
{
console
.
log
(
event
);
if
(
event
.
code
===
0
)
{
cc
.
log
(
"
退房成功
"
,
this
.
room
.
roomInfo
.
id
);
this
.
room
.
initRoom
();
resolve
(
null
);
}
});
});
}
closeRoom
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
changeRoom
({
isForbidJoin
:
true
},
(
event
)
=>
{
console
.
log
(
'
关门
'
)
console
.
log
(
event
);
resolve
(
null
);
});
});
}
sendMessage
(
msg
)
{
if
(
!
msg
)
{
return
;
}
if
(
typeof
(
msg
)
==
'
object
'
)
{
msg
=
JSON
.
stringify
(
msg
);
}
const
sendToClientPara
=
{
recvType
:
MGOBE
.
ENUM
.
RecvType
.
ROOM_ALL
,
recvPlayerList
:
[],
msg
:
msg
};
this
.
room
.
sendToClient
(
sendToClientPara
,
event
=>
console
.
log
(
event
));
}
startFrameSync
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
startFrameSync
({},
event
=>
{
console
.
log
(
event
);
if
(
event
.
code
===
0
)
{
cc
.
log
(
"
开始帧同步成功,请到控制台查看具体帧同步信息
"
);
resolve
(
null
);
}
else
{
reject
();
}
});
});
}
stopFrameSync
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
room
.
stopFrameSync
({},
event
=>
{
console
.
log
(
event
);
if
(
event
.
code
===
0
)
{
cc
.
log
(
"
停止帧同步成功
"
);
resolve
(
null
);
}
else
{
reject
(
event
.
code
);
}
});
});
}
sendToServer
()
{
const
sendToGameServerPara
=
{
data
:
{
cmd
:
1
}
};
this
.
room
.
sendToGameSvr
(
sendToGameServerPara
,
event
=>
console
.
log
(
event
));
}
sendFrame
(
data
:
any
)
{
this
.
room
.
sendFrame
({
data
},
err
=>
{
if
(
err
.
code
!=
0
)
{
console
.
log
(
"
err
"
,
err
)
}
});
}
sendEvent
(
key
:
String
,
data
:
Object
)
{
this
.
sendFrame
({
key
,
data
});
}
onJoinRoom
(
event
)
{
if
(
this
.
_eventListeners
[
'
playerJoin
'
])
{
this
.
_eventListeners
[
'
playerJoin
'
](
event
);
}
this
.
room
.
roomInfo
=
event
.
data
.
roomInfo
;
console
.
log
(
"
新玩家加入
"
,
event
.
data
.
joinPlayerId
);
}
onLeaveRoom
(
event
)
{
if
(
this
.
_eventListeners
[
'
playerLeave
'
])
{
this
.
_eventListeners
[
'
playerLeave
'
](
event
);
}
this
.
room
.
roomInfo
=
event
.
data
.
roomInfo
;
console
.
log
(
"
玩家退出
"
,
event
.
data
.
leavePlayerId
);
}
onRecvFromClient
()
{
}
onRecvFrame
(
event
)
{
if
(
this
.
_eventListeners
[
'
frameEvent
'
])
{
this
.
_eventListeners
[
'
frameEvent
'
](
event
);
}
}
onStartFrameSync
(
event
)
{
if
(
this
.
_eventListeners
[
'
gameStart
'
])
{
this
.
_eventListeners
[
'
gameStart
'
](
event
);
}
}
onStopFrameSync
(
event
)
{
}
onRecvFromGameSvr
()
{
}
log
(
str
)
{
const
node
=
cc
.
find
(
'
middleLayer
'
);
if
(
node
)
{
node
.
getComponent
(
'
middleLayer
'
).
log
(
str
);
}
else
{
cc
.
log
(
str
);
}
}
async
onDestroy
()
{
try
{
this
.
log
(
'
onDestroy1
'
)
MGOBE
.
Listener
.
clear
();
await
this
.
stopGame
();
this
.
log
(
'
onDestroy2
'
)
}
catch
(
e
)
{
this
.
log
(
JSON
.
stringify
(
e
));
}
}
}
\ No newline at end of file
assets/Coloring_OL/script/_NetworkHelper.ts.meta
deleted
100644 → 0
View file @
82c66511
{
"ver": "1.0.8",
"uuid": "3b5661aa-abb8-448c-b4e5-22ce7bbb78b7",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
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