싱글턴 패턴

|

싱글턴이란?

 

클래스의 객체를 단 하나만 만들게 해놓은 패턴.

싱글턴 패턴을 사용하면 어디서든지 전역변수 사용하는 것처럼 같은 객체를 여러 곳에서 사용할 수 있다.

전역변수나 전역객체는 생성해놓고 쓰지 않으면 메모리가 낭비된다는 단점이 있으나,

싱글턴의 경우는 한번이라도 호출하지 않으면 생성 자체가 안되기 때문에 전역변수와 같은 단점이 없다.


1
2
3
4
5
6
7
8
9
10
11
12
class ST{
private:
    ST(){}
public:
    ~ST(){ delete instance; }
    static ST* instance;
    static ST* Call()
    {
        if( instance == NULL ) instance = new ST;
        return instance;
    }
};
cs

생성자를 private에 선언하면 클래스 내부에서만 객체선언이 가능해 진다.

And

이미지 깜박거림 없앰.

|

Object_Hero.cpp

애니메이션 함수 제일 위에 밑의 소스를 추가.

1
2
3
4
5
6
if(m_iPrevState != m_iState)
{
    m_iPrevState  = m_iState;
    m_dFrameDelay = 0;
    m_nFreame     = 0;
}
cs

 

전 상태가 지금 상태와 같지 않을경우.

전 상태를 지금 상태로 바꿔주고

시간 딜레이와

프레임을 모두 0으로 대입시켜준다.

 

 

결과

 

 

'API > 이론' 카테고리의 다른 글

싱글턴을 이용한 메인함수의 메모리 버퍼 정리  (0) 2016.04.30
싱글턴 패턴  (0) 2016.04.30
캐릭터 뒷배경 검정색 없애기.  (0) 2016.04.29
시간 경과에 따른 애니메이션  (0) 2016.04.29
캐릭터 출력하기.  (0) 2016.04.28
And

캐릭터 뒷배경 검정색 없애기.

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Hero::Render()
{
    CGPoint pos = this->GetPos();
 
    pos.x -= m_offset.x + m_srcPos.x / 2;
    pos.y -= m_srcPos.y;
 
    SelectObject(m_hMemDC, m_hResource);
 
    BitBlt(m_hBackBuffer, 
            pos.x, pos.y,
            m_srcPos.x, m_srcPos.y,
            m_hMemDC,
            m_srcSize.x + m_srcPos.x * m_nFreame, m_srcSize.y + m_srcPos.y,
            SRCAND);
 
    BitBlt(m_hBackBuffer, 
            pos.x, pos.y,
            m_srcPos.x, m_srcPos.y,
            m_hMemDC,
            m_srcSize.x + m_srcPos.x * m_nFreame, m_srcSize.y,
            SRCPAINT);
}
cs



결과



'API > 이론' 카테고리의 다른 글

싱글턴 패턴  (0) 2016.04.30
이미지 깜박거림 없앰.  (0) 2016.04.29
시간 경과에 따른 애니메이션  (0) 2016.04.29
캐릭터 출력하기.  (0) 2016.04.28
배경을 클래스화 해서 출력하기.  (0) 2016.04.27
And
prev | 1 | ··· | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ··· | 15 | next