전체 글
-
무기 교체Game Programming/언리얼 2023. 10. 18. 18:13
void AMyCharacter::SelectButtonPressed() { if (TraceHitItem) { auto TraceHitWeapon = Cast(TraceHitItem); SwapWeapon(TraceHitWeapon); } GEngine->AddOnScreenDebugMessage(1, 1, FColor::Green, FString::Printf(TEXT("SelectButtonPressed"))); } 무기 교체를 하기 위해 'T" 버튼을 누르면 현재 Trace 중인 무기와 스왑하도록 코드를 변경했다. void AMyCharacter::SwapWeapon(AWeapon* WeaponToSwap) { DropWeapon(); EquipWeapon(WeaponToSwap); TraceHi..
-
-
무기 버리는 물리효과 추가Game Programming/언리얼 2023. 10. 18. 17:24
Weapon.h private: FTimerHandle ThrowWeaponTimer; float ThrowWeaponTime; bool bFalling; 무기 버리기 종료 타이머, 무기가 땅에 떨어졌는데 확인하는 boolean 변수를 추가했다. FRotator MeshRotation{ 0.f, GetItemMesh()->GetComponentRotation().Yaw, 0.f }; GetItemMesh()->SetWorldRotation(MeshRotation, true, nullptr, ETeleportType::TeleportPhysics); 무기의 Y축 회전량을 가져와서, 무기 메시를 Y축 방향으로 월드에서 회전시킨다. (손에 있을 때는 회전이 안된 상태인가보다.) SetWorldRotation ..
-
초기화Computer Science/그래픽스 dx11 2023. 10. 18. 15:32
RenderTargetView, RenderTarget 정리 new, delete CRT.dll DX11→ CRT.dll Engine→ CRT.dll(버전다름) Engine→ delete DX11→에러 CRT.dll 버전이 다를 수 있기 때문에, 라이브러리에서 할당 된 메모리는 라이브러리에서 해제한다. SWAP 체인 : FRONT, BACK 버퍼를 교체 및 화면 표시 DESC 개념 : Device에서 객체를 생성할 때 설명하는 구조체 DXGI_SWP_CHAIN_DESC DXGI_SWAP_EFFECT_DISCARD : 이전에 사용한 백버퍼를 지워라(버려라) DESC.BufferDesc FORMAT : 1 Pixel을 몇 비트로 나타낼 것인가. R,G,B,A 당 8비트 할당 시 16777216개의 화소를 표..
-
-
프로그래머스 Lv3 야근 지수Computer Science/프로그래머스 2023. 10. 18. 15:20
접근법 야근 지수를 구하는 공식이 a^2 + b^2 + c^2 .... n^2이므로 수학적으로 접근하면 크기가 균등하게 작아지면 된다는 점으로 접근하면 된다. 따라서 우선순위 큐를 사용해서 현재 가장 큰 값을 줄이는 방식으로 접근하면 된다! 풀이 우선순위 큐를 사용하면 제일 큰 값이 top()에 오기 때문에 감소 시킨다. 이 때 N시간 동안 일을 할 수 있기 때문에 N을 감소시키고 우선순위 큐도 갱신하기 위해 pop() 을 진행 후 push()를 해준다. works의 원소가 모두 0이 되는 경우가 있기 때문에 push() 전에 원소가 0인지 아닌지를 체크한다. works의 모든 원소가 0이되는 예) works n result [1,1] 3 0 코드 #include #include #include #inc..
-
Item Falling StateGame Programming/언리얼 2023. 10. 17. 17:13
아이템이 떨어지는 상태를 만들었다. PA_HeavyMachineGun 물리 에셋 물리객체가 없다면 Add Shape에서 Add Box로 물리객체를 추가하면 된다. Item.cpp SetItemProperties에서 EIS_Falling 상태에 대한 물리정보 변경을 추가했다. case EItemState::EIS_Falling: ItemMesh->SetSimulatePhysics(true); ItemMesh->SetEnableGravity(true); ItemMesh->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics); ItemMesh->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore); ..
-
무기 버리기Game Programming/언리얼 2023. 10. 17. 16:31
무기를 버리는 기능을 구현했다. DropWeapon() 함수를 구현하는데, bool bInCallModify 인자가 이해가 안갔다. /* Detach weapon and let it fall to the ground*/ void AMyCharacter::DropWeapon() { if (EquippedWeapon) { FDetachmentTransformRules DetachmentTransformRules(EDetachmentRule::KeepWorld, true); EquippedWeapon->GetItemMesh()->DetachFromComponent(DetachmentTransformRules); } } 언리얼 문서를 보면 Modify() 함수를 호출하는 역활을 하는것으로 보인다. 이해를 하기 ..