2016-09-25 13 views
0

我试图创建一个绘图程序,使用处理3.2.1,使其当我按任何数字1 - 0时,颜色更改基于颜色分配给密钥。我面临的问题是我似乎无法弄清楚它为什么不起作用。这是我的代码到目前为止。试图改变我的绘图应用程序的画笔颜色

float value = 255; 
color c1 = color(0,0,0); 
float e = 5; 
float thickness = 1; 
float max = 6; 

void setup(){ 
    size (720,480); 
    frameRate (120); 
    background (255); 
    fill (c1); 
    stroke (c1); 
} 

void draw() 
{ 
if(mousePressed) 
{ 
    if(thickness < max) 
    { 
    strokeWeight(thickness); 
    line(mouseX, mouseY, pmouseX,pmouseY); 
    thickness = thickness+0.25; 
    } 
    else 
    { 
    line(mouseX, mouseY, pmouseX,pmouseY); 
    strokeWeight(max); 
    } 
} 
} 
void mouseReleased() 
{ 
thickness = thickness/thickness; 
} 


void keyPressed(){ 
    if (key == '1') { 
     c1 = color(255,0,0); //red 
    } 
    if (key == '2') { 
     c1 = color(0,255,0); //green 
    } 
    if (key == '3') { 
     c1 = color(0,0,255); //blue 
    } 
    if (key == '4') { 
     c1 = color(255,255,0); //yellow 
    } 
    if (key == '5') { 
     c1 = color(255,0,255); //magenta 
    } 
    if (key == '0') { 
     c1 = color(255); 
    } 
    if (key == '9') { 
     c1 = color(0); 
    } 
    if (key == '=') { 
     e = e + 3; 
     if (e > 100){ 
     e = 100; 
     } 
    } 
    if (key == '-') { 
     e = e - 3; 
     if (e < 1){ 
     e = 1; 
     } 
    } 
} 
+0

你能澄清你的意思是_“它不工作”_?你有错误吗?该计划是否不符合您的期望? ... – lfurini

+0

我想出了我的问题。事实证明,我应该有填充和中风void draw()而不是void setup():) –

+0

我的问题是,行的颜色没有改变颜色。然后我意识到我的问题是我填写声明的地方 –

回答

0

现在你只设置颜色(通过调用fill()stroke()功能)一次,在setup()功能。即使你正在改变c1变量,那也不会奇迹般地改变颜色。

为了解决这个问题,您可能需要调用fill()stroke()功能,当你在keyPressed()改变颜色,或者你可以给他们打电话draw()功能。

另请注意,如果您不想使用不同的彩色轮廓,则可以致电noStroke()

相关问题