我尝试旋转图像90度,但是当我做它熄灭屏幕(在窗口的左侧),这里是我的代码:当我旋转图像,指示灯熄灭屏幕
这里是一个链接我的图像:http://imgur.com/gallery/pQ85Z
现在我只是想让它旋转,当我按'R'但在此之后,我需要使它旋转时,它击中屏幕的边缘。
PImage head;
int fizzyX = 400;
int fizzyY = 50;
int movementX=0;
int movementY=0;
float x;
void setup() {
size(800,800);
background(255);
head = loadImage("Fizzy.PNG");
}
void collisionDetection() {
if (fizzyX == (750)) {
movementX=-1;
key = 'a';
}
}
void keyPressed() {
if (key == 'a' || key == 'A') {
movementX = -1;
movementY = 0;
}
if (key == 'd' || key == 'D') {
movementX = 1;
movementY = 0;
}
if (key == 'w' || key == 'W') {
movementX = 0;
movementY = -1;
}
if (key == 's' || key == 'S') {
movementX = 0;
movementY = 1;
}
if (key == 'r') {
x = PI/2;
}
}
void draw() {
rotate(x);
background(255);
imageMode(CENTER);
image(head,fizzyX,fizzyY);
fizzyX+=movementX;
fizzyY+=movementY;
keyPressed();
collisionDetection();
translate(width/2,height/2);
}
感谢这正是我需要的答案,但我不明白为什么自己的形象(头,0,0),而不是像(头,fizzyX,fizzyX)不应前者把图像在屏幕的左上角,而不是在fizzyX和Y的值? –
@TimothyBolton记住坐标是相对于**原点**。对translate()的调用将原点移动到fizzyX,fizzyY。那么如果我们在'100,100'处绘制一些东西,它实际上会处于'fizzyX + 100,fizzyY + 100',因为一切都是相对于原点的。这就是为什么你在'0,0'处绘制一些东西来放在'fizzyX,fizzyY'上。那有意义吗? –