在战场上所有单位都需要闹钟实现射击、移动等,如果为每项功能都创建一个闹钟,会存在大量闹钟计数+1的情况。
有没有可能让多个实例共享一个闹钟计数,这样不论创建多少个闹钟,也只运行一次“闹钟计数 += 1;”
闹钟调用脚本函数
function iy_Alarm(){
return o_Ctrl1.image_index + NZ//要确保o_Ctrl1是唯一的
}
每个房间运行前都有一个控制类 o_Ctrl1 提前放入房间中
o_Ctrl1创建事件
//创建调用闹钟的多个Object2实例
var i=0; repeat (10) {
instance_create_layer(x + i * 32,y,layer,Object2)
i += 1
}
Object2创建事件
NZ = irandom_range(10,30)//闹钟步数
NZT = iy_Alarm()//闹钟检测
Object2绘制事件
if (o_Ctrl1.image_index == NZT) {
draw_circle(x,y,4,false)//闹钟测试执行代码
NZT = iy_Alarm()//循环闹钟
}
这是本人今天看《设计模式与游戏完美开发_蔡升达》得到的灵感。把灵感变成代码测试后,确实可行。欢迎广大吧友也试一试,例如:在Object2中再增加一个需要闹钟的功能,看看行不行?
有没有可能让多个实例共享一个闹钟计数,这样不论创建多少个闹钟,也只运行一次“闹钟计数 += 1;”
闹钟调用脚本函数
function iy_Alarm(){
return o_Ctrl1.image_index + NZ//要确保o_Ctrl1是唯一的
}
每个房间运行前都有一个控制类 o_Ctrl1 提前放入房间中
o_Ctrl1创建事件
//创建调用闹钟的多个Object2实例
var i=0; repeat (10) {
instance_create_layer(x + i * 32,y,layer,Object2)
i += 1
}
Object2创建事件
NZ = irandom_range(10,30)//闹钟步数
NZT = iy_Alarm()//闹钟检测
Object2绘制事件
if (o_Ctrl1.image_index == NZT) {
draw_circle(x,y,4,false)//闹钟测试执行代码
NZT = iy_Alarm()//循环闹钟
}
这是本人今天看《设计模式与游戏完美开发_蔡升达》得到的灵感。把灵感变成代码测试后,确实可行。欢迎广大吧友也试一试,例如:在Object2中再增加一个需要闹钟的功能,看看行不行?