계층구조 설계

2023. 7. 5. 00:52개인공부/Direct2D

부모 자식관계 예시


부모 오브젝트와 자식 오브젝트 구조를 만들었다. 자식은 부모의 움직임을 따라가고 부모와 offset이 있어서 그만큼 떨어지게 된다. 

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
32
33
34
35
36
37
38
39
void MainScene::Enter()
{
    /// 리소스 로드
    LoadSceneResources(L"MainScene");
 
    /// 플레이어 오브젝트 추가 
    GameObject* player = new GameObject("player");
    player->CreateComponent<Transform>();
    Transform* transform = player->GetComponent<Transform>();
    transform->SetPosition(Vector2(0.f, 0.f));
    transform->SetRotation(0.f);
    transform->SetScale(Vector2(50.f, 100.f));
    player->CreateComponent<Movement>();
    player->CreateComponent<BoxRender>();
    player->CreateComponent<CircleCollider>()->SetRadius(50.f);
    Animator* playerAnimator = player->CreateComponent<Animator>();
    playerAnimator->CreateAnimation(L"bossWalk", L"boss", Vector2::Zero, Vector2(225.f, 225.f), Vector2(225.f, 0.f), 0.1f, 4);
    playerAnimator->Play(L"bossWalk"true);
 
    GameObject* tmp = player;
    for (int i = 0; i < 10++i)
    {
        GameObject* car = new GameObject("car");
        car->CreateComponent<Transform>();
        Transform* transform1 = car->GetComponent<Transform>();
        transform1->SetOffset(Vector2(-60.f, -10.f));
        transform1->SetOffset(0.5f);
        car->CreateComponent<CircleCollider>()->SetRadius(50.f);
        car->CreateComponent<TextureRenderer>()->SetKey(L"car");
        car->CreateComponent<Movement>();
        tmp->AddChild(car);
        tmp = car;
    }
 
    AddObject(player, OBJECT_TYPE::PLAYER);
 
    GetCollisionManager()->CheckCollisionObjectType(OBJECT_TYPE::PLAYER, OBJECT_TYPE::PLAYER);
}
 
cs

'개인공부 > Direct2D' 카테고리의 다른 글

스타크래프트 기능 구현 2  (0) 2023.07.14
충돌 연산 최적화  (0) 2023.07.12
스타크래프트 기능 구현 1  (0) 2023.07.10
카메라  (0) 2023.07.06
충돌감지  (0) 2023.06.14