목록게임제작 (44)
SYeonni Study Room

몬스터 이동 시 왼쪽부터 이동하도록 Speed에 - 부호를 붙여 구현하였다. 그래서 오른쪽으로 갈때는 -로 곱해줬어야 했지만 그냥 정수 1을 곱하였다. 디버깅 미숙으로 중단점도 잘못걸어서 문제의 부분을 찾는데 시간이 좀 걸렸다. 이걸로 몇시간을 소비했다.. 진짜 다시보고 다시봐도 못찾았다 집중을 못한것도 있지만 이렇게 사소한것을 놓쳤다. 앞으로 잘해야지... 생각해야지 진짜 어이없지만 한편으론 좀 ㅂㅌ같은 발언일수있는데 코드가좋아진다...ㅎ 코드는 거짓말하지않고 내가한그대로 나온다 아 점점 좋아지는듯 하지만 어느순간 또 싫다하겠지만 ㅋㅋ 그리고 오늘 또 느낀것이 내 코드는 내가 직접짜고 도움받아도 내것으로 만들어야겠다. 아 맞겠지라는 생각으로 그냥 흘린거같다.. 정말 코딩은 배울수록 신기하다. 그냥 신기..
아무것도 클릭하지 않은 상태에서 사용자가 처음 클릭 시 왼쪽 점으로 정의되고, 처음 클릭 후 한번 더 화면 클릭 시 오른쪽점으로 정의된다. 눌려졌는지 아닌지, 눌려졌다면 처음인지, 두번째인지 확인을 위해 bool변수 생성 후 조건문을 실행하게 했다. 여기서 문제가 if - if/ if-else if 사용법 미숙으로 에러가 발생했다. if-if로 코드를 구현하니까 첫 if문을 걸린 후 다음 if문에도 걸려서 점선으로 출력되었다. 이를 해결하기 위해서 if-else if로 수정 후 여러 선택문에서 1개의 if문만 탈 수 있도록 하였다. https://youtu.be/0mZAmCvTZZM

define을 include.h에 다 포함시키고 건드린게없는데 자꾸 define을 인식할수 없다고 오류가 뜬다. 그래서 처음부터 다시 작성해볼려했다... 하지만 적어온게 아까워서 다시 확인하다가 cpp파일 #include 할때 define.h를 먼저 작성한게 아니라 현재cpp파일의 헤더를 작성해서 순서가 바뀌어서 인식을 못했던것이였다. 그래서 다시 define.h가 포함된 .h를 위로 올려 순서를 바꾸었다. 그 결과 >> 잘 실행된다. 이렇게 다시한번 순서의 중요성을 깨닳고 문제가있으면 그냥 다시 쳐야지보다 오늘처럼 문제가 왜 발생됐는다시 확인하는 방법을 먼저 추구해야겠다.
윈도우 API로 포토폴리오를 만든다. 게임을 모작해서 만드는 방법이다. 1. 게임정하기 >> 원래 원더보이를 하려했으나 게임을 정하면서 계속해서 알아보니 닌자키드가 좀더 볼거리가많은듯해서 게임 변경.. >> NinjaKid2 로 최종확정! 2. 게임기능 익히기 >> 게임다운 완료 >> 시간날때마다 게임 플레이진행 3. 게임 제작 >> 이미지 모으기중 >> 06.14 이미지 모으기 완료! 크게 3가지로 나뉘었다. 21.05.30 기준 1번 게임정하기는 끝났다. 2번 게임 기능 익히기는 틈틈이 해놓기 ! 필요한 기능들 미리 체크해두기

1. 잘못된 코드 2. 1번에 의한 에러 3. 동기 코멘트 정리 : 1. 위 코드처럼 작성한 이유 > 플레이어정보를 메인이 가져있으니 메인에서 플레이어 정보를 가져와서 c를 사용하는 방법을 구현하기 위해서 2. 문제점 > 메인에서 플레이어 정보를 잘못 가져왔다. bullet에 setplayer를 구현해놓고 bullet에 정보를 던져야하는데 정작maingame에서 bullet에 정보를 안던지고 cplayer에 있지않는 setplayer함수에 던져부렸다... > 그리고 위 사진에는 안나왔지만 w/s/a/d키 값은 0x57 등 맞게썼는데 int형으로 바뀌면 87이렇게 되는데 그것을 인지못하고 그냥 57을 넣는것도 문제였음 > 그리고 아래와 같이 코딩함... Player.cpp update()함수에서 이렇게 코..

API를 이용하여 위/아래/좌우로 움직이면서 총쏘는것을 구현하였다... 여러가지 방법을 생각했다. 1. 메인에서 사용자의 정보를 가지고 오자. - 사용자에서 키를 눌렀을때 정보를 총알에 던지면된다! 총알에서 어디로 나갈지 정하니까 - 그래서 메인에서 사용자 주소를 총알에 던지고..총알에서 받고 그 받은것을 또 static_cast를 이용하여 받아보고... - 그리고 사용자에서 키값을 입력받는곳에서 두번 좌표를 설정하게 해부려서 괴물이 탄생됐다... 2. 총알 동적할당을 두번하자. - 이것은 내가 생각하면서도 참 말이안되는 메모리 낭비라 생각했다... 그래서 생각하자마자 접긴했지만... - 이론적으로 생각해도 동적할당을 한것은 좋지만 또 그 주소를 어떻게 할건데!! - 여튼 이런저런 생각으로 접음... 3..
객체를 switch 문을 통해서 위, 아래, 좌우로 움직이게 구현 int _iSpeed = 5; case WM_KEYDOWN: switch (wParam) { case VK_ESCAPE: DestroyWindow(hWnd); break; case VK_LEFT: rc.left -= _iSpeed; rc.right -= _iSpeed; break; case VK_RIGHT: rc.left += _iSpeed; rc.right += _iSpeed; break; case VK_UP: rc.top -= _iSpeed; rc.bottom -= _iSpeed; break; case VK_DOWN: rc.top += _iSpeed; rc.bottom += _iSpeed; break; } break; https://y..

> 사각형 그리기 Rectangle() > 타원 그리기 Ellipse() 위 2개의 함수를 사용해서 사각형, 원을 출력하여 도라에몽을 만들어 봤다. 구현방식 1. 사이즈 정보를 담기 위한 구조체 만들기 #pragma once #ifndef __STRUCT_H__ #define __STRUCT_H__ typedef struct tagInfo { floatfX; floatfY; intiCX; intiCY; }INFO; #endif // !__STRUCT_H__ 2. 구조체 값 초기화 void CPlayer::Initialize() { m_tInfo.fX = _fx; m_tInfo.fY = _fy; m_tInfo.iCX = _icx; m_tInfo.iCY = _icy; m_fSpeed = _fSpeed; } ..