java - setFill 处理在 Java 中不起作用
问题描述
我的代码的基础是,如果我用鼠标单击屏幕,矩形会改变颜色。我将矩形制作为一个名为 d 的形状,并且我希望能够在不重绘形状的情况下更改颜色。所以 :
void setup
{
d = createShape(); // d is a PShape
d.beginShape();
fill(100);
rect(200,200,200,200);
d.endShape(CLOSE);
d.disableStyle()
}
void draw()
{
shape(d, 300, 250);
if ( mouseX >= 0 && mouseX <= 600 && mouseY >=0 && mouseY <= 600 )
{
greenC = true; //a boolean
}
}
public void mousePressed()
{
if ( greenC )
{
d.disableStyle();
d.setFill(0);
}
}
setFill 无论我做什么都不起作用,我很困惑为什么。
解决方案
首先,您的代码无法编译。您缺少变量声明,函数名称()
后需要括号setup
,并且缺少分号。请尝试发布一个可以编译的MCVE,这样我们就可以实际看到发生了什么。
但是您的问题是由于您的形状实际上并不包含形状而引起的。您的呼叫rect()
与您的呼叫完全无关createShape()
。要创建形状,您需要调用d.vertex()
向形状添加点。
请通读参考:
PShape square; // The PShape object
void setup() {
size(100, 100);
// Creating the PShape as a square. The
// numeric arguments are similar to rect().
square = createShape(RECT, 0, 0, 50, 50);
square.setFill(color(0, 0, 255));
square.setStroke(false);
}
void draw() {
shape(square, 25, 25);
}
推荐阅读
- mongodb - 无法在树莓派上安装 mongo 3.6
- ios - 故事板 - 对象内的对象作为 IBOutlet
- django - Python-django.db.migrations.exceptions.NodeNotFoundError
- mstest - MStest 中的 Textcontext 属性给出空引用异常
- javascript - Javascript 数学文本字段
- vba - 在 VBA 中将单元格的值写入另一个 Excel
- java - Android MediaRecorder Fragment 如何保持同一个实例
- angular - `sass` 在 css 中使用大括号时抛出错误
- javascript - 如何将模型对话框定位到中心?
- kinect - 从 Kinect 检测到的帧速率不足