代碼照著敲的,應該沒問題,方塊還是一直在最上面不下落。老師幫忙看看啊,多謝了!
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;
}
2016-06-02
State inputState ()
{
StateWithEventMap state = new StateWithEventMap ();
state.onStart += delegate {
Debug.LogWarning("in input!");
};
state.addAction("1", delegate(FSMEvent evt) {
Debug.Log ("I get one~");
input(0);
return "fall";
});
state.addAction("2", delegate(FSMEvent evt) {
Debug.Log ("I get two~");
input(1);
return "fall";
});
state.addAction("3", delegate(FSMEvent evt) {
Debug.Log ("I get 3~");
input(2);
return "fall";
});
state.addAction("4", delegate(FSMEvent evt) {
Debug.Log ("I get 4~");
input(3);
return "fall";
});
return state;
}
老師之前把return 后的fall刪了,之后又自己偷偷加上了,所以咱們的不下落,加上就行了
2016-01-26
input跳的狀態不是fall吧
2015-09-06
跟我遇到的問題一樣 ?好像邏輯上有問題。
2015-07-18
在下一節看到了正確的代碼,老師你太調皮了。。。