半拉苹果 半拉苹果
关注数: 64 粉丝数: 74 发帖数: 4,482 关注贴吧数: 6
为什么我的这段程序 返回值始终是false呢 public void runEnemyTank(){ int t=(int)(Math.random()*30); switch(this.getDirection()){ case 0: for(int i=0;i<t;i++){ if(!judgeOverlapped()){ if(this.getY()-this.getSpeed()>0) this.setY(this.getY()-this.getSpeed()); else this.setY(0); } try{ Thread.sleep(50); }catch(Exception e){} } break; case 1: for(int i=0;i<t;i++){ if(!judgeOverlapped()){ if(this.getX()-this.getSpeed()>0) this.setX(this.getX()-this.getSpeed()); else this.setX(0); } try{ Thread.sleep(50); }catch(Exception e){} } break; case 2: for(int i=0;i<t;i++){ if(!judgeOverlapped()){ if(this.getY()+this.getSpeed()<327) this.setY(this.getY()+this.getSpeed()); else this.setY(327); } try{ Thread.sleep(50); }catch(Exception e){} } break; case 3: for(int i=0;i<t;i++){ if(!judgeOverlapped()){ if(this.getX()+this.getSpeed()<607) this.setX(this.getX()+this.getSpeed()); else this.setX(607); } try{ Thread.sleep(50); }catch(Exception e){} } break; } } public boolean judgeOverlapped(){ switch(this.getDirection()){ case 0: for(int i=0;i<Tank.enemyTank.size();i++){ EnemyTank et=Tank.enemyTank.get(i); if(et!=this && et.getLife()>0){ return judgeOverlappedUp(this,et); } } break; case 1: for(int i=0;i<Tank.enemyTank.size();i++){ EnemyTank et=Tank.enemyTank.get(i); if(et!=this && et.getLife()>0){ return judgeOverlappedLeft(this,et); } } break; case 2: for(int i=0;i<Tank.enemyTank.size();i++){ EnemyTank et=Tank.enemyTank.get(i); if(et!=this && et.getLife()>0){ return judgeOverlappedDown(this,et); } } break; case 3: for(int i=0;i<Tank.enemyTank.size();i++){ EnemyTank et=Tank.enemyTank.get(i); if(et!=this && et.getLife()>0){ return judgeOverlappedRight(this,et); } } break; } return false; } public boolean judgeOverlappedUp(Tank a,Tank b){ //自己向上走 w=20 h=33 if(b.getDirection()==0){//上 b.w=20 b.h=33 if(a.getX()>=b.getX() && a.getX()<=b.getX()+20 && a.getY()-a.getSpeed()>=b.getY() && a.getY()-a.getSpeed()<=b.getY()+33) return true; if(a.getX()+20>=b.getY() && a.getX()+20<=b.getX()+20 && a.getY()-a.getSpeed()>=b.getY() && a.getY()-a.getSpeed()<=b.getY()+33) return true; } if(b.getDirection()==1){//左 b.w=33 b.h=20 if(a.getX()>=b.getX() && a.getX()<=b.getX()+33 && a.getY()-a.getSpeed()>=b.getY() && a.getY()-a.getSpeed()<=b.getY()+20) return true; if(a.getX()+20>=b.getX()-b.getSpeed() && a.getX()+20<=b.getX()+33 && a.getY()-a.getSpeed()>b.getY() && a.getY()-a.getSpeed()<=b.getY()+20) return true; } if(b.getDirection()==2){//下b.w=20 b.h=33 if(a.getX()>=b.getX() && a.getX()<=b.getX()+20 && a.getY()-a.getSpeed()>=b.getY() && a.getY()-a.getSpeed()<=b.getY()+33+b.getSpeed()) return true; if(a.getX()+20>=b.getY() && a.getX()+20<=b.getX()+20 && a.getY()-a.getSpeed()>=b.getY() && a.getY()-a.getSpeed()<=b.getY()+33+b.getSpeed()) return true; } if(b.getDirection()==3){//右 b.w=33 b.h=20 if(a.getX()>=b.getX() && a.getX()<=b.getX()+33+b.getSpeed() && a.getY()-a.getSpeed()>=b.getY() && a.getY()-a.getSpeed()<=b.getY()+20) return true; if(a.getX()+20>=b.getX() && a.getX()+20<=b.getX()+33 && a.getY()-a.getSpeed()>b.getY() && a.getY()-a.getSpeed()<=b.getY()+20) return true; } return false; } public boolean judgeOverlappedLeft(Tank a,Tank b){ //自己向左走 w=33 h=20 if(b.getDirection()==0){//上b.w=20 b.h=33 if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+20 && a.getY()>=b.getY() && a.getY()<b.getY()+33) return true; if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+20 && a.getY()+20>=b.getY()-b.getSpeed() && a.getY()+20<=b.getY()+33) return true; } if(b.getDirection()==1){//左 b.w=33 b.h=20 if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+33 && a.getY()>=b.getY() && a.getY()<b.getY()+20) return true; if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+33 && a.getY()+20>=b.getY() && a.getY()+20<=b.getY()+20) return true; } if(b.getDirection()==2){//下b.w=20 b.h=33 if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+20 && a.getY()>=b.getY() && a.getY()<b.getY()+33+b.getSpeed()) return true; if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+20 && a.getY()+20>=b.getY() && a.getY()+20<=b.getY()+33) return true; } if(b.getDirection()==3){//右 b.w=33 b.h=20 if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+33+b.getSpeed() && a.getY()>=b.getY() && a.getY()<b.getY()+20) return true; if(a.getX()-a.getSpeed()>=b.getX() && a.getX()-a.getSpeed()<=b.getX()+33+b.getSpeed() && a.getY()+20>=b.getY() && a.getY()+20<=b.getY()+20) return true; } return false; } public boolean judgeOverlappedDown(Tank a,Tank b){ //自己向下走 w=20 h=33 if(b.getDirection()==0){//上b.w=20 b.h=33 if(a.getX()>=b.getX() && a.getX()<b.getX()+20 && a.getY()+33+a.getSpeed()>=b.getY()-b.getSpeed() && a.getY()+33+a.getSpeed()<=b.getY()+33) return true; if(a.getX()+20>=b.getX() && a.getX()+20<b.getX()+20 && a.getY()+33+a.getSpeed()>=b.getY()-b.getSpeed() && a.getY()+33+a.getSpeed()<=b.getY()+33) return true; } if(b.getDirection()==1){//左 b.w=33 b.h=20 if(a.getX()>=b.getX() && a.getX()<=b.getX()+33 && a.getY()+33+a.getSpeed()>=b.getY() && a.getY()+33+a.getSpeed()<=b.getY()+20) return true; if(a.getX()+20>=b.getX()-b.getSpeed() && a.getX()+20<=b.getX()+33 && a.getY()+33+a.getSpeed()>=b.getY() && a.getY()+33+a.getSpeed()<=b.getY()+20) return true; } if(b.getDirection()==2){//下b.w=20 b.h=33 if(a.getX()>=b.getX() && a.getX()<=b.getX()+20 && a.getY()+33+a.getSpeed()>=b.getY() && a.getY()+33+a.getSpeed()<=b.getY()+33) return true; if(a.getX()+20>=b.getX() && a.getX()+20<=b.getX()+20 && a.getY()+33+a.getSpeed()>=b.getY() && a.getY()+33+a.getSpeed()<=b.getY()+33) return true; } if(b.getDirection()==3){//右 b.w=33 b.h=20 if(a.getX()>=b.getX() && a.getX()<=b.getX()+33+b.getSpeed() && a.getY()+33+a.getSpeed()>=b.getY() && a.getY()+33+a.getSpeed()<=b.getY()+20) return true; if(a.getX()+20>=b.getX() && a.getX()+20<=b.getX()+33 && a.getY()+33+a.getSpeed()>=b.getY() && a.getY()+33+a.getSpeed()<=b.getY()+20) return true; } return false; } public boolean judgeOverlappedRight(Tank a,Tank b){ //自己向右走 w=33 h=20 if(b.getDirection()==0){//上b.w=20 b.h=33 if(a.getX()+33+a.getSpeed()>=b.getX() && a.getX()+33+a.getSpeed()<=b.getX()+20 && a.getY()>=b.getY() && a.getY()<=b.getY()+33) return true; if(a.getX()+33+a.getSpeed()>=b.getX() && a.getX()+33+a.getSpeed()<=b.getX()+20 && a.getY()+20>=b.getY()-b.getSpeed() && a.getY()+20<=b.getY()+33) return true; } if(b.getDirection()==1){//左 b.w=33 b.h=20 if(a.getX()+33+a.getSpeed()>=b.getX()-b.getSpeed() && a.getX()+33+a.getSpeed()<=b.getX()+33 && a.getY()>=b.getY() && a.getY()<=b.getY()+20) return true; if(a.getX()+33+a.getSpeed()>=b.getX()-b.getSpeed() && a.getX()+33+a.getSpeed()<=b.getX()+33 && a.getY()+20>=b.getY() && a.getY()+20<=b.getY()+20) return true; } if(b.getDirection()==2){//下b.w=20 b.h=33 if(a.getX()+33+a.getSpeed()>=b.getX() && a.getX()+33+a.getSpeed()<=b.getX()+20 && a.getY()>=b.getY() && a.getY()<=b.getY()+33+b.getSpeed()) return true; if(a.getX()+33+a.getSpeed()>=b.getX() && a.getX()+33+a.getSpeed()<=b.getX()+20 && a.getY()+20>=b.getY() && a.getY()+20<=b.getY()+33) return true; } if(b.getDirection()==3){//右 b.w=33 b.h=20 if(a.getX()+33+a.getSpeed()>=b.getX() && a.getX()+33+a.getSpeed()<=b.getX()+33 && a.getY()>=b.getY() && a.getY()<=b.getY()+20) return true; if(a.getX()+33+a.getSpeed()>=b.getX() && a.getX()+33+a.getSpeed()<=b.getX()+33 && a.getY()+20>=b.getY() && a.getY()+20<=b.getY()+20) return true; } return false; }
1 下一页