일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 김성엽
- Tips강좌
- 포인터
- tipssoft
- Win32
- Visual Studio
- 알고리즘
- Direct2D
- 이지스퍼블리싱
- 배열
- Javascript
- c
- 지식나눔강좌
- Tips프로그래밍강좌
- 연산자
- 리뷰
- Kotlin
- 티스토리
- Desktop
- 문법
- Programming
- 함수
- 프로그래밍
- doit코틀린프로그래밍
- c#
- CS
- 백준
- VS ERROR
- Windows
- c++
- Yesterday
- Today
- Total
목록충돌 (6)
F.R.I.D.A.Y.
물리엔진 - 벽 충돌 part1. 바닥 구현 이전 시간의 중력 구현에 이어 이번에는 지나갈 수 없는 벽을 구현해봅니다. 벽 물리엔진을 구성하다보니 주로 게임에 빗대는 경우가 많은데, 벽이라 함은 물체가 뚫고 지나갈 수 없는 것을 pang2h.tistory.com 위 시리즈와 연계해 작성합니다. 프로젝트 코드는 다음에서 이어집니다. 좌우 벽 충돌 플래시 게임 등에서 바닥을 형성한 것 외에 추가로 구현한 것이 있습니다. 좌우로 벽을 만났을 때 캐릭터가 이동하지 못하도록 하는 것입니다. 이것 또한 Calculate 메서드에서 처리하면 구현할 수 있습니다. 과 방향만 다르지 동일한 내용이기 때문에 해당 코드를 참고해 역으로 계산하면 수비게 코드를 작성할 수 있습니다. 또한, 좌우 이동은 서로 상반된 명령이기 때..
바로 전 시리즈에선 바닥 구현을 했습니다. 좌우로만 이동하면 이제 제대로 된 캐릭터 이동이 가능해지겠네요. 프로젝트 업데이트 이번 포스트부터는 기존 제공한 프로젝트와 해당 프로젝트로 구성한 중력구현 등을 포함한 버전의 새로운 프로젝트를 사용합니다. 프로그램 사용이 보다 접근성이 높아야 흥미를 느낄 수도 있을것 같아 몇가지 기능을 추가했으니 참고해주세요. 본 파일에 추가된 기능/소스코드는 다음과 같습니다. 마우스 좌측버튼 및 마우스 끌기로 블럭 형성이 가능합니다.[# 이렇게 만들어진 블럭에 대해서도 중력 구현 및 충돌의 영향을 받도록 구성해 캐릭터가 그 위에 놓였을 때 더이상 내려가지 않습니다] 마우스 우측버튼으로 형성된 블럭을 삭제할 수 있습니다.[# 프로그램 생성부터 나온 하단의 메인 블럭은 지우지 않..
이전 시간에는 캐릭터가 바닥을 만났을 때, 더이상 아래로 내려가지 않도록 했습니다. 이번에는 점프를 구현해보겠습니다. 점프 구현 단순히 만들면 그냥 키 입력을 받았을 때 이동속도로 음수(-)값을 주면 됩니다. 근데, 이러면 다시 점프가 가능해지죠. 그래서 우리는 키 상태를 저장하고 실 계산은 Calculate 메서드에서 처리하도록 구성할겁니다. 키 상태를 저장하는 방법은 아래 포스트를 참고하세요. Win32 - 키보드 입력으로 사각형 움직이기 키보드 입력으로 사각형을 움직여봅니다. # Win32 프로그래밍을 이해하고 있어야합니다. # 알지 못하는 경우 여기에서부터 시작할 것을 권장합니다. # 본 문서는 Direct2D 기반으로 구현합니다. Win3 pang2h.tistory.com 위 페이지의 정보대로 ..
이전 시간의 중력 구현에 이어 이번에는 지나갈 수 없는 벽을 구현해봅니다. 벽 물리엔진을 구성하다보니 주로 게임에 빗대는 경우가 많은데, 벽이라 함은 물체가 뚫고 지나갈 수 없는 것을 말하죠. 우리가 윈도우에 사각형을 그려넣는다고 그 사각형이 바로 벽이 되지는 않습니다. 연산을 통해 벽으로 인식되는 사각형을 대상이 뚫고 움직이지 못하도록 해야하죠. 이전 시간에 우리는 중력을 구현했기 때문에 중력이 적용된 시스템으로 구현해볼 것입니다. 중력을 구현한 방식과 중력을 구현하지 않은 방식은 약간의 차이가 존재하니까요. 접근 대상이 벽에 접근할 때는 네가지 방향에서 접근할 수 있습니다. 그리고 네 방향을 모두 점검하는 것은 좋지 않죠. 따라서 우리는 각 방향의 접근을 알아내고 그에 맞게 코드를 작성하겠습니다. 그..
게임이란 현대 기술의 정점을 모두 포함하고 있는 기술의 정수다 문득 이런 구절이 떠오르는 포스트가 아닐까 생각합니다. 누가 말했는지는 몰라도 정말 한번에 와 닿는 말이 아닐 수 없습니다. RPG에서만 보더라도 다양한 물리 법칙이 적용된 엔진[# 유니티와 언리얼이 대표적이죠]이 사용되고, FPS 게임에서는 심지어 탄도학도 이용[# 단순히 배틀그라운드 탄도학만 검색해도 나오는 글이 수 십 개...]합니다. 게임에서 중요한 것 중 하나가 막혀 있는 곳을 가지 못하는 것이라 생각합니다. 생각해보세요. 현실에서 물건을 짚으려 손을 뻗었는데 짚이기는 커녕 그 물건을 통과해버린다면. 아마도 기절하지 않을까요? 그래서 게임에서는 물리 엔진을 사용합니다. 사실 게임에만 사용한다기보단, 여러 산업 전반에서 사용하고 있죠...
게임이란 현대 기술의 정점을 모두 포함하고 있는 기술의 정수다 문득 이런 구절이 떠오르는 포스트가 아닐까 생각합니다. 누가 말했는지는 몰라도 정말 한번에 와 닿는 말이 아닐 수 없습니다. RPG에서만 보더라도 다양한 물리 법칙이 적용된 엔진[# 유니티와 언리얼이 대표적이죠]이 사용되고, FPS 게임에서는 심지어 탄도학도 이용[# 단순히 배틀그라운드 탄도학만 검색해도 나오는 글이 수 십 개...]합니다. 게임에서 중요한 것 중 하나가 막혀 있는 곳을 가지 못하는 것이라 생각합니다. 생각해보세요. 현실에서 물건을 짚으려 손을 뻗었는데 짚이기는 커녕 그 물건을 통과해버린다면. 아마도 기절하지 않을까요? 그래서 게임에서는 물리 엔진을 사용합니다. 사실 게임에만 사용한다기보단, 여러 산업 전반에서 사용하고 있죠...