意外的令牌:处理中的int

问题描述 投票:1回答:1

所以我正在写一个着色/艺术程序,我正试图在一个框中检测鼠标点击以选择颜色。我有颜色作为变量,我使用If语句来修改它,但是每次运行它时我的变量都会抛出一个错误。错误来自第3行'int color = #FFFFFF'

void draw()
{
int color = #FFFFFF;
pen.beginDraw();
if(mousePressed && (mouseX > 5 && mouseX < 95 && mouseY > 5 && mouseY < 95))
{
pen.clear();
}
if(mousePressed && (mouseX > 5 && mouseX < 95 && mouseY > 105 && mouseY < 195))
{
color = #000000;
}
if(mousePressed && (mouseX >5 && mouseX <95 && mouseY > 205 && mouseY < 295))
{
color = #000EFF;
}
if(mousePressed && (mouseX >5 && mouseX <95 && mouseY > 305 && mouseY < 395))
{
color = #FF0000;
}
if(mousePressed && (mouseX >5 && mouseX <95 && mouseY > 405 && mouseY < 495))
{
color = #00FF0A;
println("green");
}
pen.fill(color);
pen.ellipse(mouseX, mouseY, 10, 10);
pen.endDraw();
}
processing
1个回答
1
投票

在处理缩进时,color是内置函数(color())的名称,它从红色,绿色,蓝色和alpha颜色通道创建一个n整数颜色值。 这导致您无法声明具有相同名称color的变量。

您必须重命名变量才能解决问题:

EG

int fillcolor = color(255);
int fillcolor = color(0, 14, 255);
int fillcolor = color(255, 0, 0, 255);

如果你用十六进制值来表示变量fillcolor,那么你必须考虑,颜色也有一个alpha通道。这意味着该值由4个颜色组件组成,并且必须具有8个十六进制数字:

EG

int fillcolor = #FFFFFFFF;
int fillcolor = 0xFF000000;

无论如何,它更喜欢使用函数color(),这使代码更容易理解。


可能你不想在函数draw中声明变量,但是你想要声明一个全局变量。 考虑像这样编写代码:

int fillcolor = color(255);

void draw() {

    pen.beginDraw(); 

    if (mousePressed) {

        if (mouseX > 5 && mouseX < 95) {

            if (mouseY > 5 && mouseY < 95) {
                pen.clear();
            } else if (mouseY > 105 && mouseY < 195) {
                fillcolor = color(0);
            } else if (mouseY > 205 && mouseY < 295) {
                fillcolor = color(0, 0, 255);
            } else if (mouseY > 305 && mouseY < 395) {
                fillcolor = color(255, 0, 0);
            } else if (mouseY > 405 && mouseY < 495) {
                fillcolor = color(00, 255, 0);
                println("green");
            } 
        }
    }

    pen.fill(fillcolor);
    pen.ellipse(mouseX, mouseY, 10, 10);
    pen.endDraw();
}   
© www.soinside.com 2019 - 2024. All rights reserved.