int x=0, y = height; void setup() { size(500, 500); } void draw() { int i; int X=0; background(0, 0, 255); for (i=1000; i>=650; i-=50, X+=37) { colorMode(HSB, 360, 255, 100); stroke(X, 255, 100); strokeWeight(50); fill(0, 0, 255); ellipse(width, height, i, i); } drawCar(x, height-20, 20); x++; if (x > width+20) x = 0; } void drawCar(int posx, int posy, int thesize) { rectMode(CENTER); stroke(0); rect(posx, posy-20, thesize, thesize / 14); int offset = 20; drawWheel(posx - offset, posy - offset+30, offset); drawWheel(posx + offset, posy - offset+30, offset); } // Draw a wheel at (posx, posy) and use offset to // determine its size. void drawWheel (int posx, int posy, int offset) { noStroke(); fill(0); ellipse (posx, posy,offset, offset); } 这个代码错在哪
时间: 2023-11-17 13:06:03 浏览: 51
c语言实现简单贪吃蛇游戏
这段代码没有明显的语法错误,但是存在一些潜在的逻辑问题:
1. 在`draw()`函数中,循环变量`i` 的初始值为1000,而每次循环都会将`i`减去50,当`i`减至小于650时,循环结束。这意味着循环实际上只会执行7次。因此,在绘制圆形的过程中,只会绘制7个圆形,而不是期望的20个。
2. 在`draw()`函数中,调用了`drawCar()`函数来绘制汽车,但是每次调用时都会将`x`的值增加1。这意味着汽车会一直向右移动,直到超出屏幕范围。如果想让汽车来回移动,可以使用一个额外的变量来控制移动方向。
3. 在`drawCar()`函数中,绘制轮子的代码使用了`noStroke()`函数来去除边框线条。但是这也会影响到后续的绘制操作。如果想让汽车主体和轮子有不同的线条样式,可以在绘制轮子之前先调用`stroke()`函数来设置线条样式。
阅读全文