Я новичок в Javascript, так что, возможно, это просто ошибка новичка, но я не нашел ничего, что помогло бы мне, пока оглядываться. Я пишу игру и пытаюсь создать объект для меню паузы.
Одна из вещей, которую я хотел бы сделать, - чтобы кнопки в меню были объектами внутри объекта pause_menu просто ради организации. В конце концов я собираюсь добавить обработчики событий к этим объектам, и я бы хотел сделать это и внутри объекта pause_menu. Некоторые кнопки еще не полностью закодированы,но я бы хотел, чтобы хоть что-нибудь заработало, прежде чем продолжить.
Я использую Raphael.js v1.5.2 для рендеринга форм. Материал Рафаэля работает для остальной части интерфейса, но код для него не так приятен, как этот, поэтому что-то похожее на это было бы для меня предпочтительнее.
Моя текущая проблема в том, что на самом деле ничего не отображается, когда я do var pause_menu = new pause_menu ();
Это код, который у меня есть для меню паузы:
//Pause Menu Object:
function pause_menu() {
function pause_button() {
this.button = game.rect(0, 350, 150, 50, 5);
this.text = game.text(75, 375, 'PAUSE');
}
function resume_button() {
this.button;
this.text;
}
function quit_button() {
this.button;
this.text;
}
this.pause_button = new pause_button(); //the button that the user presses to pause the game (I want an event handler on this to trigger .show() method for presently hidden menu items)
this.resume_button = new resume_button();
this.quit_button = new quit_button();
this.box = game.rect(150, 50, 400, 300, 5).hide(); //the box that surrounds the menu when it appears
}
var pause_menu = new pause_menu();
Хорошо, вот решение (с обработчиком событий):
var pause_menu = {
pause_button: { button : game.rect(0, 350, 150, 50, 5).click(function (event){
pause_menu.menu_box.show();
}), text : game.text(75, 375, 'PAUSE') },
menu_box: game.rect(150, 50, 400, 300, 5).hide(),
resume_button: {},
quit_button: {}
};