javascript - 需要设计大量逻辑判断或者做一个大型的项目该是什么样的一个流程?
巴扎黑
巴扎黑 2017-04-11 09:07:01
0
0
390

https://segmentfault.com/q/1010000004868...

这个是上次提到的一个按键问题。
最初想做一个类似冒险岛的横版游戏,来练习js。提高逻辑判断。
角色的最初模仿的是拳皇的动作。
最开始就设想了人物的几种行为机制:
前进
快速前进
按住不动前进
后退
快速后退
按住不动后退
跳跃
前进+跳跃
后退+跳跃
蹲下

现在在求助网友的帮忙,已经搞定了一些按键事件:单击事件,双击事件,组合事件。虽然都有点小瑕疵,但起码能用。
但是现在突然发现“按住不动”的事件也需要在判断一次,思维一下子全乱了。

这么多的行动机制只能用一个js的按键事件,其中的逻辑判断想完全判断出来,我发现不是我一个初学js的人能设计的到的。
突然想问问,如果想用一个js做一个游戏,起初要干点什么?或者说,弄一个需求功能初稿。
有没有js高手能告诉我,这么多的行为机制,用一个按键事件来触发如何能够有一个清晰的思路或者更好的办法??
真的想的是头都大了。。


这个是我判断前进,快速前进,后退和快速后退的function。该如何优化的加入按住不放的前进后退事件呢?

/**
 * 控制器
 * 
 */
function control(num){
    is_numclick(num)
}

/**
 * 判断是否双击或者单击
 */
function is_numclick(num){
    var timeout;
    var left_code=37;
    var right_code=39;
    var tips="";
    var is_num;
    var is_nums;
    /*alert(is_nums)*/
    if(num==left_code){
        is_num=left_code;
        tips="后退";
    }else{
        is_num=right_code;
        tips="前进";
    }
    if(!keyT){
        keyT=true;
        //判断is_nums是否有值,有就和is_num对比判断,没有就为true;
        if(num==is_num||is_nums==undefined?true:is_num==is_nums){
            is_nums=is_num;
            console.log("你单击了"+tips);
            timeout=setTimeout(function(){
                keyT=false;
            },100)
        }
    }else{
        keyT=false;
        if(num==is_num){
            console.log("你双击了"+tips);
        }
    }
}
巴扎黑
巴扎黑

Antworte allen(0)
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!