if()处理.js意外标识符

时间:2016-11-02 08:37:50

标签: javascript identifier processing.js

我似乎无法找到错误,但是当我删除if语句时它运行正常。代码很短,所以应该很容易找到问题。

int zw1;
int zw2;
int px = 100;
int py = 100;
int ppx = px + random(-20, 20);
int ppy = py + random(-20, 20);
int cx;
int cy;
int xrand = 50;
int yrand = 50;
int opacity = 49;
frameRate(30);
background(74, 71, 74);
int timetoclear = 0;

int x0 = 0;
int y0 = 0;
void setup() {
    size(400, 400);

}
void draw() {

    cx = px + random(-xrand, xrand);
    cy = py + random(-xrand, xrand);

    // fill(74, 72, 74,5);
    // rect(-10,-10,1000,1000);

    //cx = mouseX;
    //cy = mouseY;  
    if (cx <= 0) {
        cx = 0;
    }
    if (cx >= 400) {
        cx = 400;
    }
    if (cy <= 0) {
        cy = 0;
    }
    if (cy >= 640) {
        cy = 640;
    }

    stroke(30 + random(-100, 100), 195 + random(-100, 100), 201, 60);

    fill(30 + random(-100, 100), 195 + random(-100, 100), 201, 50);

    triangle(ppx, ppy, px, py, cx, cy);

    ppx = px;
    ppy = py;
    px = cx;
    py = cy;
}

抛出: 未捕获的SyntaxError:意外的标识符

2 个答案:

答案 0 :(得分:0)

如果我在这里运行代码,我的代码可以正常运行:http://processingjs.org/tools/processing-helper.html

你究竟是如何运行代码的?

我强烈建议您在Java模式下进行编程,然后仅在导出时切换到JavaScript模式。这将捕获您所有的小错误,例如:

  • 在调用frameRate()函数之前,您不应该使用background()random()以及setup()之类的调用。移动setup()函数内的那些。

  • random()函数返回float值,但您将其存储在int变量中。 JavaScript不会抱怨,但会导致奇怪的行为。

答案 1 :(得分:-1)

不知道为什么会失败,但您可以尝试将其作为解决方法:

cx = Math.max(0, Math.min(400, cx));
cy = Math.max(0, Math.min(640, cy));

而不是

if (cx <= 0) {
    cx = 0;
}
if (cx >= 400) {
    cx = 400;
}
if (cy <= 0) {
    cy = 0;
}
if (cy >= 640) {
    cy = 640;
}