1. 지형만들기 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6611335&t
2. 링크 움직이기 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6622888
3. 참피의 행동패턴 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6638982
4. 샌즈 오류, 그래픽의 질 상향 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6650423
5. 공격, 통피분신술 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6662892
6. 시체,이지,"큰사람" https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=6696778
7. 세계의 확장 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=7876684
8. 룸의객체화, 지형 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=8154389
9. 체력과 아이템슬롯 https://gall.dcinside.com/mgallery/board/view?id=aoegame&no=8190295
10. 장비 효과와 인벤토리 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=8216383
11.소모품과 감정 두루마리https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=8240084
12. 층과 층보스 시스템 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=8816784
13. 상태이상과 함정
14. 갈아 엎기 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=10005301
15. 이진공간분할 랜덤맵 생성 https://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=10017975
이번 연재는 전투의 구현이다
보통 2d 에서 적이 길을 찾는 알고리즘은 A* 알고리즘을 사용한다 (다익스트라를 사용하는 경우도 있다고는 한다)
하지만 갓흥 엔진 겜스에서는 굳이 에이스타 알고리즘을 구현하지 않아도 자체적으로
에이스타 알고리즘 구조체인 mp_grid를 가지고 있다
이를 사용해서 플레이어를 따라다니는 적을 구현하고자 한다
먼저 플렛폼에 길찾기 그리드인 mp_grid 구조체를 생성한다
mp_grid에는 장애물을 전달해주어야 한다.
그러면 알아서 장애물을 피하는 루트를 짜주기 때문
geo_grid에서 좀더 정교하게 2배로 쪼갠다음 Land가 아닌곳을 장애물로 mp_grid에 전달한다
몬스터들은 생성될때 자신이 어느 플랫폼 소속인지 알려준다
몬스터가 죽을땐 자기 소속 플랫폼에서 자기 id를 제거해
이미 존재하지 않게된 객체를 비활성화 하게 되는 참사를 막는다
mp_grid에서 지원하는 길찾기는 말그대로 길만 찾아주는것이기 때문에
밀쳐지던가 하는 외부적 요인으로 벽을 넘어다니게 될수도 있다
그걸 막아준다.
만약 4방향이 모두 끼이게 된다면 while_cycle초과로 맵의 시작 지점으로 이동한다
몬스터 끼리는 서로 부딪힐 시 서로를 밀쳐낸다
뒤졌던 통피가 부활했다
대충 not_use_dummy 폴더에 들어있던 객체 하나를 꺼내와서 재활용했다
mp_grid는 찾은 길을 path 형태로 반환하기 때문에 빈 path하나를 생성 이벤트에서 하나 선언해놓는다.
여담으로 겜스1.4에는 path 메모리가 줄줄 새는 오류가 있어서 path 쓰기 진짜 싫었는데
mp_grid 안쓰고 A*로 구현해도 어차피 path로 반환해야 된데서 걍 mp_grid씀
플레이어가 몬스터의 인식 범위 안에 들어오게 되면 플레이어의 위치로 이동할수 있는 최적의 경로를 구하여 이동을 시작한다
이를 30step마다 갱신해준다.
패스도 객체취급이라 해제 안하면 메모리에 남는다
고닉 죽이기 하려고 몰려드는 통피.gif
이제 장식물이였던 총이 자기 역할을 할때다
총에게 필요한 변수들을 선언해준다
우리의 총은 자동 조준과 자동 발사 기능을 가지고 있다
그런데 이렇게 되면 적이 범위안에 들어오면 일단 쏘게 되므로 벽을 인식하지 못하고 벽 건너에 있는 몬스터를 타겟으로 발사하게 될수도있다.
이 스크립트는 타겟과 총 사이의 거리를 10개의 지점으로 나누어서 해당 지점에 벽이 있는지 검사한다
일단 가장 가까운 몬스터를 타겟으로 잡는다.
이 몬스터가 사거리 안에 있을 경우에는 발사하지만
사거리 안에 있지만 벽 등등으로 가로막혔을때는 다음으로 가까운 적을 타겟으로 삼는다
재장전 하는 동안 재장전이 얼마나 걸리는지 하얀 박스로 표시해준다
남은 잔탄량을 보여주는 UI를 만든다
1번 스프라이트 위에는 내가 무슨 총을 장착하고 있는지 그리고
2번 스프라이트는 장탄수 만큼 y를 줄여나가며 그린다
3번 스프라이트는 탄창의 꼭대기를 표시한다
버튼을 누르면 재장전한다
음 굿
전리품을 만든다
골드는 만-두다
만두는 생성될때 1~4사이의 랜덤 값을 가진다.
플레이어가 충분히 가깝다면 만두는 플레이어에게 끌려들어간다
플레이어에게 부딪히면 내가 가진 변수를 gold량에 추가하고 삭제된다.
경험치도 골드와 작동원리는 똑같으니 그대로 복사해준 다음 플레이어가 부딛혔을때 value를 전해주는 대상만 바꿔준다
폐지줍기
무기 교체를 구현하자
무기 교체를 할수 있도록 테스트용 무기를 아이템 데이터 베이스에 추가했다
그리고 드랍 아이템 오브젝트를 만들어준다.
대충 아이작에서 액티브 아이템 교체를 생각하면 편하다.
부딪힌동안 계속 반복적으로 무기가 교체되는걸 막기 위해 30step간의 비활성화 텀을 둔다
드랍 아이템은 새로운 아이템의 id를 가지고 있다.
드랍 아이템과 플레이어가 부딪히게 되면 드랍 아이템이 가지고 있는 새로운 아이템의 id가 플레이어의 weapon_item_slot으로 들어가게 되고
플레이어 에게 있던 기존 아이템의 id가 드랍 아이템의 new_item 슬롯으로 들어가게 된다.
아이템 아레에 깔릴 제단
무기 교체가 성공적으로 이루어 졌다.
다음 시간엔 NPC를 추가해 오겠다.
록맨같애
정보: 3일만에 만들었다
꾸준추
와 ㅋㅋㅋ 이제 확실히 게임같네
와 신기방기해
아이템 같은거 보니까 완전 도트찍기 마렵게 하네
다만들면 배포하냐
중갤에 구글드라이브로 배포하는게 최종 목적임
근성추
ㅋㅋ재밌어보이노 ㅋㅋ
너무 유익하고 조아요 감사해오 - dc App
이정도 하려면 개발 몇년배워야하냐
게임스튜디오는 드래그앤드랍 기반에 코딩도 자체 코드 써서 다른 언어랑 다름 - dc App
진짜 씨발 빡대가리라 C언어 막혀서 게임 못 만드는게 존나 서럽네 씨발 씨발
코딩의 한계가 스크래치다 애미 씨1발 병신 나
건전처럼 총만 모으는게 아니라, 로그라이크 겜 느낌나게 투구 갑옷 등등 다른 장비도 모을수 있게 만들자
부위당 스텟만 다른 10여개의 장비 아이템, 30여종 특수 효과 있는 장신구 넣을생각
겜 열심히 만드네 정성추
절대 유니티써 먼시발 언제적겜메야 ㅠㅠ - dc App
오..
잼나보이누
뉴클리어 쓰론이라는 게임 아냐?
중터더건전