Posted: 21st Sep 2011 23:19
Hi

Is there a limit to the number of frames AppGameKit can work with? I've got two animated sprites at the moment, with 15 frames each but the second won't work with all 15 frames. It's crashes until I comment out any 5 of the frames. It's not a problem with the files as like I say it works when I comment out any 5. I can cut down the sprite to use less frames if there is a limit but just wanted to check if it's a bug or as expected. If 25 frames is the maximum allowed across multiple sprites than that kind of limits the number of animated sprites you can have.

Here's my code

+ Code Snippet
    masterCardDeleteSprite = CreateSprite(0)
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-001.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-002.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-003.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-004.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-005.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-006.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-007.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-008.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-009.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-010.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-011.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-012.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-013.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-014.png"))
    addSpriteAnimationFrame(masterCardDeleteSprite, loadImage("largeCards/cardToDelete-015.png"))
    setSpriteVisible(masterCardDeleteSprite, 0)
    setSpriteDepth(masterCardDeleteSprite, 2000)
    setSpritePosition(masterCardDeleteSprite, -150, -150)

    masterCardSelectSprite = CreateSprite(0)
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-001.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-002.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-003.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-004.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-005.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-006.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-007.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-008.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-009.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-010.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-011.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-012.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-013.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-014.png"))
    addSpriteAnimationFrame(masterCardSelectSprite, loadImage("largeCards/cardToSelect-015.png"))
    setSpriteVisible(masterCardSelectSprite, 0)
    setSpriteDepth(masterCardSelectSprite, 2000)
    setSpritePosition(masterCardSelectSprite, -150, -150)
Posted: 21st Sep 2011 23:37
Well, the obvious suggestion is to combine the images into a sprite sheet and use AGK's SetSpriteAnimation() command to set up the frames.

But that won't do anything about a possible bug. The problem may be related to this bug.
Posted: 21st Sep 2011 23:44
I've just thought myself that it might be related to the number of sprites that are using these 30 frame animations, there's at least 40. I can probably cut down the number of sprites using these animations to about 20-25.

I've not used a spritesheet before so will look into it to see if that makes a difference. And I'll look to see if the number of lines is causing a problem.

I'm constantly finding AppGameKit crashing until I comment out a line, type some extra lines below it, uncomment the original line and then delete the extra lines. Alot of the crashes just seem random!
Posted: 22nd Sep 2011 0:00
A sprite sheet will help a lot, but you could also put the create and load commands in loops instead of calling each one by itself.

Something like

+ Code Snippet
masterCardDeleteSprite = CreateSprite(0)
for n = 1 to 15

    filename$ = "largeCards/cardToSelect-0"

    if n < 10 then filename$ = filename$ + "0"

    filename$ = filename$ + str(n) + ".png"

    addSpriteAnimationFrame(masterCardSelectSprite, loadImage(filename$))

next n
Posted: 22nd Sep 2011 0:07
Thanks for the code. I was going to look at that too but you saved me writing it After reading through your thread I commented out some more of the frames and then added in 40 print("a") lines and that crashed so my problem is the number of commands/lines that's the problem and not the animations.

I'm constantly re-writing my code to get it working with less lines but will have another look through to see what I can reduce until the bug has been fixed.
Posted: 23rd Sep 2011 8:23
I think you can use the Image utility to make related Images to one image.It's convenient.