Well this is how I understand it:
1. You are right that gifs are not supported by dark GDK.
2. When loding an image there are two things to remember first where is your image. If you look at the Getting started tutorial you will see that all the images are in the folder Getting started. So to load those images you would put.
dbLoadImage("Image.png",1);
Now for instance in my project I have a folder called "Images" where i put everything so my load image looks like this:
dbLoadImage("Images//Image.png",40);
3. Next thing to remember when loading an image is what type of image it is: jpg,png etc..
Note: jpg doesn't have alpha so normally stick with png.
4. Now the priority of the sprite doesn't matter with loading the image it comes when you draw the sprite.
So lets say I want to have one big background drawing that will cover my whole screen for the entire game. If you are going to do this then you have to draw that image first. so for example:
void DarkGDK ( void )
{
/////first load your images////////
dbLoadImage("BackGroundImage.png",1);////*Make sure that their Image IDs are all different. This is what you reference when you want to draw them*///
dbLoadImage("Character.png",2);
dbLoadImage("Enemy.png",3);
dbSyncOn ( );
dbSyncRate (60);
while ( LoopGDK ( ) )
{
//Now you want to draw your images and I put it in the loop because more than likely you are going to want to update there positions.///
dbSprite(1,PositionX,PositionY, 1);//Now the first ID is the sprites ID and you want that to be able to reference individual sprites because more than likely you are going to have multiple enemies using the same image.
The next two are its position in pixels. and the last parameter is what image you want it to draw which is what we set up when we loaded are image.
Now as you can see the first image I am drawing is the background because if I were to draw it last then it would be the last thing drawn to the screen and then it would cover the character and the enemy. ///
dbSprite(2,PositionX,PositionY, 2);
dbSprite(3,PositionX,PositionY, 3);
dbSync();
}
//return back to windows
return;
}
Now another way to make sure that the drawing order is the way that you want it to be. Use another function called dbSetSpritePriority ( int iSprite, int iPriority ). If you read the documentation it tells you how it works which is this:
Quote: "This command will set the relative priority of the specified sprite. All sprites start with a value of zero giving them equal chance of being drawn last. By setting a single sprite a value of one will cause that sprite to be drawn last. You can specify a unique priority value for each sprite creating an order of drawing for every sprite in your program. "
Now this post is getting a little long so I will just cut it there but look into the documentation on animated sprites as well because ther are different functions to use like dbCreateAnimatedSprite(). If after looking at the documentation on those and you still have some questions I will be more than happy to help.
Hope this helps.