#ArtAssets/ milisec Transparency
#filename pause r g b xOffset yOffset ( collisionType <Circle has offset, radius | rectangle has offset, width, height>, ... )
NumFrames: 4
-sun1.bmp 20 0 0 255 0.0 0.0 ( n )
-sun2.bmp 20 0 0 255 0.0 0.0 ( n )
-sun3.bmp 20 0 0 255 0.0 0.0 ( n )
-sun4.bmp 20 0 0 255 0.0 0.0 ( n )
+sun1.bmp 20 0 0 255 0.0 0.0 ( c 0.0 0.0 0.0 )
+sun2.bmp 20 0 0 255 0.0 0.0 ( c 0.0 0.0 0.0 )
+sun3.bmp 20 0 0 255 0.0 0.0 ( c 0.0 0.0 0.0 )
+sun4.bmp 20 0 0 255 0.0 0.0 ( c 0.0 0.0 0.0 )
#ArtAssets/ milisec Transparency
#filename pause r g b xOffset yOffset ( <n | c | r> <Circle has offset, radius | rectangle has offset, width, height>, ... )
NumFrames: 9
-viking1.bmp 50 0 255 0 0.0 0.0 ( n )
-viking2.bmp 50 0 255 0 0.0 0.0 ( c 0.0 0.0 3.0 )
-viking3.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 5.0 3.0 )
-viking4.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 5.0 3.0 r -6.0 3.0 5.0 5.0 )
-viking5.bmp 50 0 255 0 0.0 0.0 ( n )
-viking6.bmp 50 0 255 0 0.0 0.0 ( n )
-viking7.bmp 50 0 255 0 0.0 0.0 ( n )
-viking8.bmp 50 0 255 0 0.0 0.0 ( n )
-viking9.bmp 50 0 255 0 0.0 0.0 ( n )
+viking1.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
+viking2.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
+viking3.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
+viking4.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 r -6.0 3.0 5.0 5.0 )
+viking5.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
+viking6.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
+viking7.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
+viking8.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
+viking9.bmp 50 0 255 0 0.0 0.0 ( r 0.0 0.0 150.0 100.0 )
void Sprite::draw()
{
+ //Frame so we don't have to find it so often
+ SpriteFrame frame = mActor.mAnimations[mActor.mCurrentAnimation]->mAnim[mActor.mFrame];
if(mAnimating == 1) {
- if(mLastUpdate+mActor.mAnimations[mActor.mCurrentAnimation]->mAnim[mActor.mFrame].pause*mSpeed<SDL_GetTicks()) {
+ if(mLastUpdate+frame.pause*mSpeed<SDL_GetTicks()) {
//obtain current peg
- Point2D ppos = mActor.mAnimations[mActor.mCurrentAnimation]->mAnim[mActor.mFrame].animationPeg;
+ Point2D ppos = frame.animationPeg;
mActor.mFrame++;
if(mActor.mFrame > mActor.mAnimations[mActor.mCurrentAnimation]->mNumFrames-1)
mActor.mFrame=0;
+ //update frame so we don't need to worry
+ frame = mActor.mAnimations[mActor.mCurrentAnimation]->mAnim[mActor.mFrame];
//obtain next peg
- Point2D npos = mActor.mAnimations[mActor.mCurrentAnimation]->mAnim[mActor.mFrame].animationPeg;
+ Point2D npos = frame.animationPeg;
//move current position to difference of two
mPos.add(ppos - npos);
mLastUpdate = SDL_GetTicks();
dest.x = mPos.x;
dest.y = mPos.y;
if(mVisible == true)
- SDL_BlitSurface(mActor.mAnimations[mActor.mCurrentAnimation]->mAnim[mActor.mFrame].image,NULL,mScreen,&dest);
+ SDL_BlitSurface(frame.image,NULL,mScreen,&dest);
if(Game::game()->ShowCollisions)
- drawCollisions(mActor.mAnimations[mActor.mCurrentAnimation]->mAnim[mActor.mFrame].collisionData, mPos);
+ drawCollisions(frame.collisionData, frame.animationPeg);
}
ZOrder(z),
mVisible(true)
{}
- virtual void draw(Point2D& pos) = 0;/**< Draws the Object. */
+ virtual void draw() = 0;/**< Draws the Object. */
void drawCollisions(vector<Collision*>& vec, Point2D& pos);/**< Draws Collision data for the Object */
void xadd(int num) {mPos.x += num;}/**< Increase x coordiante by a given amount. */
void yadd(int num) {mPos.y += num;}/**< Increase y coordinate by a given amount. */