代码照着敲的,应该没问题,方块还是一直在最上面不下落。老师帮忙看看啊,多谢了!
void doFall ()
{
for (int x = 0; x < _model.width; ++x) {
for(int y = _model.height-1; y >= 0; --y){
Cube c = _model.getCube(x, y);
if(c.isEnabled){
for(int n = y+1; n < _model.height; ++n){
Cube fall = _model.getCube(x, n);
if(fall == null || fall.isEnabled == true){
break;
}else{
fall.number = c.number;
fall.isEnabled = true;
c.isEnabled = false;
}
}
}
}
}
refreshModel2View ();
}
private State fallState ()
{
StateWithEventMap state = TaskState.Create(delegate {
Task task = new Task();
TaskManager.PushFront(task, delegate {
doFall();
});
return task;
}, fsm_, "remove");
state.onStart += delegate {
Debug.LogWarning("in fall!");
};
return state;
}