전체 글

QA Engineer Coding Blog!! QA이지만 자동화와 개발에 관심이 많고 업무에 접목하고 싶어하는 평범한 QA 입니다.
[C++ - WIN API 게임] 플래피 버드 뭔가 상당히 어색하다.. 당시에는 아주 랜덤한 거리와 아주 랜덤한 위치가 좋겠다고 해서 만들었는데괴랄하기까지 하다.. (WIN API는 용량의 문제로 동영상만...)
[C - 콘솔 게임] RPG 게임 [나름...무기도 선택 가능하고 그에 따른 스탯도 주어진다..] [메인 화면...이동키는 역시 넘버패드..(왜 이렇게 해놨을까...)] [인벤토리도 구현~~] [전투씬...나름 열심히 아스키 코드로 변환해서 이미지도 넣고...체력게이지도 넣고...] 8월달 쯤 만든것 같다..나름 이벤트와 엔딩과 오프닝도 넣고 열심히 만들었던것 같다..하지만 코드는 안습...지금이라면 클래스나 STL 자료구조를 열심히 사용해 보겠지만..이때는 그런거 몰랐다..ㅠㅠ
[C - 콘솔 게임] 카드 게임 [하이 로우] 8월달에 만든 하이로우 카드 게임방향키를 넘버패드 4,6으로 해놓은 이유는 무엇일까..아무튼 잔버그가 많다..모두 고치기 보다는 이것도 역시 아련한 추억으로...
[C - 콘솔 게임] 카드 게임 7월달쯤에 만든 게임이다.일명 월남뽕이라고도 하던데...미완성에 버그도 많다..(문자열 입력을 막지 않음..)다시 고치기 보다는 아련한 추억으로 남기자
첫 작업 설정부터가 난관이었던 directx 11 을 이용한 3d 게임 프로그래밍 입문!누구나 하루 반나절 정도는 박스를 띄우다가 키보드를 한개 이상 부시며 그날 새벽에 잠이 들면 꿈에서도 네모 박스가 보인다는.. 그 만큼 난이도가 있다는 전설의 책!( 구글만 검색해도 나온다).. 진짜 부들부들하게 설정부터가 짜증났던 책이다! 책 자체에 해결책이 나와있는 부분이 아니고.. 버전이 다르다 보니...또 낯선 용어와 설정들...아무튼 우여곡절이 너무 많았다!인터넷에 나와있는 해결책중에 절반이상이 이상한 부분이었다..(따라했다가 프로잭트만 10번은 다시 만듬..) [ 네모다..ㅠㅠ...] 앞으로 더 많은 예제들을 수정해 가면서 해야할텐데...걱정이 크다 ㅠ
먼저, 일반적인 코드를 보겠습니다. AA라는 클래스를 동적할당하고 사용후에 해제를 해줍니다. 프로그래머가 동적으로 생성한 객체를 별도로 해제해주어야 하는데 C++ 에서는 new와 delete를 사용해서 일일이 입력해주어야 합니다. 물론 꼼꼼한 프로그래머라면 당연히 해제도 신경써야하지만, 만약에 신경을 쓰지 못하거나 애매한 상황이 와버리면 어떨까요? 아주 극단적인 코드를 작성해 보겠습니다. 비멤버함수인 Func에서 0~9까지의 난수를 생성해서 동적할당으로 생성된 test라는 클래스를 생성하고 그 값을 리턴하고 있습니다. 그럼 여기서 Func가 호출될때마다 생성되는 AA라는 객체를 어디서 해제해 줘야 할까요? return 이전에 넣자니 값을 돌려주기전에 객체가 메모리에서 제거된 후에 쓰레기값을 리턴하게 되고..
* 생성자 - 객체가 생성될때 호출되는 함수입니다.* 소멸자 - 객체가 소멸될때 호출되는 함수입니다. 동적할당의 경우 delete에서 소멸자가 호출되고, 일반적인 객체 생성에서는 자동으로 소멸자가 호출됩니다. 자 아래와 같은 객체가 있다고 했을때 생성자와 소멸자가 없는데도 불구하고 객체는 생성, 대입 , 복사가 됩니다. 그 이유는 컴파일러가 디폴트 생성자와 디폴트 소멸자를 자동으로 생성하기 때문입니다.즉 프로그래머가 만들지 않은 생성자와 호출자와 연산자를 컴파일러가 만들어주게 되는것 입니다. [ 3번째 코드는 위 코드와 결국 같다.] 어떻게 생각해보면 참 편리한것 같습니다만...대표적으로 디폴트 복사 생성자에는 문제가 발생됩니다. 그 이유는 아래에서 확인할 수 있는데요. [ 생성자는 순차적이나 소멸자는 ..
프로그래밍을 하다보면 디버깅이나 특정 변수의 값을 확인하고 싶을때가 있습니다.이때 중단점을 걸고 확인한다든지.. 윈도우 창에 따로 표시를 해주는데 여간 번거로운일이 아닙니다.이때 도스 콘솔시절에 cout이나 prinrf가 그리워지는데요.. 윈도우 API에서도 콘솔창을 띄워 줄 수 있습니다. #ifdef _DEBUG#pragma comment(linker,"/entry:WinMainCRTStartup /subsystem:console")#endif 조건부로 디버그 모드에서만 콘솔 창을 따로 열어줄 수 있습니다.(릴리즈에서도 보이면 안되니까요..;;) 짠! 창이 열렸습니다...(오른쪽은 연습으로 제작중인 게임입니다...)printf도 되고 cout도 되고..편하게 확인 할 수 있습니다.
QA Engineer  - P군
QA Engineer Coding Blog