Commit d63056b5 authored by 18손재민's avatar 18손재민

버튼 오브젝트 결국 따로 만듬. 메인 메뉴에서 보여주는 호패들을 rexUI를 쓰지 않기로 결정함 현재 호패들 닫는 것 wip

parent aad6fb14
...@@ -76,7 +76,7 @@ class GameRoom ...@@ -76,7 +76,7 @@ class GameRoom
{ {
this.roomId = GameServer.getRoomNumber(); this.roomId = GameServer.getRoomNumber();
this.roomIndex = -1; this.roomIndex = -1;
this.startCount = 3; this.startCount = 2;
this.maxPlayer = 100; this.maxPlayer = 100;
this.nextRank = 100; this.nextRank = 100;
......
...@@ -230,6 +230,7 @@ FirebaseClient.prototype.updateUserData = function(key, valueChanged, replace = ...@@ -230,6 +230,7 @@ FirebaseClient.prototype.updateUserData = function(key, valueChanged, replace =
break; break;
} }
PlayerData.userData = beforeData; PlayerData.userData = beforeData;
console.log(beforeData);
return this.database.ref('/user-data/' + this.auth.currentUser.uid).update(beforeData); return this.database.ref('/user-data/' + this.auth.currentUser.uid).update(beforeData);
} }
......
...@@ -322,7 +322,6 @@ Input.inputField = ...@@ -322,7 +322,6 @@ Input.inputField =
generate: function(scene, enterCallback, text, isHopaeScene = false) generate: function(scene, enterCallback, text, isHopaeScene = false)
{ {
this.text = text; this.text = text;
//this.text = scene.add.text(background.x, background.y, "", {font: fontSize + 'pt 궁서'}).setOrigin(0.5, 0.5).setColor('#000000').setDepth(10);
scene.input.keyboard.on('keyup', function() {Input.pressCount--; Input.justPressed = ''; scene.input.keyboard.on('keyup', function() {Input.pressCount--; Input.justPressed = '';
if(isHopaeScene) if(isHopaeScene)
......
...@@ -11,7 +11,7 @@ ResourceLoader.loadBackGround = function(scene) ...@@ -11,7 +11,7 @@ ResourceLoader.loadBackGround = function(scene)
ResourceLoader.loadImage = function(scene) ResourceLoader.loadImage = function(scene)
{ {
scene.load.image('inputfield', 'assets/placeholder/inputfield.png'); scene.load.image('inputfield', 'assets/image/etc/wordspace.png');
for (let i = 0; i < 4; i++) for (let i = 0; i < 4; i++)
{ {
for (let j = 2; j < 7; j++) for (let j = 2; j < 7; j++)
......
...@@ -36,91 +36,63 @@ var menuScene = new Phaser.Class( ...@@ -36,91 +36,63 @@ var menuScene = new Phaser.Class(
{ {
BackGround.drawBackground(this); BackGround.drawBackground(this);
Audio.loopSound(this, 'login'); Audio.loopSound(this, 'login');
PlayerData.nickname = (PlayerData.userData.recentHopae == '') ? PlayerData.userData.hopae[0].name : PlayerData.userData.recentHopae;
this.userName = this.add.text(100, 100, '내 이름 : ' + PlayerData.userData.userName).setOrigin(0, 0.5).setColor('#000000').setDepth(10).setPadding(5,5,5,5).setFontSize(40); this.userName = this.add.text(100, 100, '내 이름 : ' + PlayerData.userData.userName).setOrigin(0, 0.5).setColor('#000000').setDepth(10).setPadding(5,5,5,5).setFontSize(40);
this.money = this.add.text(100, 200, '소지 엽전 : ' + PlayerData.userData.money).setOrigin(0, 0.5).setColor('#000000').setDepth(10).setPadding(5,5,5,5).setFontSize(40); this.money = this.add.text(100, 200, '소지 엽전 : ' + PlayerData.userData.money).setOrigin(0, 0.5).setColor('#000000').setDepth(10).setPadding(5,5,5,5).setFontSize(40);
//this.currentHopae = this.add.text(100, 300, '현재 호패 : ' + PlayerData.userData.recentHopae).setOrigin(0, 0.5).setColor('#000000').setDepth(10).setPadding(5,5,5,5).setFontSize(40);
this.myHopae = [];
//PlayerData.userData.forEach(function(element){this.myHopae.push(element)});
for(let i = 0; i < PlayerData.userData.hopae.length; i++) this.myHopae.push(PlayerData.userData.hopae[i]);
this.setOtherHopae = function()
this.currentHopae = this.button.add(UIObject.createLabel(ScenesData.menuScene, 300, 300, 10,
'nameBgr' + PlayerData.userData.recentHopae.length, 1, PlayerData.userData.recentHopae, 25, '#ffffff', 0.45, 0.5).getElement('background'),
{ {
enabled: true, mode: 0 this.otherHopae = [];
}).on('click', function(button, gameObject, pointer){ for(let i = 0; i < PlayerData.userData.hopae.length; i++)
button.setEnable(false); if(PlayerData.userData.hopae[i].name != PlayerData.nickname)
this.otherHopae.push(
{
this.hopaeMenu = this.rexUI.add.menu({ name: PlayerData.userData.hopae[i].name,
x: 300, type: PlayerData.userData.hopae[i].type,
y: 300, });
items: ScenesData.menuScene.myHopae,
createButtonCallback: function (item, i) {
return ScenesData.menuScene.rexUI.add.label({
background: UIObject.createLabel(ScenesData.menuScene, 0, 0, 10, 'nameBgr' + item.name.length, 1, item.name, 25, '#ffffff', 0.45, 0.5),
text: ScenesData.menuScene.add.text(0, 0, item.name, {
fontSize: '25px'
}).setVisible(false),
space: {
left: 10,
right: 10,
top: 10,
bottom: 10,
icon: 10
} }
}) this.setOtherHopae();
},
easeIn: { this.createHopaeMenu = function()
{
this.otherHopaeObject = [];
for(let i = 0; i < this.otherHopae.length; i++)
{
let temp = UIObject.createButton(this, UIObject.createLabel(this, 300, 300, 10,
'nameBgr' + ScenesData.menuScene.otherHopae[i].name.length, 1, ScenesData.menuScene.otherHopae[i].name, 25, '#ffffff', 0.45, 0.5), 0, 0, 0,
function()
{
PlayerData.nickname = ScenesData.menuScene.otherHopae[i].name;
ScenesData.menuScene.setOtherHopae();
ScenesData.menuScene.currentHopae.destroy();
ScenesData.menuScene.createCurrentHopae();
ScenesData.menuScene.currentHopae.setEnable(true);
ScenesData.menuScene.otherHopaeObject.forEach(function(element){element.destroy()});
});
ScenesData.menuScene.tweens.add({
targets: temp,
y: 50 * (i + 1),
duration: 500, duration: 500,
orientation: 'y' ease: 'Bounce',
}, loop: 0
easeOut: {
duration: 100,
orientation: 'y'
},
}); });
this.otherHopaeObject.push(temp);
}
}
this.hopaeMenu this.createCurrentHopae = function()
.on('button.over', function (button) { {
this.currentHopae = UIObject.createButton(this, UIObject.createLabel(this, 300, 300, 10,
}) 'nameBgr' + PlayerData.nickname.length, 1, PlayerData.nickname, 25, '#ffffff', 0.45, 0.5), 0, 0, 0,
.on('button.out', function (button) { function()
{
ScenesData.menuScene.currentHopae.setEnable(false);
ScenesData.menuScene.createHopaeMenu();
}) })
.on('button.click', function (button) { }
PlayerData.nickname = button.text; this.createCurrentHopae();
ScenesData.menuScene.currentHopae.setEnable(true);
this.collapse();
});
}, this);
this.myCharacter = this.add.sprite(game.config.width / 2, game.config.height / 2 - 200, 'pyeongminStand').setOrigin(0.5, 0.5).setDepth(5).setScale(0.8); this.myCharacter = this.add.sprite(game.config.width / 2, game.config.height / 2 - 200, 'pyeongminStand').setOrigin(0.5, 0.5).setDepth(5).setScale(0.8);
PlayerData.nickname = (PlayerData.userData.recentHopae == '') ? PlayerData.userData.hopae[0].name : PlayerData.userData.recentHopae;
this.roomEnterDialog = this.rexUI.add.dialog({ this.roomEnterDialog = this.rexUI.add.dialog({
x: game.config.width / 2, x: game.config.width / 2,
...@@ -128,19 +100,6 @@ var menuScene = new Phaser.Class( ...@@ -128,19 +100,6 @@ var menuScene = new Phaser.Class(
background: this.add.sprite(game.config.width / 2, game.config.height / 2, 'panel').setOrigin(0.5, 0.5), background: this.add.sprite(game.config.width / 2, game.config.height / 2, 'panel').setOrigin(0.5, 0.5),
title: this.rexUI.add.label({
background: this.rexUI.add.roundRectangle(0, 0, 100, 40, 20, 0x1b0000),
text: this.add.text(0, 0, '대기실에 참가하시겠습니까?', {
font: '50pt 궁서'
}).setOrigin(0.5, 0.5),
space: {
left: 15,
right: 15,
top: 10,
bottom: 10
}
}),
content: this.add.text(0, 0, '대기실에 참가하시겠습니까?', { content: this.add.text(0, 0, '대기실에 참가하시겠습니까?', {
font: '50pt 궁서' font: '50pt 궁서'
}), }),
...@@ -187,27 +146,25 @@ var menuScene = new Phaser.Class( ...@@ -187,27 +146,25 @@ var menuScene = new Phaser.Class(
}); });
this.gameStartBtn = this.button.add(new Button(this, game.config.width / 2, 900, 'pyeongminWrite', 1, 0, 2).setScale(0.5).setDepth(5), this.gameStartBtn = UIObject.createButton(this, UIObject.createLabel(this, game.config.width / 2, 900, 5, 'pyeongminWrite', 0.5), 1, 0, 2,
function()
{ {
enabled: true, mode: 0 ScenesData.menuScene.gameStartBtn.setEnable(false);
}).on('click', function(button, gameObject, pointer){
button.setEnable(false);
ScenesData.menuScene.roomEnterDialog.setVisible(true).popUp(200); ScenesData.menuScene.roomEnterDialog.setVisible(true).popUp(200);
}, this); })
this.shopBtn = this.button.add(new Button(this, game.config.width - 100, 900, 'pyeongminThrow', 1, 0, 2).setScale(0.5).setDepth(5), this.shopBtn = UIObject.createButton(this, UIObject.createLabel(this, game.config.width - 100, 900, 5, 'pyeongminThrow', 0.5), 1, 0, 2,
function()
{ {
enabled: true, mode: 0
}).on('click', function(button, gameObject, pointer){
console.log('상점 입장'); console.log('상점 입장');
}, this); })
this.hopaeBtn = this.button.add(new Button(this, 100, 900, 'pyeongminThrow', 1, 0, 2).setScale(0.5).setDepth(5), this.hopaeBtn = UIObject.createButton(this, UIObject.createLabel(this, 100, 900, 5, 'pyeongminThrow', 0.5), 1, 0, 2,
function()
{ {
enabled: true, mode: 0
}).on('click', function(button, gameObject, pointer){
ScenesData.changeScene('hopaeScene'); ScenesData.changeScene('hopaeScene');
}, this); })
} }
}); });
...@@ -293,31 +250,14 @@ var hopaeScene = new Phaser.Class( ...@@ -293,31 +250,14 @@ var hopaeScene = new Phaser.Class(
else else
{ {
this.checkDialog.setVisible(false); this.checkDialog.setVisible(false);
this.button.add(
this.rexUI.add.dialog({
x: game.config.width / 2,
y: game.config.height / 2,
background: this.add.sprite(game.config.width / 2, game.config.height / 2, 'panel').setOrigin(0.5, 0.5),
content: this.add.text(0, 0, '엽전이 부족합니다.', { this.errorMsg = UIObject.createButton(this, UIObject.createLabel(this, game.config.width / 2, game.config.height / 2, 10, 'panel', 1,
font: '50pt 궁서', '엽전이 부족합니다', 50, '#000000').layout().popUp(200), 0, 0, 0,
color: '#000000' function()
}),
space: {
left: 20,
right: 20,
top: 20,
bottom: 20,
}
}).layout().setDepth(10).popUp(200),
{ {
enabled: true, mode: 0 ScenesData.hopaeScene.errorMsg.destroy();
}).on('click', function(button, gameObject, pointer){ ScenesData.hopaeScene.checkBtn.setEnable(true);
gameObject.destroy(); })
this.checkBtn.setEnable(true);
}, this);
} }
} }
else else
...@@ -332,29 +272,24 @@ var hopaeScene = new Phaser.Class( ...@@ -332,29 +272,24 @@ var hopaeScene = new Phaser.Class(
.on('button.out', function (button, groupName, index) { .on('button.out', function (button, groupName, index) {
//console.log('button out'); //console.log('button out');
}); });
this.warningText = UIObject.createLabel(this, game.config.width / 2, game.config.height / 2 + 100, 10, 'button', 1, this.warningText = UIObject.createLabel(this, game.config.width / 2, game.config.height / 2 - 100, 2, 'panel', 1,
'이름 타수가 많아 플레이에 패널티가 있을 수 있습니다', 40, '#000000').setVisible(false).layout(); '이름 타수가 많아 플레이에 패널티가 있을 수 있습니다', 40, '#000000').setVisible(false).layout();
/*this.warningText = this.add.text(this, game.config.width / 2, game.config.height / 2 + 100, '이름 타수가 많아 플레이에 패널티가 있을 수 있습니다')
.setOrigin(0, 0.5).setColor('#000000').setDepth(10).setFontSize(40);
this.warningText.visible = false;*/
this.checkBtn = this.button.add(new Button(this, game.config.width / 2, 900, 'pyeongminWrite', 1, 0, 2).setScale(0.5).setDepth(5), this.checkBtn = UIObject.createButton(this, UIObject.createLabel(this, game.config.width / 2, 900, 5, 'pyeongminWrite', 0.5), 1, 0, 2,
function()
{ {
enabled: true, mode: 0
}).on('click', function(button, gameObject, pointer){
if(Input.checkProperInput(Input.inputField.text.text)) if(Input.checkProperInput(Input.inputField.text.text))
{ {
this.checkBtn.setEnable(false); ScenesData.hopaeScene.checkBtn.setEnable(false);
ScenesData.hopaeScene.checkDialog.setVisible(true).popUp(200); ScenesData.hopaeScene.checkDialog.setVisible(true).popUp(200);
} }
}, this).setEnable(false); })
this.backBtn = this.button.add(new Button(this, 100, 900, 'pyeongminWrite', 1, 0, 2).setScale(0.5).setDepth(5), this.backBtn = UIObject.createButton(this, UIObject.createLabel(this, 100, 900, 5, 'pyeongminWrite', 0.5), 1, 0, 2,
function()
{ {
enabled: true, mode: 0
}).on('click', function(button, gameObject, pointer){
ScenesData.changeScene('menuScene'); ScenesData.changeScene('menuScene');
}, this); });
} }
}); });
......
...@@ -10,8 +10,8 @@ UIObject.createLabel = function (scene, x, y, depth, image, size, text = '', tex ...@@ -10,8 +10,8 @@ UIObject.createLabel = function (scene, x, y, depth, image, size, text = '', tex
background: scene.add.sprite(x, y, image).setScale(size).setOrigin(0.5, 0.5).setDepth(depth), background: scene.add.sprite(x, y, image).setScale(size).setOrigin(0.5, 0.5).setDepth(depth),
text: scene.add.text(x, y, text, { text: scene.add.text(x, y, text, {
fontSize: textSize + 'pt' font: textSize + 'pt 궁서'
}).setDepth(depth).setOrigin(textOriginX, textOriginY).setColor(textColor).setFontFamily('궁서'), }).setDepth(depth).setOrigin(textOriginX, textOriginY).setColor(textColor),
space: { space: {
left: 10, left: 10,
...@@ -22,26 +22,48 @@ UIObject.createLabel = function (scene, x, y, depth, image, size, text = '', tex ...@@ -22,26 +22,48 @@ UIObject.createLabel = function (scene, x, y, depth, image, size, text = '', tex
}); });
} }
class Button extends Phaser.GameObjects.Sprite{ UIObject.createButton = function(scene, buttonGameObject, overFrame, outFrame, downFrame, clickCallback) {
var temp = scene.rexUI.add.buttons({
constructor(scene, x, y, texture, overFrame, outFrame, downFrame) x: 0,
{ y: 0,
super(scene, x, y, texture); width: undefined,
scene.add.existing(this); height: undefined,
orientation: 0,
this.setFrame(outFrame).setInteractive() buttons: [
buttonGameObject,
],
click: {
mode: 'pointerdown',
clickInterval: 100
}
});
buttonGameObject = buttonGameObject.getElement('background');
temp.enabled = true;
buttonGameObject.setFrame(outFrame).setInteractive()
.on('pointerover', () => { .on('pointerover', () => {
this.setFrame(overFrame) if(temp.enabled)
{
buttonGameObject.setFrame(overFrame);
}
}) })
.on('pointerdown', () => { .on('pointerdown', () => {
this.setFrame(downFrame) if(temp.enabled)
{
buttonGameObject.setFrame(downFrame);
clickCallback();
}
}) })
.on('pointerup', () => { .on('pointerup', () => {
this.setFrame(overFrame) buttonGameObject.setFrame(outFrame);
}) })
.on('pointerout', () => { .on('pointerout', () => {
this.setFrame(outFrame) buttonGameObject.setFrame(outFrame);
}) })
temp.setEnable = function(isEnable)
{
temp.enabled = isEnable;
return temp;
} }
return temp;
} }
\ No newline at end of file
...@@ -13,7 +13,7 @@ app.get('/', function(req, res) { ...@@ -13,7 +13,7 @@ app.get('/', function(req, res) {
}); });
// http 기본 포트(80)에 서버 열기 // http 기본 포트(80)에 서버 열기
server.listen(8080, function() { server.listen(80, function() {
console.log('[SERVER] Listening on port ' + server.address().port); console.log('[SERVER] Listening on port ' + server.address().port);
}); });
......
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