努力理解为什么我的程序不旋转我的图像两次

Struggling to understand why my program doesnt rotate my image twice

这个程序基本上需要改变图像的方向,以便它在改变方向时面向正确的方向下面的代码在图像到达 window 的边界时旋转图像,如果我改变刚转完方向,为什么不转了?

图片如下:http://imgur.com/a/pQ85Z

PImage head;
int fizzyX = 400;
int fizzyY = 50;
int movementX=0;
int movementY=0;
float x;
char direction = 'd';

void setup() {
  size(800, 800);
  background(255);
  head = loadImage("Fizzy.PNG");
}

void collisionDetection() {
  if (fizzyX == (750)) {

    movementX=-1;
    key = 'a';
    x = PI/2;
  }
  if (fizzyX == (50)) {
    movementX=1;
    key = 'd';
  }
  if (fizzyY == 750) {
    movementY=-1;
    key = 'd';
  }
  if (fizzyY < 50) {
    movementY=1;
    key = 's';
  }
}



void keyPressed() {
  if (key == 'a' || key == 'A') {
    movementX = -1;
    movementY = 0;
    direction = 'l';
  }
  if (key == 'd' || key == 'D') {
    movementX = 1;
    movementY = 0;
    direction = 'r';
  }
  if (key == 'w' || key == 'W') {
    movementX = 0;
    movementY = -1;
    direction = 'u';
  }
  if (key == 's' || key == 'S') {
    movementX = 0;
    movementY = 1;
    direction = 'd';
  }
}

void rotateFizzy() {
  if (direction == 'd' && fizzyY == 750) {
    x=PI;
  }
  if (direction == 'u' && fizzyY == 50) {
    x=2*PI;
  }
}




void draw() {
  background(255);

  rotateFizzy();
  imageMode(CENTER);
  translate(fizzyX, fizzyY);
  rotate(x);

  image(head, 0, 0);


  fizzyX+=movementX;
  fizzyY+=movementY;
  collisionDetection();
}

抱歉复制粘贴代码

查看您发布的其他代码,您必须使用 pushMatrix() 和 popMatrix()。 我发布了 2 个答案,第二个对您的代码提出了很多建议和改进