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 |