求助:实现方块左右往返移动并切换颜色的代码问题
方块往返移动并切换方向变色实现方案
以下是完整的可运行Processing代码,实现方块从左边缘出发、Y轴位置固定,左右往返移动且每次切换方向时改变颜色的功能:
color blau = #2E3BFF; // 蓝色 color vermell = #FF2E2E; // 红色 float position_X; // X轴位置变量 float speed = 3.0; // 移动速度 color currentColor; // 当前方块颜色 int direction = 1; // 移动方向:1向右,-1向左 void setup() { size(600, 400); // 设置画布大小 position_X = 0; // 初始位置从左边缘开始 currentColor = blau; // 初始颜色设为蓝色 } void draw() { background(255); // 清空画布 // 更新X轴位置 position_X += speed * direction; // 检测边界并切换方向、颜色 if (position_X >= width - 50) { // 方块宽度设为50,碰到右边界触发切换 direction = -1; currentColor = vermell; } else if (position_X <= 0) { // 碰到左边界触发切换 direction = 1; currentColor = blau; } // 绘制方块:Y轴固定在画布垂直中心,宽度50、高度50 fill(currentColor); rect(position_X, height/2 - 25, 50, 50); }
关键逻辑说明:
- 方向控制:用
direction变量(1/-1)控制移动方向,与速度相乘后更新X轴位置 - 边界检测:判断方块是否触达左右边缘(减去方块自身宽度,避免方块部分移出画布才触发切换)
- 颜色切换:每次切换方向时直接为
currentColor赋值新颜色,绘制时使用该颜色填充方块
内容的提问来源于stack exchange,提问作者atzru090
相关产品推荐
相关产品推荐

