我嘗試旋轉圖像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'上。那有意義嗎? –