Android动画和performClick创建游戏AI

Android动画和performClick创建游戏AI,android,user-interface,animation,Android,User Interface,Animation,我试图通过自动点击按钮来创造人工智能的幻觉 我知道我可以使用动画框架并在按钮视图上使用performClick,但是您能推荐一种将performClick()调用添加到动画序列中的方法吗 谢谢你能给我的帮助 我的解决方案(受MVC启发的方法): 我们可以创建一组预先确定的操作: Stack replay=new Stack()(AIAction是模型) 然后,我们可以将每个新操作添加到堆栈中,以便稍后重播: replay.add(新建AIAction(AIAction.SELECT,…) 所有的

我试图通过自动点击按钮来创造人工智能的幻觉

我知道我可以使用动画框架并在按钮视图上使用performClick,但是您能推荐一种将performClick()调用添加到动画序列中的方法吗

谢谢你能给我的帮助

我的解决方案(受MVC启发的方法):

我们可以创建一组预先确定的操作:
Stack replay=new Stack()(AIAction是模型)

然后,我们可以将每个新操作添加到堆栈中,以便稍后重播:
replay.add(新建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;
        }
    }
// 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);
}