我对 Javascript 有点陌生,所以也许这只是一个菜鸟错误,但我还没有找到任何能在环顾四周时特别帮助我的东西。我正在写一个游戏,我正在尝试为暂停菜单构建一个对象。
为了组织起见,我想做的一件事是让菜单上的按钮成为 pause_menu 对象内的对象。我最终将为这些对象添加事件处理程序,并且我也想在 pause_menu 对象中执行此操作。有些按钮还没有完全编码,但我想在继续之前至少让一些工作正常。
我正在使用 Raphael.js v1.5.2 来渲染形状。Raphael 的东西适用于界面的其余部分,但它的代码看起来不像这个那么令人愉快,所以类似的东西对我来说更可取。
我当前的问题是,当我执行 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: {}
};