Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sejong25
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Tear of Sejong
sejong25
Commits
e41809ef
Commit
e41809ef
authored
Jul 20, 2019
by
18신대성
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
단어입력, 공격모드, 남의 공격 등을 다른 플레이어가 알게 구현
parent
dcbdc78c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
49 additions
and
25 deletions
+49
-25
GameServer.js
GameServer.js
+1
-2
Client.js
js/Client.js
+22
-6
GameCycle.js
js/GameCycle.js
+8
-9
WordSpace.js
js/WordSpace.js
+3
-1
server.js
server.js
+15
-7
No files found.
GameServer.js
View file @
e41809ef
...
@@ -201,7 +201,6 @@ class GameRoom
...
@@ -201,7 +201,6 @@ class GameRoom
this
.
announceToRoom
(
'
syncRoomData
'
,
toSync
);
this
.
announceToRoom
(
'
syncRoomData
'
,
toSync
);
console
.
log
(
'
[ROOM#
'
+
this
.
roomId
+
'
] Game Start with
'
+
this
.
currentPlayer
.
length
+
'
players
'
);
console
.
log
(
'
[ROOM#
'
+
this
.
roomId
+
'
] Game Start with
'
+
this
.
currentPlayer
.
length
+
'
players
'
);
this
.
announceToRoom
(
'
changePhase
'
,
GameServer
.
Phase
.
START
);
this
.
announceToRoom
(
'
startGame
'
);
this
.
announceToRoom
(
'
startGame
'
);
this
.
startTime
=
Date
.
now
();
this
.
startTime
=
Date
.
now
();
}
}
...
@@ -323,7 +322,7 @@ class Player
...
@@ -323,7 +322,7 @@ class Player
}
}
room
.
announceToRoom
(
'
defeat
'
,
this
);
room
.
announceToRoom
(
'
defeat
'
,
this
);
console
.
log
(
'
[
'
+
this
.
id
+
'
] defeated, rank:
'
+
this
.
rank
+
'
,
'
+
room
.
currentPlayer
.
length
+
'
player left
'
);
console
.
log
(
'
[
'
+
this
.
id
+
'
] defeated, rank:
'
+
this
.
rank
+
'
,
'
+
room
.
aliveCount
+
'
player left
'
);
if
(
socket
.
playerData
.
currentRoom
.
aliveCount
===
1
)
if
(
socket
.
playerData
.
currentRoom
.
aliveCount
===
1
)
{
{
...
...
js/Client.js
View file @
e41809ef
...
@@ -22,6 +22,8 @@ socket.on('setId', function(msg) // {str, num playerNum}
...
@@ -22,6 +22,8 @@ socket.on('setId', function(msg) // {str, num playerNum}
console
.
log
(
msg
.
str
);
console
.
log
(
msg
.
str
);
PlayerData
.
id
=
msg
.
num
;
PlayerData
.
id
=
msg
.
num
;
});
});
// init game
socket
.
on
(
'
enterRoom
'
,
function
()
socket
.
on
(
'
enterRoom
'
,
function
()
{
{
Audio
.
killSound
(
ScenesData
.
menuScene
,
'
login
'
);
Audio
.
killSound
(
ScenesData
.
menuScene
,
'
login
'
);
...
@@ -82,8 +84,6 @@ socket.on('setRoomCount', function(msg)
...
@@ -82,8 +84,6 @@ socket.on('setRoomCount', function(msg)
}
}
},
200
);
},
200
);
});
});
// init game
socket
.
on
(
'
syncRoomData
'
,
function
(
msg
)
// {num roomNum, [] players}
socket
.
on
(
'
syncRoomData
'
,
function
(
msg
)
// {num roomNum, [] players}
{
{
//console.log(msg);
//console.log(msg);
...
@@ -110,12 +110,29 @@ socket.on('changePhase', function(msg) // number Phase
...
@@ -110,12 +110,29 @@ socket.on('changePhase', function(msg) // number Phase
{
{
console
.
log
(
'
phase changed from
'
+
WordSpace
.
CurrentPhase
+
'
to
'
+
msg
);
console
.
log
(
'
phase changed from
'
+
WordSpace
.
CurrentPhase
+
'
to
'
+
msg
);
WordSpace
.
CurrentPhase
=
msg
;
WordSpace
.
CurrentPhase
=
msg
;
// 이때 시간 3초 지연시키기
});
});
socket
.
on
(
'
setPlayerTypingRate
'
,
function
(
msg
)
// number playerTypingRate
socket
.
on
(
'
setPlayerTypingRate
'
,
function
(
msg
)
// number playerTypingRate
{
{
WordSpace
.
PlayerTypingRate
=
msg
;
WordSpace
.
PlayerTypingRate
=
msg
;
//console.log('rate: ' + msg);
//console.log('rate: ' + msg);
});
});
socket
.
on
(
'
writeWord
'
,
function
(
msg
)
// number playerId
{
console
.
log
(
msg
+
'
write word
'
);
// msg의 id를 가진 사람이 writeWord한다.
});
socket
.
on
(
'
attackMode
'
,
function
(
msg
)
// number playerId
{
// if (msg's attackMode is false)
console
.
log
(
msg
+
'
is on attack Mode
'
);
// msg의 id를 가진 사람이 attack Mode이다.
});
socket
.
on
(
'
attack
'
,
function
(
msg
)
// {number attackerId, number targetId}
{
// 이때 위의 attack Mode인 사람(msg.attackerId)을 해제해주자.
console
.
log
(
msg
.
attackerId
+
'
attack to
'
+
msg
.
targetId
);
});
socket
.
on
(
'
attacked
'
,
function
(
msg
)
// object attackData
socket
.
on
(
'
attacked
'
,
function
(
msg
)
// object attackData
{
{
//console.log('attacked by ' + msg.attacker.nickname);
//console.log('attacked by ' + msg.attacker.nickname);
...
@@ -123,7 +140,7 @@ socket.on('attacked', function(msg) // object attackData
...
@@ -123,7 +140,7 @@ socket.on('attacked', function(msg) // object attackData
{
{
WordSpace
.
generateWord
.
Attack
(
ScenesData
.
gameScene
,
msg
.
text
,
msg
.
grade
,
msg
.
attacker
,
msg
.
isStrong
,
msg
.
isCountable
);
WordSpace
.
generateWord
.
Attack
(
ScenesData
.
gameScene
,
msg
.
text
,
msg
.
grade
,
msg
.
attacker
,
msg
.
isStrong
,
msg
.
isCountable
);
},
4000
);
},
4000
);
console
.
log
(
timeout
);
//
console.log(timeout);
});
});
socket
.
on
(
'
defeat
'
,
function
(
msg
)
// object player
socket
.
on
(
'
defeat
'
,
function
(
msg
)
// object player
{
{
...
@@ -144,10 +161,9 @@ socket.on('gameEnd', function(msg) // object player
...
@@ -144,10 +161,9 @@ socket.on('gameEnd', function(msg) // object player
{
{
console
.
log
(
msg
.
nickname
+
'
Win!!!!!!
'
);
console
.
log
(
msg
.
nickname
+
'
Win!!!!!!
'
);
});
});
socket
.
on
(
'
attackSucceed
'
,
function
(
msg
)
socket
.
on
(
'
attackSucceed
'
,
function
(
msg
)
{
{
console
.
log
(
'
client
'
);
//
console.log('client');
let
tempWord
=
WordSpace
.
generateWord
.
Name
(
ScenesData
.
gameScene
,
true
,
msg
.
victim
);
let
tempWord
=
WordSpace
.
generateWord
.
Name
(
ScenesData
.
gameScene
,
true
,
msg
.
victim
);
tempWord
.
destroy
();
tempWord
.
destroy
();
});
});
...
@@ -155,7 +171,7 @@ socket.on('attackSucceed', function(msg)
...
@@ -155,7 +171,7 @@ socket.on('attackSucceed', function(msg)
// out game
// out game
socket
.
on
(
'
userDisconnect
'
,
function
(
msg
)
// {num index , num id, str nickname}
socket
.
on
(
'
userDisconnect
'
,
function
(
msg
)
// {num index , num id, str nickname}
{
{
console
.
log
(
msg
.
index
+
'
/
'
+
msg
.
id
+
'
/
'
+
msg
.
nickname
+
'
disconnected
'
);
//
console.log(msg.index + ' / ' + msg.id + ' / ' + msg.nickname + ' disconnected');
RoomData
.
players
[
msg
.
index
]
=
msg
;
RoomData
.
players
[
msg
.
index
]
=
msg
;
RoomData
.
aliveCount
--
;
RoomData
.
aliveCount
--
;
});
});
\ No newline at end of file
js/GameCycle.js
View file @
e41809ef
...
@@ -3,10 +3,7 @@ WordSpace.startCycle = function(scene)
...
@@ -3,10 +3,7 @@ WordSpace.startCycle = function(scene)
WordSpace
.
wordCycle
.
resetCycle
(
scene
,
3000
,
0
,
true
);
WordSpace
.
wordCycle
.
resetCycle
(
scene
,
3000
,
0
,
true
);
WordSpace
.
nameCycle
.
resetCycle
(
scene
,
3000
,
0
,
true
);
WordSpace
.
nameCycle
.
resetCycle
(
scene
,
3000
,
0
,
true
);
WordSpace
.
varAdjustCycle
.
resetCycle
(
scene
,
100
,
0
,
true
);
WordSpace
.
varAdjustCycle
.
resetCycle
(
scene
,
100
,
0
,
true
);
WordSpace
.
playerTypingCycle
=
setInterval
(
function
()
WordSpace
.
playerTypingCycle
.
resetCycle
(
scene
,
500
,
500
,
true
);
{
socket
.
emit
(
'
setPlayerTyping
'
,
WordSpace
.
playerTyping
);
},
500
);
}
}
WordSpace
.
pauseCycle
=
function
(
isPause
)
WordSpace
.
pauseCycle
=
function
(
isPause
)
...
@@ -15,11 +12,7 @@ WordSpace.pauseCycle = function(isPause)
...
@@ -15,11 +12,7 @@ WordSpace.pauseCycle = function(isPause)
WordSpace
.
nameCycle
.
currentCycle
.
paused
=
isPause
;
WordSpace
.
nameCycle
.
currentCycle
.
paused
=
isPause
;
WordSpace
.
varAdjustCycle
.
currentCycle
.
paused
=
isPause
;
WordSpace
.
varAdjustCycle
.
currentCycle
.
paused
=
isPause
;
WordSpace
.
attackGauge
.
pauseCycle
(
isPause
);
WordSpace
.
attackGauge
.
pauseCycle
(
isPause
);
if
(
isPause
)
clearInterval
(
WordSpace
.
playerTypingCycle
);
WordSpace
.
playerTypingCycle
.
currentCycle
.
paused
=
isPause
;
else
WordSpace
.
playerTypingCycle
=
setInterval
(
function
()
{
socket
.
emit
(
'
setPlayerTyping
'
,
WordSpace
.
playerTyping
);
},
500
);
}
}
class
Cycle
//앞으로 cycle은 이 클래스를 사용해서 구현할 것
class
Cycle
//앞으로 cycle은 이 클래스를 사용해서 구현할 것
...
@@ -65,4 +58,10 @@ WordSpace.varAdjustCycle = new Cycle(function()
...
@@ -65,4 +58,10 @@ WordSpace.varAdjustCycle = new Cycle(function()
//WordSpace.GetPhase();
//WordSpace.GetPhase();
//WordSpace.GetPlayerTypingRate();
//WordSpace.GetPlayerTypingRate();
WordSpace
.
AdjustVarByPhase
(
WordSpace
.
playerTypingRate
,
WordSpace
.
CurrentPhase
);
WordSpace
.
AdjustVarByPhase
(
WordSpace
.
playerTypingRate
,
WordSpace
.
CurrentPhase
);
});
// playerTypingRate 갱신용 사이클
WordSpace
.
playerTypingCycle
=
new
Cycle
(
function
()
{
socket
.
emit
(
'
setPlayerTyping
'
,
{
playerTyping
:
WordSpace
.
playerTyping
,
isWord
:
WordSpace
.
setPlayerTyping
.
writeWord
,
isAttackMode
:
Input
.
attackMode
}
);
WordSpace
.
setPlayerTyping
.
writeWord
=
false
;
});
});
\ No newline at end of file
js/WordSpace.js
View file @
e41809ef
...
@@ -21,7 +21,7 @@ WordSpace.wordPhysicsGroup = null;
...
@@ -21,7 +21,7 @@ WordSpace.wordPhysicsGroup = null;
WordSpace
.
GradeProb
=
[
0.35
,
0.6
,
0.8
];
WordSpace
.
GradeProb
=
[
0.35
,
0.6
,
0.8
];
WordSpace
.
Phase
=
{
READY
:
0
,
START
:
1
,
MAIN
:
2
,
MUSIC
:
3
};
WordSpace
.
Phase
=
{
READY
:
0
,
START
:
1
,
MAIN
:
2
,
MUSIC
:
3
};
WordSpace
.
CurrentPhase
=
WordSpace
.
Phase
.
READY
;
WordSpace
.
CurrentPhase
=
WordSpace
.
Phase
.
START
;
WordSpace
.
playerTyping
=
0
;
WordSpace
.
playerTyping
=
0
;
WordSpace
.
playerTypingRate
=
0
;
WordSpace
.
playerTypingRate
=
0
;
...
@@ -372,11 +372,13 @@ WordSpace.findWord = function(wordText)
...
@@ -372,11 +372,13 @@ WordSpace.findWord = function(wordText)
WordSpace
.
setPlayerTyping
=
WordSpace
.
setPlayerTyping
=
{
{
totalTyping
:
0
,
totalTyping
:
0
,
writeWord
:
false
,
add
:
function
(
wordText
)
add
:
function
(
wordText
)
{
{
this
.
totalTyping
+=
wordText
!=
null
?
WordReader
.
getWordTyping
(
wordText
)
:
0
;
this
.
totalTyping
+=
wordText
!=
null
?
WordReader
.
getWordTyping
(
wordText
)
:
0
;
WordSpace
.
playerTyping
=
this
.
totalTyping
/
WordSpace
.
gameTimer
.
now
*
60
*
1000
;
WordSpace
.
playerTyping
=
this
.
totalTyping
/
WordSpace
.
gameTimer
.
now
*
60
*
1000
;
this
.
text
.
setText
(
'
현재 타수 :
'
+
WordSpace
.
playerTyping
.
toFixed
(
1
));
this
.
text
.
setText
(
'
현재 타수 :
'
+
WordSpace
.
playerTyping
.
toFixed
(
1
));
this
.
writeWord
=
wordText
!=
''
?
true
:
false
;
},
},
initiate
:
function
(
scene
)
initiate
:
function
(
scene
)
{
{
...
...
server.js
View file @
e41809ef
...
@@ -58,22 +58,29 @@ io.on('connection', function(socket)
...
@@ -58,22 +58,29 @@ io.on('connection', function(socket)
{
{
try
try
{
{
socket
.
playerData
.
playingData
.
playerTyping
=
msg
;
socket
.
playerData
.
playingData
.
playerTyping
=
msg
.
playerTyping
;
if
(
socket
.
playerData
.
currentRoom
.
maxTypingPlayer
.
playerTyping
<
msg
)
if
(
socket
.
playerData
.
currentRoom
.
maxTypingPlayer
.
playerTyping
<
msg
.
playerTyping
)
{
{
socket
.
playerData
.
currentRoom
.
maxTypingPlayer
=
socket
.
playerData
.
playingData
;
socket
.
playerData
.
currentRoom
.
maxTypingPlayer
=
socket
.
playerData
.
playingData
;
}
}
if
(
socket
.
playerData
.
currentRoom
.
minTypingPlayer
.
playerTyping
>
msg
)
if
(
socket
.
playerData
.
currentRoom
.
minTypingPlayer
.
playerTyping
>
msg
.
playerTyping
)
{
{
socket
.
playerData
.
currentRoom
.
minTypingPlayer
=
socket
.
playerData
.
playingData
;
socket
.
playerData
.
currentRoom
.
minTypingPlayer
=
socket
.
playerData
.
playingData
;
}
}
let
playerTypingRate
=
(
msg
-
(
socket
.
playerData
.
currentRoom
.
minTypingPlayer
.
playerTyping
-
socket
.
playerData
.
currentRoom
.
rateArrangePoint
))
/
let
playerTypingRate
=
(
msg
.
playerTyping
-
(
socket
.
playerData
.
currentRoom
.
minTypingPlayer
.
playerTyping
-
socket
.
playerData
.
currentRoom
.
rateArrangePoint
))
/
(
socket
.
playerData
.
currentRoom
.
maxTypingPlayer
.
playerTyping
-
socket
.
playerData
.
currentRoom
.
minTypingPlayer
.
playerTyping
+
socket
.
playerData
.
currentRoom
.
rateArrangePoint
*
2
);
(
socket
.
playerData
.
currentRoom
.
maxTypingPlayer
.
playerTyping
-
socket
.
playerData
.
currentRoom
.
minTypingPlayer
.
playerTyping
+
socket
.
playerData
.
currentRoom
.
rateArrangePoint
*
2
);
socket
.
emit
(
'
setPlayerTypingRate
'
,
playerTypingRate
);
socket
.
emit
(
'
setPlayerTypingRate
'
,
playerTypingRate
);
if
(
msg
.
isWord
)
{
socket
.
playerData
.
currentRoom
.
announceToRoom
(
'
writeWord
'
,
socket
.
playerData
.
id
);
}
if
(
msg
.
isAttackMode
)
{
socket
.
playerData
.
currentRoom
.
announceToRoom
(
'
attackMode
'
,
socket
.
playerData
.
id
);
}
}
}
catch
(
e
)
catch
(
e
)
{
console
.
log
(
'
[ERR] error catched on setPlayerTyping
'
)}
{
}
});
});
socket
.
on
(
'
endCount
'
,
function
()
socket
.
on
(
'
endCount
'
,
function
()
...
@@ -88,6 +95,7 @@ io.on('connection', function(socket)
...
@@ -88,6 +95,7 @@ io.on('connection', function(socket)
socket
.
on
(
'
attack
'
,
function
(
msg
)
socket
.
on
(
'
attack
'
,
function
(
msg
)
{
{
socket
.
playerData
.
currentRoom
.
announceToTarget
(
msg
.
target
,
'
attacked
'
,
msg
);
socket
.
playerData
.
currentRoom
.
announceToTarget
(
msg
.
target
,
'
attacked
'
,
msg
);
socket
.
playerData
.
currentRoom
.
announceToRoom
(
'
attack
'
,
{
attackerId
:
msg
.
attacker
.
id
,
targetId
:
msg
.
target
});
//console.log('attack ' + msg.target + ' by ' + msg.attacker.id + ' with ' + msg.text);
//console.log('attack ' + msg.target + ' by ' + msg.attacker.id + ' with ' + msg.text);
setTimeout
(
function
()
setTimeout
(
function
()
{
{
...
...
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