Hi MissJoJo,
One thing I would suggest is to start using comments in your code. You divide various chunks of code with asterisks but I didn't see a single line of actual comments to hint at what the code blocks do. In a small app like this a lot of the code may seem self explanatory as you wrok on it, but returning to it months from now will be much easier if you have documented what the functions and such achieve.
Another area that you may wish to explore is condensing of repetitive code and making use of user defined types. For instance, rather than using unique global variable names for every single image, sprite and text object, you may consider creating a generic array or user type array to allocate and keep track of the resources. This way, you can create a for loop and within that loop you only need to make a single call to the various sprite/text positioning functions rather than copying and pasting those lines for every element. A sample of looping through such an array may be:
For i = 0 To spritecnt
SetSpritePosition(spr[i].id, spr[i].x, spr[i].y)
SetSpriteColor(spr[i].id, spr[i].r, spr[i].g, spr[i].b, spr[i].a)
SetSpriteVisible(spr[i].id, 0)
Next i
In this example, you would create a user-defined type that can store the sprite's id, position and color data. After creating an array of this custom type, you can give each one custom properties but still do all the positioning and sprite updating in one go. See
this page for more details.
Also, if you are only using images for a single sprite, you can take shortcuts without explicitly defining the image in a separate variable. Example: mySpr = CreateSprite(LoadImage("myimg.png"))