我怎样才能让旋转图像在 p5.js 中交替出现?

How could I make a rotating image alternate in p5.js?

我正在尝试使用 mouseX 和 mouseY 使旋转图像移动并与键盘命令交互:按下向左或向右箭头键时,图像应相互交替;向上箭头增加旋转速度,而向下箭头应该降低旋转速度。

根据响应应用了一些编辑,但是当我 运行 代码时没有任何显示。

修改后的代码如下:

var angle = 0.0;
var angleSpeed = 0.0;
var imageSwitcher = 0;
var images = [];
var img1;
var img2;
var img3;

function preload() {
  images[0] = loadImage(image1);
  images[1] = loadImage(image2);
  images[2] = loadImage(image3);

function setup() {  
  createCanvas(900, 500);  
  background(100);
}

function draw() {  
  translate(mouseX, mouseY);  
  rotate(angle);  
  images(imageSwitcher % 2,-15, -15, 30, 30); 
  angle += angleSpeed;
}
  
function keyPressed() {
  if (keyCode == LEFT_ARROW) {
    images = img1;
  }
  else if (keyCode == RIGHT_ARROW) {
    images = img2;
  }
  else if (keyCode == LEFT_ARROW) {
    images = img3; 
  }
  else if (keyCode == UP_ARROW) {
    angleSpeed += 1.0;
  }
  else if (keyCode == DOWN_ARROW) {
    angleSpeed -= 1.0;
    }
  }  
}

我发现了一些问题。 第一个与转速控制有关。 您想添加一个变量来控制角度变量的增量。
创建一个变量,假设为 angleSpeed。 变角= 0.0; var 角度速度 = 0.0; ... 在绘图功能中,更改线 角度 += 0.1; 到 角度 += 角度速度;

这允许您在 keyPressed( ) 中控制旋转;

如果键码向上 角度速度 += 1.0; 如果键码向下 角度速度 -= 1.0;

切换图像会稍微复杂一些。我会考虑创建一系列图像, var 图像 = [ ];

然后通过向右或向左按键循环遍历数组。 变种图像= [] 变种图像切换器= 0 然后在预加载 图像[0] = loadImage(图像1); 图像 [1] = 加载图像 (图像 2); images[2] = loadImage (image3);

In draw 
    image(images[imageSwitcher % 3], x,y,...);

键码向右箭头 图片切换器++; 对于键码左箭头 图片切换器--

var angle = 0.0;
var angleSpeed = 0.0;
var images = [];
var imageSwitcher = 0;

function preload() {
  images[0] = loadImage("ToyStoryLogo.png");
  images[1] = loadImage("CarsLogo.png");
  images[2] = loadImage("Incredibles.png");
}

function setup() {
  createCanvas(900, 500);
  background(204);
}

function draw() {
  background(204);
  translate(mouseX, mouseY);
  rotate(angle);
  image(images[abs(imageSwitcher) % 3], -15, -15, 30, 30);
  angle += angleSpeed;
}

function keyPressed() {
  if (keyCode == LEFT_ARROW) {
    imageSwitcher--;
  } else if (keyCode == RIGHT_ARROW) {
    imageSwitcher++;
  } else if (keyCode == UP_ARROW) {
    angleSpeed += 0.1;
  } else if (keyCode == DOWN_ARROW) {
    angleSpeed -= 0.1;
  }
}