3
多个游戏频率要每一帧都执行,所以我们应该给一些动作更低的频率
我举一个例子
魔兽争霸的光环的有无
判断方式是,计算场上每个生物的坐标值和有光环生物的坐标值关系,并且判断光环是否可以存在。如果场上有100个生物,就要判断几百次。如果每帧都执行,计算机会很累的。所以我们看到,魔兽的光环几十个一段时间才计算一次的。
关于这个系统,我用的是一个简单的方法实现。
private function game(e:Event):void
{
//moveCursor()
if (pausegame == false)
{
turndefault();
turnchar();
turnmonster();
checkmstdie();
freq3++;
freq4++;
if (freq3 > 23)
{
Main.common.restorechar()
freq3 = 0;
}
if (freq4 > 239)
{
Main.interfc.optionbd.autosave();
freq4 = 0;
}
}
weather.showweather();
showstate();
freq++;
freq2++;
if (freq > 9)
{
Main.interfc.charbd.refreshequip();
Main.interfc.missionbd.refreshmission();
freq = 0;
for (var j:int = monster.length - 1; j >= 0; j--)
{
commonmst.action2(monster[j]);
}
}
if (freq2 > 2)
{
freq2 = 0;
interfc.charbd.showstattext();
Main.common.tempeff(Main.common.tempeffert)
if (interfc.bag.itemchange == true)
{
interfc.bag.bagchange();
}
showstate2();
}
}