반응형

윈도우 API 23

39. 스물두번째 수업과제 [포물선 미리보기 그리기]

경일게임아카데미 프로그래밍반 28기 22일차 수업과제 (2021. 05. 10) 오늘은 WIN32 API을 활용하여 포물선 미리보기 그리기를 제작해봅시다! 과제1 - 각도에 따라 변하는 포물선 미리보기를 제작해봅시다. 조건. 1. 참고 : https://lhh3520.tistory.com/41 [물리] 게임에서의 포물선 공식 기초 게임을 만들다 보면 포물선의 움직임을 사용해야 할 경우가 생기는데요. 포물선의 움직임은 대략 아래의 이미지 같이 움직입니다. 사진출저 [네이버] 이 부분에서 사용할 포물선의 공식은 공기 lhh3520.tistory.com

37. 스물한번째 수업과제 [각도로 총알 발사]

경일게임아카데미 프로그래밍반 28기 21일차 수업과제 (2021. 05. 07) 오늘은 WIN32 API을 활용하여 각도를 조절하여 총알을 발사해봅시다! 과제1 - 대포의 포선 각도를 자유자제로 조절하고 각도에 따라 미사일을 나오는 대포를 제작해보세요. 조건. 1. 화면 하단에 반원을 제작하세요. 2. 미사일을 발사할 선을 그리세요. 3. 선의 각도는 키보드를 통해 움직이게 하세요. 4. 스페이스바를 눌러 미사일을 발사하도록 하세요. 5. 이때 발사하는 미사일의 각도는 발사대의 각도와 동일하게 하세요. 6. 미사일이 맵 밖으로 나가면 그냥 사라지게 하세요. playGround.h 소스코드 #pragma once #include "gameNode.h" #define PI 3.14156f #define BU..

36. 스물한번째 수업 - 2

경일게임아카데미 프로그래밍반 28기 21일차 수업 (2021. 05. 07) 삼각함수(COS, SIN)와 입사각 반사각 저번시간까지 원과 원, 원과 사각형의 충돌을 알아보았습니다. 오늘은 COS, SIN에 대하여 배워봅시다. 오늘의 수업은 총 2개의 주제를 가지고 있습니다. 1. 원의 이동각도를 사인, 코사인을 이용하여 각도를 변경하여 방향을 바꾸는 것. 2. ①을 활용하여 대포를 제작하고 대포의 각도를 조절하여 쏘는 방향을 바꾸는 것. 2의 playGround.h #pragma once #include "gameNode.h" #define PI 3.14156f #define BULLETMAX 30 struct tagBullet { float x, y;//중점 좌표 float speed;//총알 속도 f..

35. 스물한번째 수업

경일게임아카데미 프로그래밍반 28기 21일차 수업 (2021. 05. 07) 삼각함수(COS, SIN)와 입사각 반사각 저번시간까지 원과 원, 원과 사각형의 충돌을 알아보았습니다. 오늘은 COS, SIN에 대하여 배워봅시다. 오늘의 수업은 총 2개의 주제를 가지고 있습니다. 1. 원의 이동각도를 사인, 코사인을 이용하여 각도를 변경하여 방향을 바꾸는 것. 2. ①을 활용하여 대포를 제작하고 대포의 각도를 조절하여 쏘는 방향을 바꾸는 것. 1의 playGround.h #pragma once #include "gameNode.h" #define PI 3.14156f struct tagObj { float x, y; float angle; float radius; float speed; }; class pla..

34. 스무번째 수업과제 [원과 사각형의 충돌]

경일게임아카데미 프로그래밍반 28기 20일차 수업과제 (2021. 05. 06) 오늘은 WIN32 API을 활용하여 원과 사각형의 충돌을 제작해봅시다! 과제2 - 원과 사각형의 충돌을 제작해보세요~! 조건. 1. 사각형 하나를 화면 중앙에 위치한다. 2. 사용자는 원을 만들지만 해당 원은 마우스로 움직이게 하세요. 3. 사각형과 원이 충돌하면 화면 중앙 사각형을 색칠시키세요. playGround.h 소스코드 #pragma once #include "gameNode.h" class playGround : public gameNode { private: // 초기화 /* 충돌 여부 */ bool _is_crash; /* 가운데 박스 */ RECT _center_box; /* 유저 원 */ RECT _user..

33. 스무번째 수업과제 [원과 원의 충돌]

경일게임아카데미 프로그래밍반 28기 20일차 수업과제 (2021. 05. 06) 오늘은 WIN32 API을 활용하여 원과 원의 충돌을 제작해봅시다! 과제1 - 원과 원의 충돌을 제작해보세요. 조건. 1. 원 하나는 화면 중앙에 위치한다. 2. 또 다른 사용자의 원은 마우스로 움직인다. 3. 두 원이 충돌하면 화면 중앙 원을 색칠시킨다. playGround.h 소스코드 #pragma once #include "gameNode.h" class playGround : public gameNode { private: // 초기화 RECT _user_Ellipse;// 사용자 원 float _user_radius;// 사용자 원 반지름 RECT _center_Ellipse;// 가운데 원 float _center..

32. 스무번째 수업

경일게임아카데미 프로그래밍반 28기 20일차 수업 (2021. 05. 06) playGround.h 파일 #pragma once #include "gameNode.h" #define PI 3.14156f class playGround : public gameNode { private: float _radian; float _degree; public: playGround(); ~playGround(); virtual HRESULT init(); virtual void release(); virtual void update(); virtual void render(HDC hdc); }; playGround.cpp 파일 #include "stdafx.h" #include "playGround.h" playG..

30. 열여덟번째 수업과제 [2인용 미사일 게임]

경일게임아카데미 프로그래밍반 28기 18일차 수업과제 (2021. 05. 03) 오늘은 WIN32 API을 활용하여 2인용 미사일 게임을 제작해봅시다! 과제1 - 슈팅 베이직!을 활용하여 2인용 미사일 게임을 제작하세요 조건. 1. 2인용 게임을 제작해보세요 2. 1/2 player의 움직임, 발사, 총알 모드 변경, 체력게이지, 맵을 구현하세요. 3. 총알 모드는 기본 총알, 5갈래 샷건, 유도탄, 궁극기(자유) 형식으로 만드세요. 4. 1/2 player의 이동은 각자의 맵 안에서만 이동할 수 있도록 구현하세요. 4. 중간 벽을 만드세요. playGround.h 소스코드 #pragma once #include "gameNode.h" #define PLAYER1_BULLETMAX 300 #define ..

29. 열여덟번째 수업

경일게임아카데미 프로그래밍반 28기 18일차 수업 (2021. 05. 03) 슈팅 베이직 #include "stdafx.h" #include "playGround.h" playGround::playGround() { } playGround::~playGround() { } //초기화는 여기다 하세요 제발 HRESULT playGround::init() { gameNode::init(); _player = RectMakeCenter(WINSIZEX / 2 - 350, WINSIZEY / 2, 100, 50); _player2 = RectMakeCenter(WINSIZEX / 2 + 350, WINSIZEY / 2, 100, 50); //총알의 최대갯수만큼 for문을 돌리자 for (int i = 0; i ..

27. 열여섯번째 수업과제 [악어 게임]

경일게임아카데미 프로그래밍반 28기 16일차 수업과제 (2021. 04. 29) 오늘은 WIN32 API을 활용하여 악어 게임을 제작해봅시다! 과제2 - 악어 게임을 제작하세요 조건. 1. 윗 이빨 10개, 아래 이빨 10개를 만드세요. 2. 20개의 버튼중 1개의 버튼은 누르면 악어 입이 닫히게 됩니다. 3. 닫히고 나서 게임을 다시 시작하게 하세요. 소스코드 (내가 작업한 것) #include "stdafx.h" #include "playGround.h" #include playGround::playGround() { } playGround::~playGround() { } //초기화는 여기다 하세요 제발 HRESULT playGround::init() { gameNode::init(); // 시간 ..

26. 열여섯번째 수업과제 [러닝 게임]

경일게임아카데미 프로그래밍반 28기 16일차 수업과제 (2021. 04. 29) 오늘은 WIN32 API을 활용하여 러닝 게임을 제작해봅시다! 과제1 - 러닝 게임을 제작하세요 조건. 1. 주인공은 가만히 있는 상태이며, 땅이 뒤로 가는 상태이다. 2. 주인공이 땅 사이에 빠지면 게임 오버 된다. 3. 2단 점프를 구현해라. 5. 장애물의 종류는 정사각형, 2단 점프용 박스, 3. 엎드린 상태에서 피할 수 있는 박스 총 3가지 이다. 4. 1번 2번 장애물 위에 점프로 올라가게 되면 장애물 위에 있다가 장애물이 다 지나갈 시 땅으로 떨어진다. //5. 3번 장애물은 숙여서 피하기 6. 장애물에 부딪치면 주인공은 뒤로 스르륵 밀린다. 후에 다시 앞으로 스르륵 천천히 오며 주인공이 맵 밖으로 다 나가게 되면..

25. 열여섯번째 수업

경일게임아카데미 프로그래밍반 28기 16일차 수업 (2021. 04. 29) WIN32 API 백버퍼 (댕글링포인터) image.h 파일 소스코드 #pragma once class image { public: typedef struct tagImageInfo { HDC hMemDC; HBITMAP hBit; HBITMAP hOBit; int width; int height; tagImageInfo() { hMemDC = NULL; hBit = NULL; hOBit = NULL; width = 0; height = 0; } }IMAGE_INFO, *LPIMAGE_INFO; private: LPIMAGE_INFO _backBuffer; public: image(); ~image(); HRESULT init(..

24. 열다섯번째 수업과제

경일게임아카데미 프로그래밍반 28기 15일차 수업과제 (2021. 04. 28) 오늘은 WIN32 API을 활용하여 플래피버드 게임을 제작해봅시다! 과제1 - 플래피버드 게임을 제작하세요 조건. 1. 파이프 위아래 크기는 랜덤으로 생성한다 2. 파이프 사이를 지나가게 되면 점수를 오르게 한다. 3. 파이프가 맵밖으로 다 지나가기전에 새로운 파이프를 만들어준다 소스코드 (내가 작업한 것) 프로젝트 실수로 삭제해버린 것 같다.. 어디에다가 작업했는지 기억두 안나고.. 수업자료를 매번 받고 지우고 하는과정에서 내가 실수로 지워버린 것 같다.. 😢 소스코드 (선생님) #include "stdafx.h" #include "playGround.h" playGround::playGround() { } playGrou..

23. 열다섯번째 수업

경일게임아카데미 프로그래밍반 28기 15일차 수업 (2021. 04. 28) 지금까지의 나는 프로젝트 정리를 '경일'이라는 프로젝트안에 '경일'이라는 솔루션안에 API 프로젝트를 새로 만들고, 그 밑에 새로운 수업중 진행되는 폴더들을 매번 만들어줘서 진행하였다. 그러나 오늘부터 싱글톤, 게임 로직 환경 구축(키보드, PLAYGROUND, GAMENODE)등 다양한 클래스와 여러 작업들이 채 어떻게 돌아가는지 확인하기도전에 생성되고, 이를 활용하였다. 이를 직접 보고 타이핑하려고 했지만, 시간이 너무 오래 걸린다는 단점이 있었다. 무엇보다 내가 결국 다 타이핑하여 완성을 했지만 프로젝트가 잘 동작하지 않았다. 아쉽지만 내가 완성했을 때 오류가 없음에도 불구하고 프로젝트가 동작되지 않았다. 아울러 프로젝트가..

22. 열네번째 수업과제 [윈도우 탐색기 구현]

경일게임아카데미 프로그래밍반 28기 14일차 수업과제 (2021. 04. 27) 오늘은 WIN32 API을 마우스를 활용하여 드래그 앤 드롭 기능을 제작해봅시다! 과제1 - 아이콘 드래그 앤 드롭 과제2 - 윈도우 탐색기 구현 이하 과제 2. #include "stdafx.h" HINSTANCE _hInstance; HWND _hWnd; LPCTSTR _lpszClass = TEXT("경일 28기 :-) "); void setWindowsSize(int x, int y, int width, int height); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hP..

21. 열네번째 수업과제 [드래그 앤 드롭]

경일게임아카데미 프로그래밍반 28기 14일차 수업과제 (2021. 04. 27) 오늘은 WIN32 API을 마우스를 활용하여 드래그 앤 드롭 기능을 제작해봅시다! 과제1 - 아이콘 드래그 앤 드롭 과제2 - 탐색기 창 각 끄트머리 잡고 드래그 앤 드롭 이하 과제 1. #include "stdafx.h" HINSTANCE _hInstance; HWND _hWnd; LPCTSTR _lpszClass = TEXT("경일 28기 이시영 :-) "); void setWindowsSize(int x, int y, int width, int height); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInst..

20. 열네번째 수업

경일게임아카데미 프로그래밍반 28기 14일차 수업 (2021. 04. 27) WIN32 API 마우스 #include "stdafx.h" HINSTANCE _hInstance; HWND _hWnd; LPCTSTR _lpszClass = TEXT("경일 28기 :-) "); void setWindowsSize(int x, int y, int width, int height); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int cmdShow) { _hInstance = hInstance; MSG mes..

19. 열세번째 수업과제 [사각형 밀기]

경일게임아카데미 프로그래밍반 28기 13일차 수업과제 (2021. 04. 26) 오늘은 WIN32 API을 활용하여 사각형 밀기를 제작해봅시다! 공통사항 1. 내가 움직이는 사각형 안에 작은 사각형이 있다. 큰 사각형 움직일 때 작은 사각형은 내 움직임에 맞춰 끌려 다닌다. 2. 모든 사각형은 화면 밖으로 나갈 수 없다. 과제 1. 사각형 밀기. 과제 2. 사각형이 움직이다가 다른 사각형이랑 부딪혔다. 안에 있는 작은 사각형이 다른 사각형 가운대로 이동하더니 그 사각형이 움직인다. 이하 과제 1. #include "stdafx.h" HINSTANCE _hInstance; HWND _hWnd; LPCTSTR _lpszClass = TEXT("경일 28기 :-) "); void setWindowsSize(i..

18. 열세번째 수업

경일게임아카데미 프로그래밍반 28기 13일차 수업 (2021. 04. 26) WIN32 API RECT 생성, 이동 #include "stdafx.h" HINSTANCE _hInstance; HWND _hWnd; LPCTSTR _lpszClass = TEXT("경일 28기 :-) "); void setWindowsSize(int x, int y, int width, int height); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int cmdShow) { _hInstance = hInstance;..

반응형