0
我想通過自動點擊按鈕來創建AI的幻覺。Android動畫和performClick創建遊戲AI
我知道我可以使用動畫框架並在按鈕視圖上使用performClick,但是您能推薦一種將performClick()調用添加到動畫序列的方法嗎?
感謝您的幫助!
我想通過自動點擊按鈕來創建AI的幻覺。Android動畫和performClick創建遊戲AI
我知道我可以使用動畫框架並在按鈕視圖上使用performClick,但是您能推薦一種將performClick()調用添加到動畫序列的方法嗎?
感謝您的幫助!
我的解決方案(MVC啓發方法):
我們可以創建預先確定的操作的堆棧: Stack<AIAction> replay = new Stack<AIAction>();
(AIAction是模型)
然後,我們可以在每一個新動作加入到我們的棧稍後重播: replay.add(new AIAction(AIAction.SELECT,...));
所有的邏輯和決定都在這裏完成。 (控制器)
我們有一組動作後,我們可以對其進行重放,併爲用戶顯示的動畫(視圖):
for (int i=0;i<replay.size();i++,start+=pause()){
AIAction thisAction = replay.get(i);
switch(thisAction.getAction()){
case AIAction.SELECT:
scheduleSelect(start,...);
break;
case AIAction.REENABLE_CLICKING:
scheduleReEnableClicking(start);
break;
case AIAction.TOAST:
if (thisAction.getToast())
scheduleToast(thisAction.getMessage(),start,true);
else
scheduleToast(thisAction.getMessage(),start,false);
break;
}
}
我們現在需要的功能,如scheduleSelect()
,scheduleReEnableClicking()
和scheduleToast()
: 這給人一種「思考」AI的印象,並允許用戶關注。
// for example:
private void scheduleSelect(int start,...){
Handler handler = null;
handler = new Handler();
handler.postDelayed(new Runnable(){
// select logic after 'start' milliseconds
...
}, start);
}
private void scheduleReEnableClicking(int start){
Handler handler = null;
handler = new Handler();
handler.postDelayed(new Runnable(){
public void run(){
// set clickable logic after 'start' milliseconds
setClickable(true);
}
}, start);
}
private void scheduleToast(final String message,int start){
Handler handler = null;
handler = new Handler();
handler.postDelayed(new Runnable(){
public void run(){
toast(message,pause());
}
}, start);
}
嗨你有沒有解決這個問題?我被類似的東西卡住了。 – ron 2011-04-09 08:27:33