case 내부의 함수화

: 코드가 늘어나는 것을 우려하지 말 것

: 다른 사람에게 이게 어떤 상황인지를 알려주는 것을 우선적으로 삼을 것

// :: 플레이어 클래스
class Player {
	...생략
    void update(float deltaTime) {
    	switch(state) {
  		case STATE_RUN: // :: 걷기 상태
        	if(input.isLeft())
            	velocity.x = -RUNNING_SPEED;
        	if(input.isRight())
            	velocity.x = RUNNING_SPEED;
            velocity.y = 0.0f;
            if(input.isJump()) {
            	velocity.y = -JUMP_SPEED;
                state = STATE_JUMP;
            }
            position += velocity * deltaTime;
            break;
        case STATE_JUMP: // :: 점프 상태
        	position += velocity * deltaTime;
            velocity.y += GRAVITY * deltaTime;
            if(isLanding())
            	state = STATE_RUN;
            break;
        case STATE_DAMGE: // :: 데미지 상태
        	...생략
            break;
        }
    }
};

=>

void update(float deltaTime) {
	switch(state) {
    case STATE_RUN: run(deltaTime); break;
    case STATE_JUMP: jump(deltaTime); break;
    case STATE_DAMAGE: damage(deltaTime); break;
    }
}

 

'Programming' 카테고리의 다른 글

[용어] 얕은 복사, 깊은 복사  (0) 2022.03.12
[Code] 1개의 함수는 1개의 역할  (0) 2021.02.13
[Code] 검색 반복문 분리  (0) 2021.02.13
[Code] if가 필요없는 가위바위보  (0) 2021.02.11
[Code] 조기 리턴 활용  (0) 2021.02.10
블로그 이미지

RIsN

,