Commit 4ecd322b authored by 18손재민's avatar 18손재민

Merge branch 'gameScene'

parents e05e1049 17a26d46
......@@ -82,7 +82,7 @@ class GameRoom
{
this.roomId = GameServer.getRoomNumber();
this.roomIndex = -1;
this.startCount = 2;
this.startCount = 3;
this.maxPlayer = 100;
this.nextRank = 100;
......@@ -143,7 +143,7 @@ class GameRoom
{
if (this.currentPhase === GameServer.Phase.READY)
{
this.endTime = Date.now() + 10000; // 테스트용 10초
this.endTime = Date.now() + 1000; // 방 대기 시간
this.announceToRoom('setRoomCount',
{
isEnable: true, endTime: this.endTime, playerCount: this.currentPlayer.length,
......
......@@ -20,7 +20,7 @@
<style media='screen' type='text/css'>
@font-face {
font-family: sejongFont;
src: url('assets/font/EBS주시경B.ttf');
src: url('assets/font/EBS훈민정음새론SB.ttf');
font-weight:400;
font-weight:normal;
}
......
......@@ -203,10 +203,12 @@ socket.on('defeat', function(msg) // object player
let playerImage = RoomData.findPlayer(msg.id).playerImage;
let position = RoomData.findPlayer(msg.id).position;
let nicknameText = RoomData.findPlayer(msg.id).nicknameText;
let earnedStrongHopae = RoomData.findPlayer(msg.id).earnedStrongHopae;
RoomData.players[msg.index] = msg;
RoomData.players[msg.index].playerImage = playerImage;
RoomData.players[msg.index].position = position;
RoomData.players[msg.index].nicknameText = nicknameText;
RoomData.players[msg.index].earnedStrongHopae = earnedStrongHopae;
let victim = RoomData.findPlayer(msg.id);
RoomData.aliveCount--;
......@@ -341,8 +343,6 @@ socket.on('defeat', function(msg) // object player
}, 1000);
}
})
}
if(msg.id == RoomData.myself.id)
{
......@@ -398,7 +398,7 @@ var gameEndMenu = function(isWin)
Input.inputField.text.destroy();
var temp = function(){
var endGame = function(){
socket.emit('exitFromRoom', RoomData.myself.id);
fbClient.updateUserData('killCount', RoomData.myself.killCount);
......@@ -410,21 +410,21 @@ var gameEndMenu = function(isWin)
x: game.config.width / 2,
y: game.config.height / 2,
background: ScenesData.gameScene.add.sprite(game.config.width / 2, game.config.height / 2, 'panel').setOrigin(0.5, 0.5),
background: ScenesData.gameScene.add.sprite(game.config.width / 2, game.config.height / 2, 'dialog1').setOrigin(0.5, 0.5),
content: ScenesData.gameScene.rexUI.add.dialog({
x: game.config.width / 2,
y: game.config.height / 2,
choices: [
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 - 100, game.config.height / 2 - 100, 10.2, 'playerStand', 0.7, 'center'),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 120, game.config.height / 2 - 150, 10.2,
'button', 1, 'center', '등수 : ' + RoomData.myself.rank + '', 30).layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 120, game.config.height / 2 - 50, 10.2,
'button', 1, 'center', '킬 수 : ' + RoomData.myself.killCount + '', 30).layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 120, game.config.height / 2 + 50, 10.2,
'button', 1, 'center', '획득 강호패 : ' + RoomData.myself.earnedStrongHopae + '', 30).layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 120, game.config.height / 2 + 150, 10.2,
'button', 1, 'center', '획득 골드 : ' + earnedMoney + '', 30).layout()
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 - 150, game.config.height / 2 - 100, 10.2, 'playerStand', 0.7, 'center'),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 150, game.config.height / 2 - 180, 10.2,
'button', 1, 'center', '등수 : ' + RoomData.myself.rank + '', 20).layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 150, game.config.height / 2 - 60, 10.2,
'button', 1, 'center', '킬 수 : ' + RoomData.myself.killCount + '', 20).layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 150, game.config.height / 2 + 60, 10.2,
'button', 1, 'center', '획득 강호패 : ' + RoomData.myself.earnedStrongHopae + '', 20).layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 150, game.config.height / 2 + 180, 10.2,
'button', 1, 'center', '획득 골드 : ' + earnedMoney + '', 20).layout()
],
align: {
......@@ -432,17 +432,17 @@ var gameEndMenu = function(isWin)
}
}),
actions: [
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 - 120, game.config.height / 2 + 300, 10.2, 'button', 1, 'center', '나가기').layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 120, game.config.height / 2 + 300, 10.2, 'button', 1, 'center', '관전하기').layout()
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 - 200, game.config.height / 2 + 300, 10.2, 'exitBtn', 1, 'center', ' ').layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 200, game.config.height / 2 + 300, 10.2, 'spectateBtn', 1, 'center', ' ').layout()
],
space: {
action: 10,
left: 20,
right: 20,
top: 20,
bottom: 20,
left: 50,
right: 50,
top: 50,
bottom: 50,
},
align: {
......@@ -452,11 +452,12 @@ var gameEndMenu = function(isWin)
ScenesData.gameScene.backToMenuDialog
.on('button.click', function (button, groupName, index) {
if(index == 0) temp();
if(index == 0) endGame();
else
{
ScenesData.gameScene.backToMenuDialog.setVisible(false);
ScenesData.gameScene.backToMenuBtn = UIObject.createButton(ScenesData.gameScene, UIObject.createLabel(ScenesData.gameScene, 100, 900, 10.2, 'pyeongminThrow', 0.5, 'center'), 1, 0, 2, temp);
ScenesData.gameScene.backToMenuBtn = UIObject.createButton(ScenesData.gameScene,
UIObject.createLabel(ScenesData.gameScene, 100, 900, 10.2, 'spectateBtn', 1, 'center'), 1, 0, 2, temp);
}
}, ScenesData.gameScene)
.on('button.over', function (button, groupName, index) {
......
......@@ -23,26 +23,16 @@ Input.gameSceneEnterReaction = function()
{
if (RoomData.myself.isAlive && !Input.isEntered)
{
if (Input.attackMode) WordSpace.attack(Input.removeConVow(Input.finalInput), Input.attackOption.wordGrade);
if (Input.attackMode)
{
WordSpace.attack(Input.removeConVow(Input.finalInput), Input.attackOption.wordGrade);
Input.inputField.inputBackground.setFrame(4);
}
else WordSpace.findWord(Input.finalInput);
Input.reset();
Input.isEntered = true;
}
}
Input.menuSceneEnterReaction = function()
{
Input.finalInput = Input.removeConVow(Input.finalInput);
if (Input.finalInput.length > 1)
{
PlayerData.nickname = Input.finalInput;
Input.reset();
}
else
{
alert('정확한 가명을 입력해주세요.');
Input.reset();
}
}
Input.reset = function()
{
......@@ -318,17 +308,24 @@ Input.removeConVow = function(_wordText)
Input.inputField =
{
generate: function(scene, enterCallback, text, isHopaeScene = false)
generate: function(scene, enterCallback, text)
{
this.text = text;
this.text = text.getElement('text');
this.inputBackground = text.getElement('background');
scene.input.keyboard.on('keyup', function() {Input.pressCount--; Input.justPressed = '';
if(isHopaeScene)
if(ScenesData.currentScene == ScenesData.gameScene) Input.inputField.inputBackground.setFrame(4);
scene.input.keyboard.on('keydown', function() {
if(ScenesData.currentScene == ScenesData.hopaeScene && Input.finalInput.length > 1) Input.inputField.inputBackground.setFrame(Input.finalInput.length - 2);
})
scene.input.keyboard.on('keyup', function() {Input.pressCount--; Input.justPressed = '';
if(ScenesData.currentScene == ScenesData.hopaeScene)
{
ScenesData.hopaeScene.checkBtn.setEnable(Input.checkProperInput(Input.inputField.text.text) ? true : false);
if(Input.finalInput.length > 4) ScenesData.hopaeScene.warningText.setVisible(true);
else ScenesData.hopaeScene.warningText.setVisible(false);
}})
ScenesData.hopaeScene.checkBtn.setEnable(Input.checkProperInput(Input.inputField.text.text) || (Input.finalInput.length > 1) ? true : false);
ScenesData.hopaeScene.warningText.setVisible(Input.finalInput.length > 4 ? true : false);
}
})
scene.input.keyboard.on('keydown-SHIFT', function() {Input.isShifted = true});
scene.input.keyboard.on('keyup-SHIFT', function() {Input.isShifted = false});
scene.input.keyboard.on('keydown-DELETE', function() {Input.reset()});
......
......@@ -5,13 +5,12 @@ ResourceLoader.loadBackGround = function(scene)
scene.load.image('weightWarning', 'assets/image/background/weightWarning.png');
scene.load.image('baseBackground', 'assets/image/background/yellowBack.png');
scene.load.image('gameBackground', 'assets/image/background/background_brain.png');
scene.load.image('menuBackground', 'assets/placeholder/menuBackground.png');
scene.load.image('menuBackground', 'assets/image/UI/main/mainBackground.png');
scene.load.image('roomBackground', 'assets/placeholder/roomBackground.png');
}
ResourceLoader.loadImage = function(scene)
{
scene.load.image('inputfield', 'assets/image/etc/wordspace.png');
for (let i = 0; i < 4; i++)
{
for (let j = 2; j < 7; j++)
......@@ -42,13 +41,36 @@ ResourceLoader.loadImage = function(scene)
scene.load.image('pyeongminStand', 'assets/image/character/pyeongmin/pyeong_stand.png');
scene.load.spritesheet('wordBreak', 'assets/image/word/wordbreak.png', { frameWidth: 180, frameHeight: 180 });
scene.load.spritesheet('hopaeSceneInput', 'assets/image/word/hopaeSceneInput.png', { frameWidth: 239, frameHeight: 45 });
scene.load.spritesheet('gameSceneInput', 'assets/image/etc/wordSpace/wordspace.png', { frameWidth: 253, frameHeight: 67 });
scene.load.image('attackPaper', 'assets/image/etc/paper_crumbled.png');
scene.load.image('itemBag', 'assets/image/etc/itembag2.png');
scene.load.image('button', 'assets/placeholder/button.png');
scene.load.image('panel', 'assets/placeholder/panel.png');
scene.load.image('dialog1', 'assets/image/UI/dialog/dialog1.png');
scene.load.image('dialog2', 'assets/image/UI/dialog/dialog2.png');
scene.load.image('friendlyPlayBtn', 'assets/image/UI/main/friendlyPlay.png');
scene.load.image('rankPlayBtn', 'assets/image/UI/main/rankPlay.png');
scene.load.image('shopBtn', 'assets/image/UI/main/shop.png');
scene.load.image('hopaeManageBtn', 'assets/image/UI/main/hopaeManage.png');
scene.load.image('helpBtn', 'assets/image/UI/main/help.png');
scene.load.image('cancelBtn', 'assets/image/UI/decisionBtn/cancel.png');
scene.load.image('confirmBtn', 'assets/image/UI/decisionBtn/confirm.png');
scene.load.image('exitBtn', 'assets/image/UI/decisionBtn/exit.png');
scene.load.image('noBtn', 'assets/image/UI/decisionBtn/no.png');
scene.load.image('spectateBtn', 'assets/image/UI/decisionBtn/spectate.png');
scene.load.image('yesBtn', 'assets/image/UI/decisionBtn/yes.png');
scene.load.spritesheet('phase1', 'assets/image/etc/scroll/startPhase/startPhase.png', { frameWidth: 280, frameHeight: 920 });
scene.load.spritesheet('phase2', 'assets/image/etc/scroll/bonPhase/bonPhase.png', { frameWidth: 280, frameHeight: 920 });
scene.load.spritesheet('phase3', 'assets/image/etc/scroll/poongPhase/poongPhase.png', { frameWidth: 280, frameHeight: 920 });
scene.load.image('attackPaper', 'assets/image/etc/paper_crumbled.png');
scene.load.image('panel', 'assets/placeholder/panel.png');
scene.load.image('button', 'assets/placeholder/button.png');
scene.load.image('itemBag', 'assets/image/etc/itembag2.png');
scene.load.spritesheet('tutorialImage', 'assets/image/UI/tutorial/tutorialImages.png', { frameWidth: 1000, frameHeight: 800 });
}
ResourceLoader.loadAnimation = function(scene)
......
This diff is collapsed.
......@@ -12,7 +12,7 @@ UIObject.createLabel = function (scene, x, y, depth, image, size, align, text =
text: scene.add.text(x, y, text, {
font: textSize + 'pt sejongFont',
align: 'center'
}).setDepth(depth).setOrigin(textOriginX, textOriginY).setColor(textColor),
}).setDepth(depth).setOrigin(textOriginX, textOriginY).setColor(textColor).setPadding(30, 30, 30, 30),
space: {
left: 10,
......@@ -52,33 +52,41 @@ UIObject.createButton = function(scene, buttonGameObject, overFrame, outFrame, d
clickInterval: 100
}
});
buttonGameObject = buttonGameObject.getElement('background');
let buttonGameObjectBackground = buttonGameObject.getElement('background');
temp.enabled = true;
buttonGameObject.setFrame(outFrame).setInteractive()
buttonGameObjectBackground.setFrame(outFrame > 0 ? outFrame : 0).setInteractive()
.on('pointerover', () => {
if(temp.enabled)
{
buttonGameObject.setFrame(overFrame);
if(overFrame > 0) buttonGameObjectBackground.setFrame(overFrame);
if(overFrame != -2) buttonGameObject.setScale(1.1);
}
})
.on('pointerdown', () => {
if(temp.enabled)
{
buttonGameObject.setFrame(downFrame);
if(downFrame > 0) buttonGameObjectBackground.setFrame(downFrame);
if(downFrame != -2) buttonGameObject.setScale(0.9);
clickCallback();
}
})
.on('pointerup', () => {
buttonGameObject.setFrame(overFrame);
if(temp.enabled)
{
if(overFrame > 0) buttonGameObjectBackground.setFrame(overFrame);
if(overFrame != -2) buttonGameObject.setScale(1.1);
}
})
.on('pointerout', () => {
buttonGameObject.setFrame(outFrame);
if(outFrame > 0) buttonGameObjectBackground.setFrame(outFrame);
if(outFrame != -2) buttonGameObject.setScale(1);
})
temp.setEnable = function(isEnable)
{
temp.enabled = isEnable;
return temp;
}
temp.getBackground = function() { return buttonGameObjectBackground; }
return temp;
}
\ No newline at end of file
......@@ -57,8 +57,6 @@ class WordObject
setTimeout(function() {
breakAnim.destroy();
}, 200);
RoomData.myself.playerImage.play(WordSpace.pyeongminAnims[Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.pyeongminAnims[Enums.characterAnim.sit]);
}
attract()
......@@ -110,6 +108,8 @@ class NormalWord extends WordObject
super.destroy();
if(isNormallyRemoved)
{
RoomData.myself.playerImage.play(WordSpace.pyeongminAnims[Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.pyeongminAnims[Enums.characterAnim.sit]);
switch(this.wordGrade)
{
case 0: WordSpace.attackGauge.add(2.5); break;
......@@ -189,6 +189,8 @@ class AttackWord extends WordObject
super.destroy();
if(isNormallyRemoved)
{
RoomData.myself.playerImage.play(WordSpace.pyeongminAnims[Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.pyeongminAnims[Enums.characterAnim.sit]);
switch(this.wordGrade)
{
case 0: WordSpace.attackGauge.add(2.5); break;
......@@ -271,6 +273,8 @@ class NameWord extends WordObject
super.destroy();
if(isNormallyRemoved)
{
RoomData.myself.playerImage.play(WordSpace.pyeongminAnims[Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.pyeongminAnims[Enums.characterAnim.sit]);
ScenesData.gameScene.physics.world.removeCollider(this.physicsObj.wordCollider);
WordSpace.wordGroup.forEach(function(element)
{
......@@ -356,6 +360,8 @@ class ItemWord extends WordObject
super.destroy();
if(isNormallyRemoved)
{
RoomData.myself.playerImage.play(WordSpace.pyeongminAnims[Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.pyeongminAnims[Enums.characterAnim.sit]);
WordSpace.attackGauge.add(0.5);
switch(this.itemType)
{
......
......@@ -117,14 +117,12 @@ WordSpace.attackGauge =
if (this.value + plus > 11) this.value = 11;
else this.value += plus;
this.setRect();
this.text.setText('게이지: ' + this.value.toFixed(1));
},
sub: function(minus)
{
if (this.value - minus < 0) this.value = 0;
else this.value -= minus;
this.setRect();
this.text.setText('게이지: ' + this.value.toFixed(1));
},
resetValue: function() {this.value = 0;},
cutValue: function(cutOut) {this.value *= (1-cutOut);},
......@@ -141,7 +139,6 @@ WordSpace.attackGauge =
};
this.currentCycle = scene.time.addEvent(option);
this.text = scene.add.text(100,100,'게이지: ' + this.value.toFixed(1)).setDepth(9.9).setColor('#000000');
//this.rectUI.setColor(this.gradeColor[0]);
},
pauseCycle: function(bool) {this.currentCycle.paused = bool;},
......@@ -265,7 +262,7 @@ WordSpace.findWord = function(wordText)
}
WordSpace.setPlayerTyping.add(wordText);
}
else if (wordText === '공격' && WordSpace.attackGauge.value >= 3 && WordSpace.nameGroup.length > 0) // 공격모드 진입.
else if (wordText === '공격' && WordSpace.attackGauge.value >= 2 && WordSpace.nameGroup.length > 0) // 공격모드 진입.
{
console.log('attack mode');
let tempAttackOption = this.attackGauge.getAttackOption();
......@@ -273,6 +270,7 @@ WordSpace.findWord = function(wordText)
Input.attackOption.wordGrade = tempAttackOption.wordGrade;
Input.maxInput = Input.attackOption.wordCount;
Input.attackMode = true;
Input.inputField.inputBackground.setFrame(Input.maxInput - 2);
WordSpace.attackGauge.pauseCycle(true);
WordSpace.setPlayerTyping.add(wordText);
switch(tempAttackOption.wordCount)
......@@ -336,13 +334,8 @@ WordSpace.setPlayerTyping =
{
this.totalTyping += wordText != null ? WordReader.getWordTyping(wordText) : 0;
WordSpace.playerTyping = this.totalTyping / WordSpace.gameTimer.now * 60 * 1000;
this.text.setText('현재 타수 : ' + WordSpace.playerTyping.toFixed(1));
this.writeWord = wordText != '' ? true : false;
},
initiate: function(scene)
{
this.text = scene.add.text(100,200,'현재 타수 : ' + WordSpace.playerTyping.toFixed(1)).setDepth(9.9).setColor('#000000');
},
reset: function()
{
this.totalTyping = 0;
......@@ -473,12 +466,8 @@ WordSpace.nameQueue =
getCount: function(player)
{
WordSpace.nameQueue.counter = 0;
WordSpace.nameGroup.forEach(function(element){
if(element.id == player.id) WordSpace.nameQueue.counter++;
})
WordSpace.wordGroup.forEach(function(element){
if(element instanceof NameWord && element.ownerId == player.id) WordSpace.nameQueue.counter++;
})
WordSpace.nameGroup.forEach(function(element){ if(element.ownerId == player.id) WordSpace.nameQueue.counter++; });
WordSpace.wordGroup.forEach(function(element){ if(element instanceof NameWord && element.ownerId == player.id) WordSpace.nameQueue.counter++; });
return WordSpace.nameQueue.counter;
},
counter: 0,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment