서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D
65일차. 포트폴리오 제작 4일
WDmil
2023. 8. 10. 02:26
728x90
진행중인 작업
UI
1. 팝업바 생성
진행 예정 작업
객체
진영 생성시 객체 위치
전투 생성시 객체 위치
전투 AI
1. 전투로직
2. 스킬로직
UI
2. 상태창 생성
3. 핸드, 상점, 전장 UI 생성
그외
투사체
마우스 위치에 따른 카메라 이동
전투시 자동카메라 이동 설정
적 난이도 생성
상점 카드 생성
완료된 작업
기본 마우스 포인터 연동
캐릭터 사망시 삭제처리 연동
HP 표시 [ HP바 재처리 ]
데미지 연산중복 처리
데미지 연산 ( 객체질량 * 운동량 )
OBB충돌처리
각 객체간 부모자식관계 재처리
객체 공격 딜레이
공격시 오브젝트 회전처리
객체 공격
객체 이동
애니메이션 재생
객체 생성
마우스 포인터 작업과 버튼의 부모Class를 작업하였음.
마우스 포인터를 NULL로 설정하는 SetCursor(NULL); 을, Update에 놓아야 정상작동하는 버그가 발생함.
왜 그런것인지 확인중.
캐릭터 사망시 삭제처리 연동의 오류.
캐릭터 사망시 삭제처리 연동은, std::List의 전체순환 알고리즘을 사용중, 중간에 erase를 사용하게 되면, std::List<Class> def.begin() 이 nullptr을 잡게되는 오류가 발생함.
해결
std::list<Character*> def_list;
for (auto def = Character_list.Get()->begin(); def != Character_list.Get()->end(); def++)
{
if ((*def)->GetHP() <= 0)
{
def_list.push_back((*def));
}
}
if(!def_list.empty()) {
for (auto def = def_list.begin(); def != def_list.end(); def++)
{
Character_list.Get()->remove((*def));
}
}
임시 list를 생성하여, 해당되는 리스트를 동작중인 반복문이 아닌, list 배열을 순환하여 해당되는 Class를 Character_list에서 찾아 삭제하는 방식으로 동작시킴.
728x90