Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Processing.js中的update()中侦听键盘输入_Javascript_Keyboard_User Input_Processing_Processing.js - Fatal编程技术网

Javascript 如何在Processing.js中的update()中侦听键盘输入

Javascript 如何在Processing.js中的update()中侦听键盘输入,javascript,keyboard,user-input,processing,processing.js,Javascript,Keyboard,User Input,Processing,Processing.js,我一直在做一个processing.js演示,其中物体围绕一个中心点运行。我正在尝试为输入添加一个侦听器,该侦听器检查是否在每次更新时按下s键,如果是,则调用一个方法以将每个天体的轨道大小减小指定的因子 这个例子是在jsfiddle上的 基本上,我在update()方法中放置了一些代码来监听按键: void update() { //detect input if(keyPressed) { debugger; /

我一直在做一个processing.js演示,其中物体围绕一个中心点运行。我正在尝试为输入添加一个侦听器,该侦听器检查是否在每次更新时按下
s
键,如果是,则调用一个方法以将每个天体的轨道大小减小指定的因子

这个例子是在jsfiddle上的

基本上,我在update()方法中放置了一些代码来监听按键:

 void update()
    {
        //detect input
        if(keyPressed)
        {
            debugger; //debug

            if(key == 's' || key == 'S')
            {
                //shrink orbit
                ShrinkOrbit(planets,.9);
            }

        }    
    }
调用
收缩轨道(ArrayList orbs,float reductionFactor)
方法:

/*
* Reduces size of orbit for specified group of orbiting bodies
*/
void ShrinkOrbit(ArrayList<OrbitalBody> orbs, float reductionFactor)
{   
    for(OrbitalBody b:orbs)
    {
        b.x *= reductionFactor;
        b.y *= reductionFactor
    }
}
我是否错误地认为
update()
是一种全局方法,与
setup
等效,可以在任何草图中调用?我曾在另一个功能正常的JSFIDLE中看到过这样的用法,这也是我得出结论的地方。我的目标是Processing.js 1.4.1,如果有帮助的话。

不要这样做。1) update确实不是一个全局函数,您得到的唯一函数是处理API函数,两个主要调用是setup(),在开始时调用一次,draw()每帧调用一次(除非您发出noLoop(),那么它只有在手动调用redraw()时才运行),以及2)使用事件处理程序,这就是它们的用途=)

Uncaught SyntaxError: Unexpected reserved word 
Uncaught TypeError: Cannot read property 'reason' of null Actions.js:333
(anonymous function) Actions.js:333
(anonymous function) moo-clientcide-1.3.js:212
Array.implement.each moo-clientcide-1.3.js:329
(anonymous function) moo-clientcide-1.3.js:212
Class.JSLintValidate Actions.js:330
wrapper.extend.$owner moo-clientcide-1.3.js:3798
Class.jsLint Actions.js:277
wrapper.extend.$owner moo-clientcide-1.3.js:3798
(anonymous function) moo-clientcide-1.3.js:1027
defn
boolean reduce = false;

void keyPressed() {
  if(str(key).equals("s")) reduce = true;
}

void keyReleased() {
  if(str(key).equals("s")) reduce = false;
}

void draw() {
  if(reduce) { doWhateverYouNeedToDo(); }
  drawStuff();
}