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
eaeeecb9
Commit
eaeeecb9
authored
Aug 23, 2019
by
18손재민
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'wordspace' into release
parents
6f6149a7
2c245f69
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
63 additions
and
56 deletions
+63
-56
GameServer.js
GameServer.js
+9
-13
buy.png
assets/image/UI/decisionBtn/buy.png
+0
-0
equip.png
assets/image/UI/decisionBtn/equip.png
+0
-0
bought_item.png
assets/image/UI/shop/bought_item.png
+0
-0
shop_background.png
assets/image/UI/shop/shop_background.png
+0
-0
shop_example.png
assets/image/UI/shop/shop_example.png
+0
-0
BGMsound.js
js/BGMsound.js
+4
-2
Background.js
js/Background.js
+5
-0
Client.js
js/Client.js
+5
-14
FirebaseClient.js
js/FirebaseClient.js
+1
-0
Input.js
js/Input.js
+1
-1
ResourceLoader.js
js/ResourceLoader.js
+4
-2
ScenesData.js
js/ScenesData.js
+24
-21
WordSpace.js
js/WordSpace.js
+10
-3
No files found.
GameServer.js
View file @
eaeeecb9
...
@@ -143,7 +143,8 @@ class GameRoom
...
@@ -143,7 +143,8 @@ class GameRoom
{
{
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
READY
)
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
READY
)
{
{
this
.
endTime
=
Date
.
now
()
+
30000
;
// 방 대기 시간
this
.
countStartTime
=
Date
.
now
();
this
.
endTime
=
30000
;
// 방 대기 시간
this
.
announceToRoom
(
'
setRoomCount
'
,
this
.
announceToRoom
(
'
setRoomCount
'
,
{
{
isEnable
:
true
,
endTime
:
this
.
endTime
,
playerCount
:
this
.
currentPlayer
.
length
,
isEnable
:
true
,
endTime
:
this
.
endTime
,
playerCount
:
this
.
currentPlayer
.
length
,
...
@@ -153,6 +154,7 @@ class GameRoom
...
@@ -153,6 +154,7 @@ class GameRoom
}
}
else
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
COUNT
)
else
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
COUNT
)
{
{
this
.
endTime
=
this
.
endTime
-
(
Time
.
now
()
-
this
.
countStartTime
);
this
.
announceToRoom
(
'
setRoomCount
'
,
this
.
announceToRoom
(
'
setRoomCount
'
,
{
{
isEnable
:
true
,
endTime
:
this
.
endTime
,
playerCount
:
this
.
currentPlayer
.
length
,
isEnable
:
true
,
endTime
:
this
.
endTime
,
playerCount
:
this
.
currentPlayer
.
length
,
...
@@ -264,32 +266,26 @@ class GameRoom
...
@@ -264,32 +266,26 @@ class GameRoom
console
.
table
(
this
.
currentPlayer
);
console
.
table
(
this
.
currentPlayer
);
this
.
announceToRoom
(
'
startGame
'
);
this
.
announceToRoom
(
'
startGame
'
);
this
.
startTime
=
Date
.
now
();
this
.
startTime
=
Date
.
now
();
setTimeout
(
function
()
{
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
START
)
this
.
checkPhase
(
Date
.
now
());
}.
bind
(
this
),
6000
);
}
}
checkPhase
(
checkTime
)
checkPhase
(
checkTime
)
{
{
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
START
)
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
START
)
{
{
if
(
this
.
phaseChanger
<
0
&&
checkTime
-
this
.
startTime
>
1
000
)
if
(
checkTime
-
this
.
startTime
>
6
000
)
{
{
this
.
currentPhase
=
GameServer
.
Phase
.
MAIN
;
this
.
currentPhase
=
GameServer
.
Phase
.
MAIN
;
this
.
rateArrangePoint
=
150
;
this
.
rateArrangePoint
=
150
;
this
.
announceToRoom
(
'
changePhase
'
,
GameServer
.
Phase
.
MAIN
);
this
.
announceToRoom
(
'
changePhase
'
,
GameServer
.
Phase
.
MAIN
);
}
}
else
if
(
this
.
phaseChanger
<
0
)
{
this
.
phaseChanger
=
setTimeout
(
function
(
room
)
{
room
.
currentPhase
=
GameServer
.
Phase
.
MAIN
;
room
.
rateArrangePoint
=
150
;
room
.
announceToRoom
(
'
changePhase
'
,
GameServer
.
Phase
.
MAIN
);
room
.
phaseChanger
=
-
1
;
},
60000
-
(
checkTime
-
this
.
startTime
),
this
);
}
}
}
else
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
MAIN
)
else
if
(
this
.
currentPhase
===
GameServer
.
Phase
.
MAIN
)
{
{
let
playerLimit
=
Math
.
m
in
(
Math
.
round
(
this
.
currentPlayer
.
length
/
5
),
3
);
let
playerLimit
=
Math
.
m
ax
(
Math
.
round
(
this
.
currentPlayer
.
length
/
5
),
3
);
if
(
this
.
aliveCount
<=
playerLimit
)
if
(
this
.
aliveCount
<=
playerLimit
)
{
{
this
.
currentPhase
=
GameServer
.
Phase
.
MUSIC
;
this
.
currentPhase
=
GameServer
.
Phase
.
MUSIC
;
...
...
assets/image/UI/decisionBtn/buy.png
0 → 100644
View file @
eaeeecb9
15.6 KB
assets/image/UI/decisionBtn/equip.png
0 → 100644
View file @
eaeeecb9
13.5 KB
assets/image/UI/shop/bought_item.png
0 → 100644
View file @
eaeeecb9
16.7 KB
assets/image/UI/shop/shop_background.png
0 → 100644
View file @
eaeeecb9
1.15 MB
assets/image/UI/shop/shop_example.png
0 → 100644
View file @
eaeeecb9
1.2 MB
js/BGMsound.js
View file @
eaeeecb9
...
@@ -29,12 +29,13 @@ Audio.loadSound = function(scene)
...
@@ -29,12 +29,13 @@ Audio.loadSound = function(scene)
Audio
.
playSound
=
function
(
scene
,
title
)
// 한 번만 재생할 때 사용
Audio
.
playSound
=
function
(
scene
,
title
)
// 한 번만 재생할 때 사용
{
{
bgm
=
scene
.
sound
.
add
(
title
);
let
sound
=
scene
.
sound
.
add
(
title
);
bgm
.
play
();
sound
.
play
();
}
}
Audio
.
loopSound
=
function
(
scene
,
title
)
// 반복재생할 때 사용
Audio
.
loopSound
=
function
(
scene
,
title
)
// 반복재생할 때 사용
{
{
if
(
bgm
!=
null
)
this
.
killSound
(
scene
,
title
);
bgm
=
scene
.
sound
.
add
(
title
);
bgm
=
scene
.
sound
.
add
(
title
);
bgm
.
setLoop
(
true
);
bgm
.
setLoop
(
true
);
bgm
.
play
();
bgm
.
play
();
...
@@ -56,3 +57,4 @@ Audio.killSound = function(scene, title)
...
@@ -56,3 +57,4 @@ Audio.killSound = function(scene, title)
bgm
.
stop
();
bgm
.
stop
();
}
}
// 전반적으로 함수 수정 필요..
\ No newline at end of file
js/Background.js
View file @
eaeeecb9
...
@@ -52,6 +52,11 @@ BackGround.drawMenu = function(scene)
...
@@ -52,6 +52,11 @@ BackGround.drawMenu = function(scene)
scene
.
add
.
sprite
(
game
.
config
.
width
/
2
,
game
.
config
.
height
/
2
,
'
menuBackground
'
).
setDisplaySize
(
game
.
config
.
width
,
game
.
config
.
height
).
setDepth
(
3
);
scene
.
add
.
sprite
(
game
.
config
.
width
/
2
,
game
.
config
.
height
/
2
,
'
menuBackground
'
).
setDisplaySize
(
game
.
config
.
width
,
game
.
config
.
height
).
setDepth
(
3
);
}
}
BackGround
.
drawShop
=
function
(
scene
)
{
scene
.
add
.
sprite
(
game
.
config
.
width
/
2
,
game
.
config
.
height
/
2
,
'
shopBackground
'
).
setDisplaySize
(
game
.
config
.
width
,
game
.
config
.
height
).
setDepth
(
3
);
}
BackGround
.
drawRoom
=
function
(
scene
)
BackGround
.
drawRoom
=
function
(
scene
)
{
{
scene
.
add
.
sprite
(
game
.
config
.
width
/
2
,
game
.
config
.
height
/
2
,
'
roomBackground
'
).
setDisplaySize
(
game
.
config
.
width
,
game
.
config
.
height
).
setDepth
(
5.2
);
scene
.
add
.
sprite
(
game
.
config
.
width
/
2
,
game
.
config
.
height
/
2
,
'
roomBackground
'
).
setDisplaySize
(
game
.
config
.
width
,
game
.
config
.
height
).
setDepth
(
5.2
);
...
...
js/Client.js
View file @
eaeeecb9
...
@@ -70,7 +70,7 @@ socket.on('setRoomCount', function(msg)
...
@@ -70,7 +70,7 @@ socket.on('setRoomCount', function(msg)
setTimeout
(
function
()
setTimeout
(
function
()
{
{
ScenesData
.
roomScene
.
isCounting
=
msg
.
isEnable
;
ScenesData
.
roomScene
.
isCounting
=
msg
.
isEnable
;
ScenesData
.
roomScene
.
endTime
=
msg
.
endTime
;
ScenesData
.
roomScene
.
endTime
=
Date
.
now
()
+
msg
.
endTime
;
ScenesData
.
roomScene
.
peopleCount
=
msg
.
playerCount
;
ScenesData
.
roomScene
.
peopleCount
=
msg
.
playerCount
;
if
(
msg
.
isEnter
)
// generate character
if
(
msg
.
isEnter
)
// generate character
...
@@ -207,14 +207,7 @@ socket.on('defeat', function(msg) // object player
...
@@ -207,14 +207,7 @@ socket.on('defeat', function(msg) // object player
let
nicknameText
=
RoomData
.
findPlayer
(
msg
.
id
).
nicknameText
;
let
nicknameText
=
RoomData
.
findPlayer
(
msg
.
id
).
nicknameText
;
let
earnedStrongHopae
=
RoomData
.
findPlayer
(
msg
.
id
).
earnedStrongHopae
;
let
earnedStrongHopae
=
RoomData
.
findPlayer
(
msg
.
id
).
earnedStrongHopae
;
if
(
WordSpace
.
CurrentPhase
==
1
)
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase1
'
);
if
(
WordSpace
.
CurrentPhase
==
2
)
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase2
'
);
if
(
WordSpace
.
CurrentPhase
==
3
)
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase3
'
);
Audio
.
playSound
(
ScenesData
.
gameScene
,
'
defeat
'
);
RoomData
.
players
[
msg
.
index
]
=
msg
;
RoomData
.
players
[
msg
.
index
]
=
msg
;
RoomData
.
players
[
msg
.
index
].
playerImage
=
playerImage
;
RoomData
.
players
[
msg
.
index
].
playerImage
=
playerImage
;
RoomData
.
players
[
msg
.
index
].
position
=
position
;
RoomData
.
players
[
msg
.
index
].
position
=
position
;
...
@@ -361,6 +354,7 @@ socket.on('defeat', function(msg) // object player
...
@@ -361,6 +354,7 @@ socket.on('defeat', function(msg) // object player
}
}
if
(
msg
.
id
==
RoomData
.
myself
.
id
)
if
(
msg
.
id
==
RoomData
.
myself
.
id
)
{
{
Audio
.
loopSound
(
ScenesData
.
gameScene
,
'
defeat
'
);
RoomData
.
myself
=
RoomData
.
players
[
msg
.
index
];
RoomData
.
myself
=
RoomData
.
players
[
msg
.
index
];
setTimeout
(()
=>
{
setTimeout
(()
=>
{
gameEndMenu
(
false
);
gameEndMenu
(
false
);
...
@@ -378,10 +372,10 @@ socket.on('gameEnd', function(msg) // number winnerId
...
@@ -378,10 +372,10 @@ socket.on('gameEnd', function(msg) // number winnerId
if
(
WordSpace
.
CurrentPhase
==
3
)
if
(
WordSpace
.
CurrentPhase
==
3
)
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase3
'
);
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase3
'
);
Audio
.
playSound
(
ScenesData
.
gameScene
,
'
victory
'
);
console
.
log
(
winner
.
nickname
+
'
Win!!!!!!
'
);
console
.
log
(
winner
.
nickname
+
'
Win!!!!!!
'
);
if
(
msg
==
RoomData
.
myself
.
id
)
if
(
msg
==
RoomData
.
myself
.
id
)
{
{
Audio
.
loopSound
(
ScenesData
.
gameScene
,
'
victory
'
);
RoomData
.
myself
.
rank
=
1
;
RoomData
.
myself
.
rank
=
1
;
setTimeout
(()
=>
{
setTimeout
(()
=>
{
gameEndMenu
(
true
);
gameEndMenu
(
true
);
...
@@ -393,7 +387,6 @@ socket.on('attackSucceed', function(msg)
...
@@ -393,7 +387,6 @@ socket.on('attackSucceed', function(msg)
{
{
//console.log('client');
//console.log('client');
let
tempWord
=
WordSpace
.
generateWord
.
Name
(
ScenesData
.
gameScene
,
true
,
RoomData
.
findPlayer
(
msg
.
victimId
));
let
tempWord
=
WordSpace
.
generateWord
.
Name
(
ScenesData
.
gameScene
,
true
,
RoomData
.
findPlayer
(
msg
.
victimId
));
tempWord
.
instantiate
(
ScenesData
.
gameScene
);
let
victimPos
=
RoomData
.
findPlayer
(
msg
.
victimId
).
position
;
let
victimPos
=
RoomData
.
findPlayer
(
msg
.
victimId
).
position
;
tempWord
.
physicsObj
.
setPosition
(
victimPos
.
x
,
victimPos
.
y
);
tempWord
.
physicsObj
.
setPosition
(
victimPos
.
x
,
victimPos
.
y
);
tempWord
.
wordObj
.
setPosition
(
tempWord
.
physicsObj
.
x
,
tempWord
.
physicsObj
.
y
);
tempWord
.
wordObj
.
setPosition
(
tempWord
.
physicsObj
.
x
,
tempWord
.
physicsObj
.
y
);
...
@@ -417,10 +410,9 @@ var gameEndMenu = function(isWin)
...
@@ -417,10 +410,9 @@ var gameEndMenu = function(isWin)
let
earnedMoney
=
0
;
let
earnedMoney
=
0
;
if
(
isWin
)
earnedMoney
+=
20
;
if
(
isWin
)
earnedMoney
+=
20
;
earnedMoney
+=
RoomData
.
myself
.
killCount
*
3
;
earnedMoney
+=
RoomData
.
myself
.
killCount
*
3
;
earnedMoney
+=
parseInt
(
WordSpace
.
playerTyping
/
1
0
);
earnedMoney
+=
parseInt
(
WordSpace
.
playerTyping
/
4
0
);
earnedMoney
+=
Math
.
max
(
20
,
Math
.
pow
(
RoomData
.
myself
.
attackSucceed
,
2
));
earnedMoney
+=
Math
.
max
(
20
,
Math
.
pow
(
RoomData
.
myself
.
attackSucceed
,
2
));
earnedMoney
+=
parseInt
(
20
*
(
1
-
(
RoomData
.
myself
.
rank
-
1
)
/
(
RoomData
.
players
.
length
-
1
)));
earnedMoney
+=
parseInt
(
20
*
(
1
-
(
RoomData
.
myself
.
rank
-
1
)
/
(
RoomData
.
players
.
length
-
1
)));
earnedMoney
=
parseInt
(
earnedMoney
/
40
);
Input
.
inputField
.
text
.
destroy
();
Input
.
inputField
.
text
.
destroy
();
...
@@ -432,7 +424,6 @@ var gameEndMenu = function(isWin)
...
@@ -432,7 +424,6 @@ var gameEndMenu = function(isWin)
ScenesData
.
changeScene
(
'
menuScene
'
);
ScenesData
.
changeScene
(
'
menuScene
'
);
}
}
ScenesData
.
gameScene
.
backToMenuDialog
=
ScenesData
.
gameScene
.
rexUI
.
add
.
dialog
({
ScenesData
.
gameScene
.
backToMenuDialog
=
ScenesData
.
gameScene
.
rexUI
.
add
.
dialog
({
x
:
game
.
config
.
width
/
2
,
x
:
game
.
config
.
width
/
2
,
y
:
game
.
config
.
height
/
2
,
y
:
game
.
config
.
height
/
2
,
...
...
js/FirebaseClient.js
View file @
eaeeecb9
...
@@ -266,6 +266,7 @@ FirebaseClient.prototype.updateUserData = function(key, valueChanged, replace =
...
@@ -266,6 +266,7 @@ FirebaseClient.prototype.updateUserData = function(key, valueChanged, replace =
break
;
break
;
case
'
skin
'
:
case
'
skin
'
:
beforeData
.
skin
=
valueChanged
;
beforeData
.
skin
=
valueChanged
;
break
;
default
:
default
:
console
.
log
(
'
[ERROR] database has no key for
'
+
key
);
console
.
log
(
'
[ERROR] database has no key for
'
+
key
);
break
;
break
;
...
...
js/Input.js
View file @
eaeeecb9
...
@@ -387,7 +387,7 @@ Input.inputField =
...
@@ -387,7 +387,7 @@ Input.inputField =
Input
.
pushInput
=
function
(
inputKey
)
Input
.
pushInput
=
function
(
inputKey
)
{
{
if
(
(
ScenesData
.
currentScene
!=
'
gameScene
'
||
RoomData
.
myself
.
isAlive
)
&&
this
.
justPressed
!=
inputKey
)
if
(
!
WordSpace
.
isGameOver
&&
RoomData
.
myself
.
isAlive
&&
this
.
justPressed
!=
inputKey
)
{
{
this
.
justPressed
=
inputKey
;
this
.
justPressed
=
inputKey
;
let
output
;
let
output
;
...
...
js/ResourceLoader.js
View file @
eaeeecb9
...
@@ -7,6 +7,7 @@ ResourceLoader.loadBackGround = function(scene)
...
@@ -7,6 +7,7 @@ ResourceLoader.loadBackGround = function(scene)
scene
.
load
.
image
(
'
gameBackground
'
,
'
assets/image/background/background_brain.png
'
);
scene
.
load
.
image
(
'
gameBackground
'
,
'
assets/image/background/background_brain.png
'
);
scene
.
load
.
image
(
'
menuBackground
'
,
'
assets/image/UI/main/mainBackground.png
'
);
scene
.
load
.
image
(
'
menuBackground
'
,
'
assets/image/UI/main/mainBackground.png
'
);
scene
.
load
.
image
(
'
roomBackground
'
,
'
assets/placeholder/roomBackground.png
'
);
scene
.
load
.
image
(
'
roomBackground
'
,
'
assets/placeholder/roomBackground.png
'
);
scene
.
load
.
image
(
'
shopBackground
'
,
'
assets/image/UI/shop/shop_background.png
'
);
}
}
ResourceLoader
.
loadImage
=
function
(
scene
)
ResourceLoader
.
loadImage
=
function
(
scene
)
...
@@ -65,6 +66,7 @@ ResourceLoader.loadImage = function(scene)
...
@@ -65,6 +66,7 @@ ResourceLoader.loadImage = function(scene)
scene
.
load
.
image
(
'
friendlyPlayBtn
'
,
'
assets/image/UI/main/friendlyPlay.png
'
);
scene
.
load
.
image
(
'
friendlyPlayBtn
'
,
'
assets/image/UI/main/friendlyPlay.png
'
);
scene
.
load
.
image
(
'
rankPlayBtn
'
,
'
assets/image/UI/main/rankPlay.png
'
);
scene
.
load
.
image
(
'
rankPlayBtn
'
,
'
assets/image/UI/main/rankPlay.png
'
);
scene
.
load
.
image
(
'
shopBtn
'
,
'
assets/image/UI/main/shop.png
'
);
scene
.
load
.
image
(
'
shopBtn
'
,
'
assets/image/UI/main/shop.png
'
);
scene
.
load
.
image
(
'
boughtItem
'
,
'
assets/image/UI/shop/bought_item.png
'
);
scene
.
load
.
image
(
'
hopaeManageBtn
'
,
'
assets/image/UI/main/hopaeManage.png
'
);
scene
.
load
.
image
(
'
hopaeManageBtn
'
,
'
assets/image/UI/main/hopaeManage.png
'
);
scene
.
load
.
image
(
'
helpBtn
'
,
'
assets/image/UI/main/help.png
'
);
scene
.
load
.
image
(
'
helpBtn
'
,
'
assets/image/UI/main/help.png
'
);
...
@@ -75,6 +77,8 @@ ResourceLoader.loadImage = function(scene)
...
@@ -75,6 +77,8 @@ ResourceLoader.loadImage = function(scene)
scene
.
load
.
image
(
'
noBtn
'
,
'
assets/image/UI/decisionBtn/no.png
'
);
scene
.
load
.
image
(
'
noBtn
'
,
'
assets/image/UI/decisionBtn/no.png
'
);
scene
.
load
.
image
(
'
spectateBtn
'
,
'
assets/image/UI/decisionBtn/spectate.png
'
);
scene
.
load
.
image
(
'
spectateBtn
'
,
'
assets/image/UI/decisionBtn/spectate.png
'
);
scene
.
load
.
image
(
'
yesBtn
'
,
'
assets/image/UI/decisionBtn/yes.png
'
);
scene
.
load
.
image
(
'
yesBtn
'
,
'
assets/image/UI/decisionBtn/yes.png
'
);
scene
.
load
.
image
(
'
buyBtn
'
,
'
assets/image/UI/decisionBtn/buy.png
'
);
scene
.
load
.
image
(
'
equipBtn
'
,
'
assets/image/UI/decisionBtn/equip.png
'
);
...
@@ -156,6 +160,4 @@ ResourceLoader.loadAnimation = function(scene)
...
@@ -156,6 +160,4 @@ ResourceLoader.loadAnimation = function(scene)
repeat
:
0
repeat
:
0
});
});
}
}
}
}
\ No newline at end of file
js/ScenesData.js
View file @
eaeeecb9
...
@@ -20,7 +20,6 @@ var menuScene = new Phaser.Class(
...
@@ -20,7 +20,6 @@ var menuScene = new Phaser.Class(
ResourceLoader
.
loadImage
(
this
);
ResourceLoader
.
loadImage
(
this
);
CSVParsing
.
loadText
(
this
);
CSVParsing
.
loadText
(
this
);
Audio
.
loadSound
(
this
);
Audio
.
loadSound
(
this
);
this
.
load
.
scenePlugin
({
this
.
load
.
scenePlugin
({
key
:
'
rexuiplugin
'
,
key
:
'
rexuiplugin
'
,
url
:
'
https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/plugins/dist/rexuiplugin.min.js
'
,
url
:
'
https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/plugins/dist/rexuiplugin.min.js
'
,
...
@@ -37,7 +36,7 @@ var menuScene = new Phaser.Class(
...
@@ -37,7 +36,7 @@ var menuScene = new Phaser.Class(
{
{
ResourceLoader
.
loadAnimation
(
this
);
ResourceLoader
.
loadAnimation
(
this
);
BackGround
.
drawMenu
(
this
);
BackGround
.
drawMenu
(
this
);
Audio
.
play
Sound
(
this
,
'
login
'
);
Audio
.
loop
Sound
(
this
,
'
login
'
);
ScenesData
.
menuScene
.
tutorialFrame
=
0
;
ScenesData
.
menuScene
.
tutorialFrame
=
0
;
ScenesData
.
menuScene
.
tutorialImage
=
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
/
2
,
game
.
config
.
height
/
2
,
11
,
ScenesData
.
menuScene
.
tutorialImage
=
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
/
2
,
game
.
config
.
height
/
2
,
11
,
'
tutorialImage
'
,
1
,
'
center
'
),
-
2
,
-
2
,
-
2
,
'
tutorialImage
'
,
1
,
'
center
'
),
-
2
,
-
2
,
-
2
,
...
@@ -68,8 +67,8 @@ var menuScene = new Phaser.Class(
...
@@ -68,8 +67,8 @@ var menuScene = new Phaser.Class(
PlayerData
.
currentHopae
=
(
PlayerData
.
userData
.
recentHopae
==
null
)
?
PlayerData
.
userData
.
hopae
[
0
]
:
PlayerData
.
userData
.
recentHopae
;
PlayerData
.
currentHopae
=
(
PlayerData
.
userData
.
recentHopae
==
null
)
?
PlayerData
.
userData
.
hopae
[
0
]
:
PlayerData
.
userData
.
recentHopae
;
PlayerData
.
nickname
=
PlayerData
.
currentHopae
.
name
;
PlayerData
.
nickname
=
PlayerData
.
currentHopae
.
name
;
this
.
userName
=
this
.
add
.
text
(
250
,
75
,
PlayerData
.
userData
.
userName
).
setOrigin
(
0
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
);
this
.
userName
=
this
.
add
.
text
(
250
,
75
,
PlayerData
.
userData
.
userName
.
length
<
10
?
PlayerData
.
userData
.
userName
:
PlayerData
.
userData
.
userName
.
substr
(
0
,
8
)
+
'
...
'
).
setOrigin
(
0
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
);
this
.
money
=
this
.
add
.
text
(
950
,
70
,
PlayerData
.
userData
.
money
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#ffffff
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
);
this
.
money
=
this
.
add
.
text
(
950
,
70
,
PlayerData
.
userData
.
money
+
'
냥
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#ffffff
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
);
this
.
organizeHopae
=
function
()
this
.
organizeHopae
=
function
()
{
{
...
@@ -290,8 +289,8 @@ var hopaeScene = new Phaser.Class(
...
@@ -290,8 +289,8 @@ var hopaeScene = new Phaser.Class(
{
{
if
(
PlayerData
.
userData
.
hopae
===
undefined
||
PlayerData
.
userData
.
hopae
.
length
==
0
||
PlayerData
.
userData
.
money
>
0
)
if
(
PlayerData
.
userData
.
hopae
===
undefined
||
PlayerData
.
userData
.
hopae
.
length
==
0
||
PlayerData
.
userData
.
money
>
0
)
{
{
if
(
!
(
PlayerData
.
userData
.
hopae
===
undefined
||
PlayerData
.
userData
.
hopae
.
length
==
0
))
fbClient
.
updateUserData
(
'
money
'
,
-
1
);
fbClient
.
updateUserData
(
'
hopae
'
,
{
name
:
Input
.
inputField
.
text
.
text
,
type
:
'
wood
'
});
fbClient
.
updateUserData
(
'
hopae
'
,
{
name
:
Input
.
inputField
.
text
.
text
,
type
:
'
wood
'
});
if
(
PlayerData
.
userData
.
hopae
===
undefined
||
PlayerData
.
userData
.
hopae
.
length
==
0
)
fbClient
.
updateUserData
(
'
money
'
,
-
1
);
ScenesData
.
changeScene
(
'
menuScene
'
);
ScenesData
.
changeScene
(
'
menuScene
'
);
}
}
else
else
...
@@ -368,11 +367,11 @@ var shopScene = new Phaser.Class(
...
@@ -368,11 +367,11 @@ var shopScene = new Phaser.Class(
create
:
function
()
create
:
function
()
{
{
BackGround
.
draw
Background
(
this
);
BackGround
.
draw
Shop
(
this
);
this
.
currentSkin
=
this
.
add
.
sprite
(
500
,
game
.
config
.
height
/
2
,
Enums
.
characterSkin
[
PlayerData
.
userData
.
skin
]
+
'
Stand
'
)
this
.
currentSkin
=
this
.
add
.
sprite
(
500
,
game
.
config
.
height
/
2
,
Enums
.
characterSkin
[
PlayerData
.
userData
.
skin
]
+
'
Stand
'
)
.
setOrigin
(
0.5
,
0.5
).
setDepth
(
5
).
setScale
(
0.8
);
.
setOrigin
(
0.5
,
0.5
).
setDepth
(
5
).
setScale
(
0.8
);
this
.
money
=
this
.
add
.
text
(
200
,
70
,
PlayerData
.
userData
.
money
+
"
냥
"
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
);
this
.
money
=
this
.
add
.
text
(
400
,
260
,
PlayerData
.
userData
.
money
+
"
냥
"
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#ffffff
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
);
...
@@ -380,7 +379,7 @@ var shopScene = new Phaser.Class(
...
@@ -380,7 +379,7 @@ var shopScene = new Phaser.Class(
price
:
0
,
price
:
0
,
itemName
:
this
.
add
.
text
(
game
.
config
.
width
-
500
,
300
,
'
평민
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
itemName
:
this
.
add
.
text
(
game
.
config
.
width
-
500
,
300
,
'
평민
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
itemPrice
:
this
.
add
.
text
(
game
.
config
.
width
-
200
,
300
,
'
0냥
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
itemPrice
:
this
.
add
.
text
(
game
.
config
.
width
-
200
,
300
,
'
0냥
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
buyBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
600
,
300
,
5
,
'
bu
tton
'
,
1
,
'
center
'
,
'
구매하기
'
),
-
1
,
-
1
,
-
1
,
buyBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
600
,
300
,
5
,
'
bu
yBtn
'
,
1
,
'
center
'
),
-
1
,
-
1
,
-
1
,
function
()
function
()
{
{
if
(
PlayerData
.
userData
.
money
>=
ScenesData
.
shopScene
.
pyeongminItem
.
price
)
if
(
PlayerData
.
userData
.
money
>=
ScenesData
.
shopScene
.
pyeongminItem
.
price
)
...
@@ -391,9 +390,10 @@ var shopScene = new Phaser.Class(
...
@@ -391,9 +390,10 @@ var shopScene = new Phaser.Class(
fbClient
.
updateUserData
(
'
money
'
,
-
ScenesData
.
shopScene
.
pyeongminItem
.
price
);
fbClient
.
updateUserData
(
'
money
'
,
-
ScenesData
.
shopScene
.
pyeongminItem
.
price
);
ScenesData
.
shopScene
.
money
.
setText
(
PlayerData
.
userData
.
money
+
'
냥
'
);
ScenesData
.
shopScene
.
money
.
setText
(
PlayerData
.
userData
.
money
+
'
냥
'
);
ScenesData
.
shopScene
.
pyeongminItem
.
useBtn
.
setVisible
(
true
);
ScenesData
.
shopScene
.
pyeongminItem
.
useBtn
.
setVisible
(
true
);
ScenesData
.
shopScene
.
pyeongminItem
.
boughtSign
.
setVisible
(
true
);
}
}
}),
}),
useBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
800
,
300
,
5
,
'
button
'
,
1
,
'
center
'
,
'
사용하기
'
),
-
1
,
-
1
,
-
1
,
useBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
800
,
300
,
5
,
'
equipBtn
'
,
1
,
'
center
'
),
-
1
,
-
1
,
-
1
,
function
()
function
()
{
{
if
(
PlayerData
.
userData
.
item
.
includes
(
0
))
if
(
PlayerData
.
userData
.
item
.
includes
(
0
))
...
@@ -402,16 +402,18 @@ var shopScene = new Phaser.Class(
...
@@ -402,16 +402,18 @@ var shopScene = new Phaser.Class(
ScenesData
.
shopScene
.
sunbiItem
.
useBtn
.
setVisible
(
true
);
ScenesData
.
shopScene
.
sunbiItem
.
useBtn
.
setVisible
(
true
);
fbClient
.
updateUserData
(
'
skin
'
,
0
);
fbClient
.
updateUserData
(
'
skin
'
,
0
);
ScenesData
.
shopScene
.
currentSkin
.
destroy
();
ScenesData
.
shopScene
.
currentSkin
.
destroy
();
ScenesData
.
shopScene
.
currentSkin
=
ScenesData
.
shopScene
.
add
.
sprite
(
500
,
game
.
config
.
height
/
2
,
Enums
.
characterSkin
[
PlayerData
.
userData
.
skin
]
+
'
Stand
'
)
ScenesData
.
shopScene
.
add
.
sprite
(
500
,
game
.
config
.
height
/
2
,
Enums
.
characterSkin
[
PlayerData
.
userData
.
skin
]
+
'
Stand
'
)
.
setOrigin
(
0.5
,
0.5
).
setDepth
(
5
).
setScale
(
0.8
);
.
setOrigin
(
0.5
,
0.5
).
setDepth
(
5
).
setScale
(
0.8
);
}
}
})
}),
boughtSign
:
UIObject
.
createLabel
(
ScenesData
.
shopScene
,
game
.
config
.
width
-
400
,
300
,
5
,
'
boughtItem
'
,
1
,
'
center
'
).
setVisible
(
false
)
}
}
this
.
pyeongminItem
.
buyBtn
.
setEnable
(
PlayerData
.
userData
.
money
<
ScenesData
.
shopScene
.
pyeongminItem
.
price
?
false
:
true
);
this
.
pyeongminItem
.
buyBtn
.
setEnable
(
PlayerData
.
userData
.
money
<
ScenesData
.
shopScene
.
pyeongminItem
.
price
?
false
:
true
);
if
(
PlayerData
.
userData
.
item
.
includes
(
0
))
if
(
PlayerData
.
userData
.
item
.
includes
(
0
))
{
{
this
.
pyeongminItem
.
buyBtn
.
setVisible
(
false
);
this
.
pyeongminItem
.
buyBtn
.
setVisible
(
false
);
this
.
pyeongminItem
.
boughtSign
.
setVisible
(
true
);
this
.
pyeongminItem
.
itemPrice
.
setText
(
'
보유중
'
);
this
.
pyeongminItem
.
itemPrice
.
setText
(
'
보유중
'
);
}
}
if
(
PlayerData
.
userData
.
skin
==
0
||
!
PlayerData
.
userData
.
item
.
includes
(
0
))
this
.
pyeongminItem
.
useBtn
.
setVisible
(
false
);
if
(
PlayerData
.
userData
.
skin
==
0
||
!
PlayerData
.
userData
.
item
.
includes
(
0
))
this
.
pyeongminItem
.
useBtn
.
setVisible
(
false
);
...
@@ -422,7 +424,7 @@ var shopScene = new Phaser.Class(
...
@@ -422,7 +424,7 @@ var shopScene = new Phaser.Class(
price
:
100
,
price
:
100
,
itemName
:
this
.
add
.
text
(
game
.
config
.
width
-
500
,
400
,
'
선비
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
itemName
:
this
.
add
.
text
(
game
.
config
.
width
-
500
,
400
,
'
선비
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
itemPrice
:
this
.
add
.
text
(
game
.
config
.
width
-
200
,
400
,
'
100냥
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
itemPrice
:
this
.
add
.
text
(
game
.
config
.
width
-
200
,
400
,
'
100냥
'
).
setOrigin
(
1
,
0.5
).
setColor
(
'
#000000
'
).
setDepth
(
9.9
).
setPadding
(
5
,
5
,
5
,
5
).
setFont
(
'
40pt sejongFont
'
),
buyBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
800
,
400
,
5
,
'
bu
tton
'
,
1
,
'
center
'
,
'
구매하기
'
),
-
1
,
-
1
,
-
1
,
buyBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
800
,
400
,
5
,
'
bu
yBtn
'
,
1
,
'
center
'
),
-
1
,
-
1
,
-
1
,
function
()
function
()
{
{
if
(
PlayerData
.
userData
.
money
>=
ScenesData
.
shopScene
.
sunbiItem
.
price
)
if
(
PlayerData
.
userData
.
money
>=
ScenesData
.
shopScene
.
sunbiItem
.
price
)
...
@@ -433,9 +435,10 @@ var shopScene = new Phaser.Class(
...
@@ -433,9 +435,10 @@ var shopScene = new Phaser.Class(
fbClient
.
updateUserData
(
'
money
'
,
-
ScenesData
.
shopScene
.
sunbiItem
.
price
);
fbClient
.
updateUserData
(
'
money
'
,
-
ScenesData
.
shopScene
.
sunbiItem
.
price
);
ScenesData
.
shopScene
.
money
.
setText
(
PlayerData
.
userData
.
money
+
'
냥
'
);
ScenesData
.
shopScene
.
money
.
setText
(
PlayerData
.
userData
.
money
+
'
냥
'
);
ScenesData
.
shopScene
.
sunbiItem
.
useBtn
.
setVisible
(
true
);
ScenesData
.
shopScene
.
sunbiItem
.
useBtn
.
setVisible
(
true
);
ScenesData
.
shopScene
.
sunbiItem
.
boughtSign
.
setVisible
(
true
);
}
}
}),
}),
useBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
800
,
400
,
5
,
'
button
'
,
1
,
'
center
'
,
'
사용하기
'
),
-
1
,
-
1
,
-
1
,
useBtn
:
UIObject
.
createButton
(
this
,
UIObject
.
createLabel
(
this
,
game
.
config
.
width
-
800
,
400
,
5
,
'
equipBtn
'
,
1
,
'
center
'
),
-
1
,
-
1
,
-
1
,
function
()
function
()
{
{
if
(
PlayerData
.
userData
.
item
.
includes
(
1
))
if
(
PlayerData
.
userData
.
item
.
includes
(
1
))
...
@@ -447,13 +450,15 @@ var shopScene = new Phaser.Class(
...
@@ -447,13 +450,15 @@ var shopScene = new Phaser.Class(
ScenesData
.
shopScene
.
currentSkin
=
ScenesData
.
shopScene
.
add
.
sprite
(
500
,
game
.
config
.
height
/
2
,
Enums
.
characterSkin
[
PlayerData
.
userData
.
skin
]
+
'
Stand
'
)
ScenesData
.
shopScene
.
currentSkin
=
ScenesData
.
shopScene
.
add
.
sprite
(
500
,
game
.
config
.
height
/
2
,
Enums
.
characterSkin
[
PlayerData
.
userData
.
skin
]
+
'
Stand
'
)
.
setOrigin
(
0.5
,
0.5
).
setDepth
(
5
).
setScale
(
0.8
);
.
setOrigin
(
0.5
,
0.5
).
setDepth
(
5
).
setScale
(
0.8
);
}
}
})
}),
boughtSign
:
UIObject
.
createLabel
(
ScenesData
.
shopScene
,
game
.
config
.
width
-
400
,
400
,
5
,
'
boughtItem
'
,
1
,
'
center
'
).
setVisible
(
false
)
}
}
this
.
sunbiItem
.
buyBtn
.
setEnable
(
PlayerData
.
userData
.
money
<
ScenesData
.
shopScene
.
sunbiItem
.
price
?
false
:
true
);
this
.
sunbiItem
.
buyBtn
.
setEnable
(
PlayerData
.
userData
.
money
<
ScenesData
.
shopScene
.
sunbiItem
.
price
?
false
:
true
);
if
(
PlayerData
.
userData
.
item
.
includes
(
1
))
if
(
PlayerData
.
userData
.
item
.
includes
(
1
))
{
{
this
.
sunbiItem
.
buyBtn
.
setVisible
(
false
);
this
.
sunbiItem
.
buyBtn
.
setVisible
(
false
);
this
.
sunbiItem
.
boughtSign
.
setVisible
(
true
);
this
.
sunbiItem
.
itemPrice
.
setText
(
'
보유중
'
);
this
.
sunbiItem
.
itemPrice
.
setText
(
'
보유중
'
);
}
}
if
(
PlayerData
.
userData
.
skin
==
1
||
!
PlayerData
.
userData
.
item
.
includes
(
1
))
this
.
sunbiItem
.
useBtn
.
setVisible
(
false
);
if
(
PlayerData
.
userData
.
skin
==
1
||
!
PlayerData
.
userData
.
item
.
includes
(
1
))
this
.
sunbiItem
.
useBtn
.
setVisible
(
false
);
...
@@ -595,13 +600,6 @@ var gameScene = new Phaser.Class(
...
@@ -595,13 +600,6 @@ var gameScene = new Phaser.Class(
BackGround
.
drawCharacter
(
this
);
BackGround
.
drawCharacter
(
this
);
Audio
.
playSound
(
this
,
'
startGame
'
);
Audio
.
playSound
(
this
,
'
startGame
'
);
if
(
WordSpace
.
CurrentPhase
==
1
)
Audio
.
loopSound
(
this
,
'
Phase1
'
);
else
if
(
WordSpace
.
CurrentPhase
==
2
)
Audio
.
loopSound
(
this
,
'
Phase2
'
);
else
Audio
.
loopSound
(
this
,
'
Phase3
'
);
WordSpace
.
attackPaperGroup
=
this
.
physics
.
add
.
group
();
WordSpace
.
attackPaperGroup
=
this
.
physics
.
add
.
group
();
WordSpace
.
wordPhysicsGroup
=
this
.
physics
.
add
.
group
();
WordSpace
.
wordPhysicsGroup
=
this
.
physics
.
add
.
group
();
...
@@ -656,6 +654,11 @@ var gameScene = new Phaser.Class(
...
@@ -656,6 +654,11 @@ var gameScene = new Phaser.Class(
ScenesData
.
changeScene
=
function
(
sceneKey
)
ScenesData
.
changeScene
=
function
(
sceneKey
)
{
{
Audio
.
killSound
(
ScenesData
.
menuScene
,
'
login
'
);
Audio
.
killSound
(
ScenesData
.
menuScene
,
'
login
'
);
Audio
.
killSound
(
ScenesData
.
currentScene
,
'
victory
'
);
Audio
.
killSound
(
ScenesData
.
currentScene
,
'
defeat
'
);
// Audio.killSound(ScenesData.gameScene, 'victory');
// Audio.killSound(ScenesData.gameScene, 'defeat');
ScenesData
.
currentScene
.
scene
.
start
(
sceneKey
);
ScenesData
.
currentScene
.
scene
.
start
(
sceneKey
);
Input
.
input
=
[];
Input
.
input
=
[];
Input
.
converted
=
''
;
Input
.
converted
=
''
;
...
...
js/WordSpace.js
View file @
eaeeecb9
...
@@ -218,6 +218,13 @@ function gameOver()
...
@@ -218,6 +218,13 @@ function gameOver()
{
{
WordSpace
.
pauseCycle
(
true
);
WordSpace
.
pauseCycle
(
true
);
if
(
WordSpace
.
CurrentPhase
==
1
)
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase1
'
);
if
(
WordSpace
.
CurrentPhase
==
2
)
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase2
'
);
if
(
WordSpace
.
CurrentPhase
==
3
)
Audio
.
killSound
(
ScenesData
.
gameScene
,
'
Phase3
'
);
socket
.
emit
(
'
defeated
'
);
socket
.
emit
(
'
defeated
'
);
console
.
log
(
'
defeat
'
);
console
.
log
(
'
defeat
'
);
}
}
...
@@ -486,11 +493,11 @@ WordSpace.changePhase = function(newPhase)
...
@@ -486,11 +493,11 @@ WordSpace.changePhase = function(newPhase)
WordSpace
.
CurrentPhase
=
newPhase
;
WordSpace
.
CurrentPhase
=
newPhase
;
if
(
WordSpace
.
CurrentPhase
==
1
)
if
(
WordSpace
.
CurrentPhase
==
1
)
Audio
.
killSound
(
'
gameScene
'
,
'
Phase1
'
);
Audio
.
loopSound
(
ScenesData
.
currentScene
,
'
Phase1
'
);
else
if
(
WordSpace
.
CurrentPhase
==
2
)
else
if
(
WordSpace
.
CurrentPhase
==
2
)
Audio
.
killSound
(
'
gameScene
'
,
'
Phase2
'
);
Audio
.
loopSound
(
ScenesData
.
currentScene
,
'
Phase2
'
);
else
else
Audio
.
killSound
(
'
gameScene
'
,
'
Phase3
'
);
Audio
.
loopSound
(
ScenesData
.
currentScene
,
'
Phase3
'
);
//WordSpace.pauseCycle(true);
//WordSpace.pauseCycle(true);
// 여기서 종이 드르륵 열면됨
// 여기서 종이 드르륵 열면됨
...
...
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