bool GameEntity::HitTest(GameEntity & ge) { if(shapeType==S_Circle) { if(ge.GetShape()==S_Circle) { return HitTestCircles(GetCircle(),ge.GetCircle()); } else if(ge.GetShape()==S_Box) { //这个暂时没做 return false; } else if(ge.GetShape()==S_Beam) { return HitTestBeamCircle(ge.GetBeam(),circle); } } else if(shapeType==S_Box) { if(ge.GetShape()==S_Circle) { //这个暂时没做 circle box return false; } else if(ge.GetShape()==S_Box) { //这个暂时没做 box box return false; } else if(ge.GetShape()==S_Beam) { return HitTestBeamBox(ge.GetBeam(),box); } } else if(shapeType==S_Beam) { if(ge.GetShape()==S_Circle) { //beam circle return HitTestBeamCircle(beam,ge.GetCircle()); } else if(ge.GetShape()==S_Box) { return HitTestBeamBox(beam,ge.GetBox()); } else if(ge.GetShape()==S_Beam) { //这个暂时没做 beam beam return false; } } return false; }