메모리 생성을 각 클래스 안으로 넣기.

|

WM_CREATE에서 메모리 생성을 했던 것도

각 클래스로 집어넣어 봅시다.


우선 배경클래스로 가서

1
2
3
4
5
6
class BackGround : public Object {
public:
    virtual void Render();
    virtual void Update( float _dt ){}
    static BackGround *Create( HBITMAP BG );
};
cs


static BackGround *Create( HBITMAP BG );

를 만듭시다.


cpp에 함수를 구현 해 주시고요.

메모리를 반환해 줍시다.

1
2
3
4
5
6
ObjectBackGround *ObjectBackGround::Create( HBITMAP _BG )
{
    ObjectBackGround *g_CBackground = new ObjectBackGround;
    g_CBackground->Init( _BG );
    return g_CBackground;
}
cs


그 다음 똑같이 히어로 클래스로 가서

함수를 만들고 마찬가지로 함수를 구현해 줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Hero : public Object{
private:
    HDC hDC;
    CGPoint m_srcPos;
    CGPoint m_srcSize;
    CGPoint m_offset;
    int m_iDirection;
    int m_iPrevState;
    int m_iState;
    int m_nFreame;
    float m_dFrameDelay;
    float m_MoveSpeed;
public:
    virtual void Init( HBITMAP _m_hResource );
    virtual void Render();
    virtual void Update( float _dt );
 
    void Animation( float _dt );
    void Action( float _dt );
 
    static Hero *Create( HBITMAP _Hero );
};
cs


1
2
3
4
5
6
Hero *Hero::Create( HBITMAP _Hero )
{
    Hero *hHero = new Hero;
    hHero->Init( _Hero );
    return hHero;
}
cs


구현이 다 끝났으면 메인cpp에서 불러와야 겠죠

자, 더 줄여줍시다.



And