在游戏中当主角点击购买装备或者武器的时候,都会弹出一个提示框;提示主角是否要购买该装备。但是在游戏的制作中不能只考虑到购买武器的时候出现提示框,还有购买装备的时候,所以就要给弹出框的方法进行封装起来。这样就可以达到代码复用的效果。具体代码如下:
onLoad: function () {
var that = this
this.certainPanel.getChildByName('ensureButton').on(cc.Node.EventType.TOUCH_START,function(event){
that._certainHandle()
that.certainPanel.active = false
})
this.certainPanel.getChildByName('cancelButton').on(cc.Node.EventType.TOUCH_START,function(event){
that.certainPanel.active = false
})
},
pub_setInfo:function(info, certainHandle){
this.certainPanel.active = true
this.certainPanel.getChildByName("tishiLabel").getComponent(cc.Label).string = info
this._certainHandle = certainHandle
}
在脚本的最开始先是找到节点下的两个按钮;也就是当点击购买之后出现的确定按钮和取消按钮。里面写的是点击之后执行的逻辑;当点击确定按钮之后,先是调用一个方法that._certainHandle()
这个方法是在下面的方法体里面设置的;当某一个地方需要使用提示框的时候就会调用这个 pub_setInfo的方法;并且给他们传入相应的值;在这里第一个值是需要在提示框中显示的信息;第二个是当点击之后执行的逻辑;在RPG游戏中当在武器系统中点击了购买按钮;就会弹出提示框代码如下:
//___________________点击按钮______________________
newWeaponNode.getChildByName('goumai Button').on(cc.Node.EventType.TOUCH_START,function(event){
that.getComponent(' PromptControl').pub_setInfo('确认使用'+ox.price+'元宝购买'+ox.name+"吗?",
buyWeapon
)
function buyWeapon(){
if(GameAction.ItemBuy(ox.price)){
GameData.personProperty.hurt += parseInt(ox.Minhurt);
}
}
})
在点击购买之后就会调用这个脚本里面的pub_setInfo方法并且传值;第一个是设置的信息;第二个是传的是一个方法的方法体;也就是当脚本使用型参接收到的certainHandle就代表的是buyWeapon方法的方法体;所以在代码的开始部分只有当点击了确定之后才会执行方法体里面的逻辑;这样就可以达到每次传来不同的信息和方法逻辑;都可以在这个文本框中显示并且弹出提示
ps:第一段代码是单独封装成一个脚本;低二段代码是想要出现提示框的位置添加并且传值的。