반응형

Core : 매니저 클래스들 초기화, 게임 실행 준비, 소멸시, 매니저 클래스들 자원 해제

MapManager : Stage들을 초기화, Stage 선택

Stage : FileStream 객체를 사용하여, Stage 파일 읽기, 맵 로딩

FileStream : 파일 한줄씩 읽기 및 쓰기

ObjectManager : 플레이어 생성, 생성된 플레이어 인스턴스 가져오기

Player : 코인점수 관리, 플레이어 떨어졌는지, 허공에 있는지 여부 확인, 왼쪽, 오른쪽에 벽이 있는지 확인

 

지금, Stage 객체와 MapManager 객체에 맞지 않은 기능들(GameWin, GameOver)이 있다 
GameWin, GameOver 를 관리해주는 다른 매니저 클래스가 필요할 것 같다

 

 

 

 

StateManager : GameOver, PlayerWin 상태 관리 

반응형

'develop-note > MarioGame' 카테고리의 다른 글

MarioGame 최근 업데이트 2020_03_07  (0) 2020.03.07
MarioGame 스크롤 버그  (0) 2020.03.05
반응형

const

  • Lvalue로 올 수 없는 변수(상수), 주소 또는 역참조값이 Lvalue로 올 수 없는 포인터 변수등 선언할 쓰임
  • 포인터 변수를 선언할때, 자료형 앞 또는 포인터 변수 이름 앞 또는 두위치 모두 "const" keyword 를 붙이면, 각각의 위치에 따라서, 값또는 주소 혹은 둘다, Lvalue로 올 수 없음, 대입 연산자 왼쪽에 올 수 없음
  • 이때 주의해야 될것은, 어떤 특정 변수를 대상으로 하는게 아니라, 자료형, 자료형* 포인터  를 대상으로 하는 것이다, 즉 const int a 가 있다면, int a를 const 로 만든게 아니라, a 가 const int 타입이며, 다른 const 자료형 처럼 Lvalue로 올 수 없는 것이지 값을 수정할 수 없는게 아니다.
  • constexpr과는 다르게, 값이 컴파일타임 뿐만 아니라 런타임에도 값이 정해질 있음, 둘다 허용
    • 선언과 동시 초기화를 하면 컴파일타임(Compile-time)

 

  • 선언  런타임에 초기화를 하면 런타임(Run-time)

 

 

 

const 자료형 변수식별자 = 초기화값;

값   수정   불가능

 

 

const 자료형& 레퍼런스식별자 = 변수;

레퍼런스   변수   역시   동일 ,  값을   수정할   수   없음

 

 

 

 

포인터 변수에 붙일 경우

1. const 자료형 *포인터식별자 = &변수;

자료형 앞에 붙는 경우 역참조값 수정 불가능

 

2. 자료형 * const 포인터식별자 = &변수;

포인터 변수 식별자(이름) 앞에 붙는 경우,역참조값 수정가능, 가리키는 주소 수정 불가능

 

 

 

3. const 자료형 * const 포인터 식별자 = &변수

자료형앞 ,  포인터 변수 식별자(이름)앞, 역참조값, 가리키는 주소,  둘 다 수정 불가능

 

또한 멤버 함수 뒤에 const 붙일경우, 해당 함수는 멤버 변수를 수정할 없다

반응형
반응형

Local Variable(지역변수)

  • 함수 안에서만 사용, 함수에서 선언되고 초기화되며 삭제됨
  • 다른 파일에서 참조할 일이 없으므로, Linkage 필요 없음
  • Stack Segment 에 저장됨

 

Global Variable(전역 변수)

  • 프로젝트 전체에서 사용, 프로그램이 종료 될때까지 존재함
  • 가급적이면 사용을 권장하지 않음
  • Data Segment에 저장됨
  • 장점 : 간단한 코드를 작성할때는 유용함
  • 단점 : 여러곳에서 초기화 있기때문에, 이도 저도 못하는 상황이 있음, 디버깅이 어려워짐

 

주의

  • 변수 선언과 정의를 따로 분리 하지 않고, 헤더파일에 선언과 동시 초기화를 하게 되면 문제가 발생함, 하나의 전역 변수(constexpr, 상수) 여러 .c 파일에서 사용할 경우, .c 파일 개수 만큼 각기 다른 메모리주소를 갖고있는 전역변수가 생김

 

ex1)static const int 전역 변수를 선언한뒤, 각기 다른 .c 파일에서 참조하도록함

 

3개의 함수에서 같은 이름의 전역변수 주소를 확인 했을때 각각 다른 주소를 보임,

 

 

올바른 방식의 전역변수 선언 정의

헤더파일에 선언만 하고, .c 파일에 선언및 정의를 넣어주면 된다

 

결과

 

Static Local Variable(정적 지역 변수)

  • 선언된 함수에서만 사용, 외부에서 접근 불가능
  • 오직 하나만 존재하는 변수
  • 선언과 동시에 반드시 초기화가 이뤄져야함 그리고 한번만 하게됨
  • 함수내에 static 변수를 선언과 동시 초기화를 하면, 나중에 다시 함수를 호출했을때, 초기화를 반복 하지 않음
  • Data Segment에 저장됨

 

 

Static Global Variable(정적 전역 변수)

  • 파일( *.c )안에서만 사용, 파일 외부에서 접근 불가능
  • 반드시 헤더 파일이 아닌, .c파일에서 선언및 초기화를 해야함
  • 오직 하나만 존재하는 변수
  • Data Segment에 저장됨

 

 

 

반응형

'C' 카테고리의 다른 글

memset, memcpy, memmove  (0) 2020.03.13
expression(표현식)  (0) 2020.03.12
fseek, ftell, 파일 크기 알아내기  (0) 2020.02.25
FileStream Input Output  (0) 2020.02.22

+ Recent posts