0
我想讓熊貓(用戶通過左右箭頭鍵移動)與從屏幕左上角落下的糖果圖像碰撞。當兩張圖像相撞時,屏幕和控制檯會顯示「您接觸到了糖果」。但是當熊貓和糖果碰觸時,沒有任何反應。處理 - 如何使2個運動圖像碰撞?
下面是代碼:
PImage candy, panda;
int pandaX = 800;
int pandaY = 790;
int candySpeed = 20;
int yDirCandy = 1;
int yPosCandy = 10;
int xPosCandy = 20;
void setup() {
candy = loadImage("goodCandy1.png");
panda = loadImage("panda.png");
}
void loadStuff() {
image(panda, pandaX, pandaY, 80, 112);
text("Lives: " + lives, 1400, 70);
image(candy, xPosCandy, yPosCandy, 187, 121);
yPosCandy = yPosCandy + (candySpeed * yDirCandy);
touchCandy(pandaX, pandaY, yPosCandy, xPosCandy);
}
void keyPressed() {
if (key==CODED) {
if (keyCode==LEFT) {
pandaX = pandaX-20;
}
if (keyCode==RIGHT) {
pandaX = pandaX+20;
}
if (pandaX<=10) {
pandaX=10;
lives = lives -1;
}
if (pandaX>=1500) {
pandaX=1500;
}
}
}
void touchCandy(int xPosCandy, int yPosCandy, int pandaX, int pandaY) {
if (pandaX==xPosCandy && pandaY==yPosCandy) {
text("YOU TOUCHED THE CANDY!", width/2, height/2);
print("YOU TOUCHED THE CANDY!");
}
}
我試着做if (pandaX==xPosCandy && pandaY==yPosCandy)
但沒有奏效。我也嘗試過if (pandaX>xPosCandy && pandaY<yPosCandy)
,但它說你很快就接觸了糖果。
任何幫助將不勝感激,讓我知道如果你需要更多的代碼。謝謝!
謝謝,我試着測試它們是否像你所建議的那樣重疊。我還爲高度和寬度創建了變量,以便更容易理解。這是我做過什麼 如果(candyX + candyW> pandaX && candyX潘迪&& candyY <潘迪+潘達){ 文本( 「您觸摸糖果!」,寬度/ 2 ,身高/ 2);我不確定如果我的數學計算頂部和底部是錯誤的,但它仍然不起作用。有什麼建議麼? –
Brianna
我真的回去了我的代碼,發現當我調用touchCandy()方法時,它並沒有按照正確的順序調用參數。它現在可以工作,非常感謝您的幫助! – Brianna