我在sketchpad.cc上,而draw方法不会输出任何文字。
int i = 0;
int count = 0;
int x1 = 0; int y1 = 0; int x2 = 0; int y2 = 0; int x3 = 0; int y3 = 0;
void setup() { // this is run once.
// set the background color
background(255);
// canvas size (Integers only, please.)
size(300, 300);
// smooth edges
smooth();
// limit the number of frames per second
frameRate(30);
strokeWeight(2);
}
void mouseClicked() {
if(count == 0) {
x1 = mouseX;
y1 = mouseY;
count++;
}
if(count == 1) {
x2 = mouseX;
y2 = mouseY;
line(x1, y1, x2, y2);
count++;
}
if(count == 2) {
x3 = mouseX;
y3 = mouseY;
count = 0;
line (x1, y1, x2, y2);
line (x2, y2, x3, y3);
line (x3, y3, x1, y1);
}
}
void draw() {
line (40,50,40,90);
text("derp",10,50);
text(x1+","+y1+","+x2+","+y2+","+x3+","+y3, 10, 20);
}
该程序应该绘制三角形。我的绘制方法会像它想象的那样绘制线条,但它不会执行文本。让我感到沮丧的是,我之前使用过text()而没有任何问题。我回去加载了我之前用text()创建的另一个程序,它运行得很好!打印文本n。但我目前的计划不会这样做。
我很失落:(答案 0 :(得分:1)
请在发布前将问题缩小到MCVE。例如,这个小得多的程序显示出与完整草图相同的问题:
void setup() {
size(300, 300);
background(255);
}
void draw() {
text("derp", 10, 50);
}
如果您运行此程序,即使我们正在调用text()
函数,您也只会看到白色背景。为了调试这个,我首先取出对background()
的调用并运行它。
void setup() {
size(300, 300);
}
void draw() {
text("derp", 10, 50);
}
如果您运行该程序,您将看到文本被绘制到屏幕上,并且它以白色绘制。那是因为默认的绘制颜色是白色。所以第一个程序只是在白色背景上绘制白色文本,这就是为什么你看不到它。
要解决此问题,请使用fill()
功能更改背景颜色或更改文字颜色。
另一条建议:你需要在较小的块中工作。而不是编写整个程序,然后想知道为什么它不起作用,你需要一次只能运行一个小块。像本文中的示例一样处理块,并且只有在一切正常工作时才添加少量代码。这将帮助您捕获像这样的错误。推荐阅读:How to Program