2014-02-25 22 views
0

我的目標是在Door靠近時返回true(一個Door是Game Object的一個子類,而allObjectsInWorld是一個ArrayList,其中包含世界上所有的遊戲對象,包括這個門) 當我靠近門時,我會返回假。 得到的是如果對象是一個門使用Point2D中的距離來比較變量與數組

GameObject.position是的Point2D門點返回true

public boolean isDoorNear(GameObject user) { 
    boolean tempBoo = false; 
    for(int i = 0; i < allObjectsInWorld.size();i++) { 
     GameObject a = (GameObject) allObjectsInWorld.get(i); //checks to see if something is there 
     if(user.position.distance(a.position) <= 2.0 && a.isDoor) { 
      tempBoo = true; 
     } 
     else { 
      tempBoo = false; 
     } 
    } 
    return tempBoo; 
} 
+0

什麼課?遊戲對象?門? – StanislavL

回答

1

tempBoo = false是壞的:它的變化,即使之前檢測到某些門的返回值來true 。除非附近有門,否則只需要依靠初始化來提供默認回報false

但是你可以完全避免所有tempBoo東西早期返回:

public boolean isDoorNear(GameObject user) { 
    for(int i = 0; i < allObjectsInWorld.size();i++) { 
     GameObject a = (GameObject) allObjectsInWorld.get(i); 
     if(user.position.distance(a.position) <= 2.0 && a.isDoor) 
      return true; 
    } 
    return false; 
} 
+0

謝謝..那是我最初的樣子...一定有一個xtra大括號或者什麼的 – user3337754