구구단 (while loop 사용)
처음에 B를 다시 1로 Set 하는 걸 깜빡해서 왜 안되지 했다.
C++ 코드로 메모장에 써보니 문제를 바로 깨달아서 추가했다.
슈팅 게임 로직 구현
과제 내용
- 30발 이상 발사하려고 하는 경우 발사가 불가능하도록 수정
- 30발 가득 차 있는 경우 재장전 불가하도록 수정
- 총에 맞았을 때 HP가 Damage 만큼 깎이는 로직 작성
- Heal 로 피해를 치료하는 로직 작성
추가로 구현해 본 내용
- 플레이어와 적 각각의 HP, 공격력 Attack, 명중률 Hit Rate 변수 생성
- 플레이어의 경우 MP 와 MP Use 변수 생성하여 Heal 사용 시 MP를 소진하도록 함
- 총알 발사 후 Hit Rate 를 퍼센티지로 보고 확률에 따라 Hit / Miss 되도록 구현
- Tick 이벤트에 딜레이를 사용해 플레이어의 HP 가 적의 Hit Rate에 따라 확률적으로 감소하도록 함 (플레이어가 피격당하는 상황)
- Tab 키로 Attack 과 Hit Rate 가 바뀌게 함 (총을 바꾸는 상황)
- 재장전 키 누르면 2초 딜레이 후에 재장전 되도록 수정
- 플레이어 혹은 적이 피격 당할 때마다 각자의 HP 를 체크해 0보다 작거나 같으면 게임 일시정지
Fire
마우스 왼쪽 버튼 인풋 이벤트 (Left Mouse Button) - 총알 1발 소진
Hit or Miss
랜덤으로 생성한 인티저가 Hit Rate 보다 작거나 같을 때 Hit --> Enemy HP 가 Attack 값만큼 감소
Reload
총알 수가 Max Bullets 보다 작으면 2초의 딜레이 후 Max Bullets 로 재장전
Swap Weapon
Flip Flop 사용하여 Attack 20 / Hit Rate 20 인 무기와 Attack 10 / Hit Rate 40 인 무기 번갈아 선택
Heal
My MP 가 MP Use 보다 크거나 같으면 (MP가 충분하면) My HP가 Heal 만큼 증가하고 My MP가 MPUse 만큼 감소
Player 피격 상황
Delay 사용하여 2초마다 0~100 랜덤 인티저 생성 --> Enemy Hit Rate 보다 작은 경우 피격 --> My HP 가 Enemy Attack 만큼 감소
Game Over
- 위에서 적에 대한 공격이 적중하거나 적의 공격을 받는 경우 실행
- Enemy HP 또는 My HP 가 0보다 작거나 같으면 게임 일시정지
가위바위보 로직 구현
Enum 열거체 활용
* Random Integer --> Integer to Byte --> Byte to Enum EMoves 로 컴퓨터의 값을 랜덤 생성
---
언리얼 블루프린트 팁
단축키 관련
- 노드를 여러 개 선택하고 Q 누르면 정렬
>> 가장 오른쪽 노드에 링크된 가장 위의 케이블 기준 수평 정렬
- Alt+클릭으로 핀에 링크된 케이블 분리 가능
- 우클릭 대신 Tab으로도 액션 불러오기 가능
변수 관련
- 변수 Ctrl+드래그 : Get / Alt+드래그 : Set
- 변수 만들고 컴파일 후 우측 디테일 패널에서 기본값 설정
텍스트 관련
- Format Text 에서 {} 이용해 인풋 값을 텍스트에 넣을 수 있음
이벤트 노드 관련
- 키 입력 이벤트는 '키' + keyboard + '키' 로 검색
플로우 컨트롤 관련
- For Loop - 마지막 인덱스를 포함한다.
열거형 Enumerator
- 열거형 - 콘텐츠 드로어에서 우클릭 - 블루프린트 - 열거형
- Switch on [EnumeratorName] - 인풋으로 열거형 변수를 받아 각 항목별 액션 실행
주의!
>> divide by 0 해도 에러 없이 컴파일 및 실행이 된다. (리턴 값 0)
>> division 할 때 소숫점 필요하면 float 으로 나누어야 한다.
'언리얼_엔진_게임개발_공부 > 언리얼 블루프린트' 카테고리의 다른 글
[언리얼/블루프린트] 플레이어 캐릭터 클래스 (0) | 2024.12.19 |
---|---|
[언리얼/블루프린트] 애니메이션 & 사운드 - 강의 메모 (1) | 2024.12.18 |
[언리얼/블루프린트] 레벨 디자인 맛보기 - Sky Atmosphere Component / Raleigh & Mie Scattering / 머티리얼 그래프 (0) | 2024.12.17 |
[언리얼/블루프린트] Enhanced Input 향상된 입력 (1) | 2024.12.16 |
[언리얼/블루프린트] 언리얼 엔진 둘러보기 & 블루프린트 입문 (1) | 2024.12.16 |