2015-04-26 4 views
1

У меня есть код, только кнопка создана с помощью Phaser:Кнопка в Phaser не работает

//---------------------------------Boot 
module.exports = { 

init: function() { 
    closeButton = game.add.button(w/1.47, h/1.272, 'close', this.closeProfile, this); 
    closeButton.fixedToCamera = true; 
    closeButton.inputEnabled = true; 
}, 

closeProfile: function() { 
    alert('asd') 
    close.key = 'img/profile/closePress.png'; 
} 
}; 

Module.exports - это Browserify

в главном файле есть другой код:

//---------------------------------Main 
window.game = new Phaser.Game((h > w) ? h : w, (h > w) ? w : h, Phaser.CANVAS, 'game', {render:render}); 

var ship; 
var cursors; 
var sun1; 
var rc; 
var space; 

var profile; 
var closeButton, holdLeft, holdRight, avaProfile; 

game.state.add('Boot', require('./states/boot.js')); 
game.state.add('Play', require('./states/play.js')); 
game.state.start('Boot'); 

И кнопка вообще не вызывает функцию.

ответ

0

Привет, Я также довольно новичок в phaser, но я бы попробовал добавить к нажатию кнопку on click, как показано ниже.

closeButton.inputEnabled = true; 
closeButton.events.onInputDown.add(onDown,this); 
function onDown(sprite,pointer){ 
    Some function code here; 
}; 

Объяснение: onDown это имя функции, которая будет вызвана, это ключевое слово относится к способу ввода используется. затем по функции, которую вы передаете спрайту (или в этом случае нажата кнопка) и используемому методу ввода (указатель). Удача в надежде, что это поможет.

+0

О, только что заметил, что этот вопрос довольно старый, извините, если вы уже получили ответ давным-давно –

0

Попробуйте использовать что-то вроде:

var button; 
button = game.add.button(200, 200, 'button', functionName, game); 

И положил его в функции создания. Функция init предназначена для таких вещей, как изменение размера.