请教点GUI方面的问题,关于DRAW GUI耗费的性能是否比直接做成背景贴图要大很多?
顺子 额,就是因为排查不出原因,所以才莫名其妙,现在手头没代码,大致结构是这样
if instance_exist(mouse_x, mouse_y, obj_button)
{
if mouse_check_button_released (mb_left)
{
if obj_game.paused = false;
{
obj_game.paused = true;
instance_deactivate_layer("Instances");
instance_create_layer(target_x, target_y,"Instances", obj_box);
}
} else...
}
作用就是当我用鼠标点击某按钮时,Instance层上的对象暂停活动,然后弹出obj_box显示道具或者信息什么的,结果每次点这个按钮后内存都会不断变大……
这串代码用//注释掉instance_deactivate_layer("Instances")后,内存就正常了……
按理说,毛病可能是出在obj_box在不断创建ds之类数据导致的?然而仔细查找也并没有,draw_gui事件里都是在调取非Instance图层的obj_data里的……
而且用//注释掉instance_create_layer(target_x, target_y,"Instances", obj_box),按了按钮后内存依然不断变大……
所以这里单纯用instance_deactivate_layer("Instances")就会导致内存溢出……
然后想,难道是出在instance_deactivate_layer("Instances")本身影响了非Instances层的其他脚本工作?
但是在obj_game的step里直接用esc来触发instance_deactivate_layer("Instances"),又没有内存溢出问题……
所以一直没弄明白到这个毛病到底出在哪里,不过本来游戏就是类似roguelike的回合制,只要禁用掉某些东西一样可以实现暂停效果,想了想万一是引擎的BUG这么一直找原因岂不是浪费时间,就干脆换了种方式……
还真没试过,但应该可以用debug模式观察一下内存的消耗情况吧