SDLGameEngine

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

# include/sgesprite.h

Go to the documentation of this file.

    00001 #ifndef _SGESPRITE_H
    00002 #define _SGESPRITE_H
    00003
    00004 #ifdef __cplusplus
    00005 extern "C" {
    00006 #endif
    00007
    00012 /*
    00013  * Copyright (c) 2007 Heiko Irrgang
    00014  *
    00015  * The license and distribution terms for this file may be
    00016  * found in the file COPYING in this distribution or at
    00017  * http://93-interactive.com/cms/products/software/sdl-game-engine/license/
    00018  */
    00019
    00033 typedef struct {
    00035         int x;
    00037         int y;
    00038 } SGESPRITEWAYPOINT;
    00039
    00042 typedef struct {
    00044         int x;
    00046         int y;
    00048         Uint32 currentFrame;
    00050         SGEARRAY *sprite;
    00052         SGEARRAY *wayPoints;
    00054         void *userData;
    00056         int numberOfBanks;
    00058         int currentBank;
    00060         int animate;
    00062         Uint8 alpha;
    00064         float moveSpeed;
    00066         Uint32 framesPerSecond;
    00067         Uint32 lastFrame;
    00068         SGEARRAY *bankSize;
    00069         Uint32 isMoving;
    00070         float fX, fY;
    00071         float dirX, dirY;
    00072         int initialized;
    00073         int initMove;
    00074 } SGESPRITE;
    00075
    00080 SGESPRITE *sgeSpriteNew(void);
    00081
    00092 SGESPRITE *sgeSpriteNewFile(SGEFILE *f, const char *filename);
    00093
    00106 SGESPRITE *sgeSpriteNewFileRange(SGEFILE *f, const char *templ, Uint32 start, Uint32 end);
    00107
    00113 SGESPRITE *sgeSpriteNewSDLSurface(SDL_Surface *surface);
    00114
    00119 void sgeSpriteDestroy(SGESPRITE *s);
    00120
    00126 SGESPRITEIMAGE *sgeSpriteGetCurrentFrame(SGESPRITE *s);
    00127
    00133 void sgeSpriteSetFPS(SGESPRITE *s, Uint32 fps);
    00134
    00140 void sgeSpriteAddSDLSurface(SGESPRITE *s, SDL_Surface *surface);
    00141
    00147 void sgeSpriteAddSpriteImage(SGESPRITE *s, SGESPRITEIMAGE *i);
    00148
    00155 void sgeSpriteAddFile(SGESPRITE *s, SGEFILE *f, const char *name);
    00156
    00169 void sgeSpriteAddFileRange(SGESPRITE *s, SGEFILE *f, const char *templ, Uint32 start, Uint32 end);
    00170
    00176 SDL_Surface *sgeSpriteGetSDLSurface(SGESPRITE *s);
    00177
    00191 void sgeSpriteDraw(SGESPRITE *s, SDL_Surface *dest);
    00192
    00200 void sgeSpriteDrawXY(SGESPRITE *s, int x, int y, SDL_Surface *dest);
    00201
    00213 void sgeSpriteDrawRotoZoomed(SGESPRITE *s, float rotation, float zoom, SDL_Surface *dest);
    00214
    00232 void sgeSpriteDrawXYRotoZoomed(SGESPRITE *s, int x, int y, float rotation, float zoom, SDL_Surface *dest);
    00233
    00240 void sgeAnimatedSpriteUseAlpha(SGESPRITE *s);
    00241
    00249 void sgeAnimatedSpriteIgnoreAlpha(SGESPRITE *s);
    00250
    00260 int sgeSpriteBoxCollide(SGESPRITE *a, SGESPRITE *b);
    00261
    00274 int sgeSpriteCollide(SGESPRITE *a, SGESPRITE *b);
    00275
    00285 int sgeSpriteBoxCollideSpriteImage(SGESPRITE *a, SGESPRITEIMAGE *b);
    00286
    00293 int sgeSpriteCollideSpriteImage(SGESPRITE *a, SGESPRITEIMAGE *b);
    00294
    00300 int sgeSpriteWidth(SGESPRITE *s);
    00301
    00307 int sgeSpriteHeight(SGESPRITE *s);
    00308
    00318 void sgeSpriteAddWayPoint(SGESPRITE *s, int x, int y);
    00319
    00324 void sgeSpriteRemoveNextWayPoint(SGESPRITE *s);
    00325
    00330 void sgeSpriteClearWayPoints(SGESPRITE *s);
    00331
    00340 void sgeSpriteStartMovement(SGESPRITE *s, float speed);
    00341
    00346 void sgeSpriteAbortMovement(SGESPRITE *s);
    00347
    00356 void sgeSpriteMoveTowards(SGESPRITE *s, int x, int y);
    00357
    00363 void sgeSpriteSetUserData(SGESPRITE *s, void *data);
    00364
    00370 void *sgeSpriteGetUserData(SGESPRITE *s);
    00371
    00385 void sgeSpriteUpdatePosition(SGESPRITE *s);
    00386
    00398 void sgeSpriteUpdate(SGESPRITE *s);
    00399
    00405 Uint32 sgeSpriteGetNumberOfFrames(SGESPRITE *s);
    00406
    00412 void sgeSpriteSetNumberOfFrames(SGESPRITE *s, Uint32 number);
    00413
    00419 SGEARRAY *sgeSpriteGetCurrentSpriteArray(SGESPRITE *s);
    00420
    00426 void sgeSpriteSetAnimBank(SGESPRITE *s, Uint32 bank);
    00427
    00435 void sgeSpriteAddAnimBank(SGESPRITE *s);
    00436
    00442 Uint32 sgeSpriteGetAnimBank(SGESPRITE *s);
    00443
    00449 void sgeSpriteAnimate(SGESPRITE *s, int state);
    00450
    00455 void sgeSpriteResetAnimation(SGESPRITE *s);
    00456
    00462 void sgeSpriteForceFrame(SGESPRITE *s, Uint32 frame);
    00463
    00472 SGESPRITE *sgeSpriteDuplicate(SGESPRITE *s);
    00473
    00474 // }@
    00475
    00476 #ifdef __cplusplus
    00477 }
    00478 #endif
    00479
    00480 #endif

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines