공이 패드와 충돌했을 때 공의 방향을 바꿔주는 코드입니다.
public void check()
{
mPadTop = mPad.getTop();
mBallSpeedY = mBall.getSpeedY();
if(mBallBottom >= mPadTop && mBallBottom - mBallSpeedY <= mPadTop &&
mPad.getLeft() <= mBallRight && mPad.getRight() >= mBallLeft)
{
mBall.setSpeedY(-mBall.getSpeedY());
}
}
public void check()
{
if(mBall.getBottom() >= mPad.getTop() && mBall.getBottom() - mBall.getSpeedY() <= mPad.getTop() &&
mPad.getLeft() <= mBall.getRight() && mPad.getRight() >= mBall.getLeft())
{
mBall.setSpeedY(-mBall.getSpeedY());
}
}
위 두 코드의 차이점은 멤버 변수를 사용했느냐 안했느냐
그 차이밖에 없습니다. 나머진 다 똑같습니다.
윗 코드는 작동하고 아래 코드는 작동하지 않습니다.
윗 코드는 공이랑 패드랑 충돌하면 방향이 바뀌는데,
아랫 코드는 공이 패드를 통과해버립니다.
멤버 변수로 처리하나 메소드에서 리턴된 값을 바로 사용하나
솔직히 차이가 있는게 말이 되나요?
겪어본 건 물론이요, 들어본 적도 없고 본 적도 없는 현상입니다