


                                for windows
                            -----------------------

                               ( Technical note )



        -   Ʈ   Ȱ ؼ մϴ.-
       - Ʒ   CSPRITE.CPP Ͽ õ κ ϴ. -


# Ʈ ---------------------------------------------------------

typedef struct         // Ʈ  
{
    char  Identifier[16];      // Ʈ νĹ
    short Version;             // Ʈ 
    short TotalSprNum;         //  Ʈ 
	long  ActionNum;           // ׼  ( ʿ )
} SPRFILEHEAD;

typedef struct         // 浹, ǥ ü
{
	short attrib;              // ǥ Ӽ (  )
    short x1,y1;               // » ǥ
	short x2,y2;               //  ǥ
	char reserved[2];
} SPRPOS;

typedef struct         //  Ʈ 
{
    BYTE  compress;            // ࿩
	short rx, ry;              //  ǥ
    short xl, yl;              // X, Y 
    short mx, my;              // ߽ǥ
	short hitNum;              // 浹ǥ 
	short atckNum;             // ǥ 
    unsigned long dsize;       // Ʈ ̹ ( ʿ)
	char  reserved[3];
} SPRHEAD30;

*   ε  üԴϴ.


typedef struct          // Ʈ Ÿ ü
{
    //int tot;                 //  Ʈ 
    int compress;            // ࿩
	int xl, yl;              // X, Y 
    int rx, ry;              // ǥ
    int mx, my;              // ߽ǥ
	int hitNum;              // 浹ǥ 
	int atckNum;             // ǥ 
	unsigned long  dsize;    // Ʈ Ÿ ( ʿ)
	SPRPOS* hit;             // 浹ǥ ü 
	SPRPOS* atck;            // ǥ ü 
    char*   data;            // Ʈ Ÿ 
} SPRITE30;


Ʒ ׸ó Ʈ  ùκ SPRFILEHEAD ü մϴ.
 ķδ  Ʈ  浹ǥ, ǥ, ̹
˴ϴ. Ʈ   ݺǼ ǰ.

    
SPRFILEHEAD SPRHEAD30 浹ǥ ǥ ̹ SPRHEAD30 ....
    
   ⺻   | <---------- Ѱ Ʈ ---------> |


⺻ Ʈ  νĹڿ  ׸  Ʈ
 õǾ ֽϴ.
(  Ʈ  5̸ Ʈ ȣ 0 4Դϴ)

浹ǥ 浹ǥ ŭ SPRPOSü ӹ迭Ǹ ̴ ǥ
Դϴ.
̹ Ǿ  ְ ׷   ̹ 
SPRHEAD30 ü ؼ ˼ ֽϴ.

SPRITE30 ü ε Ʈ   Ǵٸ ü Դϴ.
 ε  ε    ü  ˴ϴ.

 .

CSprite test;
test.Load("test.spr");

ó Ʈ  εϿ 
̹ Ϳ ϴ 

char* ImagePtr = test.spr[0].data;

   ϸ Ʈ ̹  Ÿ  
  ϸ ˴ϴ.

test.spr[0].data ... 0 Ʈ ȣ̸  ڴ
test.sfhead.TotalSprNum  ũų   ϴ.

浹ڳ ݻ ǥ ϴ 

int HX1 = test.spr[0].hit[0].x1
int HY1 = test.spr[0].hit[0].y1
int HX2 = test.spr[0].hit[0].x2
int HY2 = test.spr[0].hit[0].y2

̷ մϴ. 0 Ʈ 0 ݻ x1, y1, x2, y2ǥ
 ̸ ݻڴ hit atck ϸ ˴ϴ.
Ѱ ؾ  ǥ ־ Ѵٴ Դϴ.
  ǥ  ǥ̹Ƿ Ʈ ǥ ־
 ǥ ǥŭ ̵Ǿ Ǿ ϹǷ
Ȯ ǥ Ʒó ǰڽϴ.

int HX1 = test.spr[0].hit[0].x1 + test.spr[0].rx;
int HY1 = test.spr[0].hit[0].y1 + test.spr[0].ry;
int HX2 = test.spr[0].hit[0].x2 + test.spr[0].rx;
int HY2 = test.spr[0].hit[0].y2 + test.spr[0].ry;

̴ ߽ǥ ǥ  Ǿ մϴ.
Ź ؼ ϱ ٸ GetHitPos()  ɹԼ   
ϰ.
CSprite.CPPҽ CSprite Ŭ  ؼ ϼ.
ݻڳ 浹  ̸   ֽϴ.
̵  test.spr[0].hitNum Ȥ atckNum  ؼ ˼ ֽϴ.





#   ------------------------------------------------------------------

 ⺻ Ʋ  RLE ̳ ⿡  
LDT(Line Distance Table) ̺ ߰ν    Ŭ   ְ
 Ʈ ̿ Zoom In/Out ϰ Ǿϴ.

ڼ   compspr.cpp .
