bjadams... Not sure if this helps, but what I tend to do is just let it loop... And then just stop it yourself when it reaches the last frame... For example:
+ Code Snippet#include "template.h"
using namespace AGK;
app App;
int testsprite;
void app::Begin(void)
{
agk::SetVirtualResolution (1024, 768);
agk::SetResolutionMode (1);
agk::SetOrientationAllowed (0, 0, 1, 1);
agk::SetSyncRate(60,0);
agk::Print("Loading.....");
agk::Sync();
testsprite = agk::CreateSprite (agk::LoadImage ("spritesheet.png"));
agk::SetSpriteAnimation(testsprite, 372, 430, 37);
agk::SetSpriteOffset (testsprite, 215, 235);
agk::SetSpriteFrame(testsprite, 1);
agk::SetSpriteShape (testsprite, 3);
agk::SetSpritePositionByOffset (testsprite, 500, 570);
agk::PlaySprite (testsprite, 2, 1, 27, 37); // play from frames 27 to 37 **CHANGE THIS TO LOOP**
}
void app::Loop (void)
{
if (agk::GetSpriteCurrentFrame(testsprite) == 37)
{
agk::StopSprite (testsprite); // **STOP PLAYING AT FRAME 37**
agk::SetSpriteFrame(testsprite, 1); // **SET FRAME TO 1**
}
agk::Print(agk::ScreenFPS());
agk::Sync();
}
void app::End (void)
{
}
Thats always worked for me anyway...