【问题标题】:How can I get mouseClick to find a variable and randomize it?如何让 mouseClick 找到一个变量并将其随机化?
【发布时间】:2015-05-16 18:38:06
【问题描述】:

我正在浏览 Khanacademy 网站,对如何在鼠标单击后制作随机大小(在某些参数内)和彩色鱼有点困惑。我什至无法让 mouseClick 工作。

background(89, 216, 255);


var mouseClicked = function(drawFish){

};

^^^^^^^^^^^^^^^ 我在这里错过了什么? ^^^^^^^^^^

var drawFish = function(centerX, centerY, bodyLength, bodyHeight, bodyColor, tailWidth,
tailHeight, eyeColor,tailColor, eyeWidth, eyeHeight){


noStroke();
fill(bodyColor);
// body
ellipse(centerX, centerY, bodyLength, bodyHeight);
// tail

fill(tailColor);
triangle(centerX-bodyLength/2, centerY,
     centerX-bodyLength/2-tailWidth, centerY-tailHeight,
     centerX-bodyLength/2-tailWidth, centerY+tailHeight);
// eye
fill(eyeColor);
ellipse(centerX+bodyLength/3, centerY, eyeWidth, eyeHeight);

};
drawFish(296, 281, -57,52, color(245, 227, 30),-15, 60,color(13, 12,   12),color(66, 58, 58),4,4); // yellowFish

drawFish(290, 80, 180, 140, color(255, 0, 0), 57, 45,color(46, 66, 194), color(255, 204, 0),32,8); // redFish

drawFish(146,233, 218, 141, color(62, 110, 67), 30, 10, color(245, 240, 245), color(0, 51, 255),12,48); // greenFish

drawFish(233, 370, 322, 36, color(133, 34, 199), 61,15, color(255, 0, 0), color(34, 255, 0),67,20); // purpFish

任何其他指针或建议将不胜感激。 谢谢大家!

【问题讨论】:

  • 另外,我将如何为鱼制作动画?我知道它会在“drawfish+=1”的某个地方,但是当它们都具有相同的调用函数名称时,我该如何挑选出其中的一条呢?
  • 这既不是处理代码,也不是 JavaScript,您已经创建了两种语言的混搭,其中部分碰巧做事,部分不做。我建议不要尝试简化事情,而首先编写处理代码。 API 有很好的文档记录,即使只是阅读mouseClicked 的文档,也会向您展示您所写内容不起作用的确切原因(提示:您所写的内容与 API 签名不匹配)

标签: javascript processing.js


【解决方案1】:

酷鱼!我也在学习处理。我运行了您的代码并提出了此功能,以便在您单击时出现随机鱼。

void mouseReleased() {
    var c1 = color(random(0,255),random(0,255),random(0,255),random(0,255))
    var c2 = color(random(0,255),random(0,255),random(0,255),random(0,255))
    var c3 = color(random(0,255),random(0,255),random(0,255),random(0,255))
    var s1 = random(10,100)
    var s2 = random(10,100)
    var s3 = random(10,100)
    var s4 = random(10,100)
    var s5 = random(5,s1)
    var s6 = random(5,s2)
    drawFish(mouseX, mouseY, s1, s2, c2, s3,s4, c2, c3,s5,s6); //randFish
    }

要制作动画,我想你会想要使用 draw() 函数,使用变量来表示 x,y 位置并每次都重绘背景。这个例子有红色的鱼跟随鼠标。

void draw(){
    background(89, 216, 255);
    drawFish(mouseX, mouseY, 180, 140, color(255, 0, 0), 57, 45,color(46, 66, 194), color(255, 204, 0),32,8); // redFish
    }

我希望你的水族馆真的很棒!

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多