Quote: "1. How to restart the program? Just restart and reload all files."
While I have never actually done this, you could make a simple program for it. Have it as a separate executable, then call it in your code before terminating the program. For example, have both MAIN_PROGRAM.exe and MAIN_RESTART.exe, when needed to restart, have something like this;
dbExecuteFile( "MAIN_RESTART.exe", "whatever CL options", "..", 1 );
return 0;
This will run MAIN_RESTART.exe upon exiting the program. Then, once the program has exited, MAIN_RESTART.exe would fire up, doing something like;
dbExecuteFile( "MAIN_PROGRAM.exe", "whatever CL options", ".." );
// INSERT OTHER FILE CODE HERE
return 0;
which would execute the MAIN_PROGRAM.exe immediately as well as do any other functions you would need done.
Of course, I may be over-complicating the matter =P
Quote: "2. How to make texts with a sprite sheet? The Dark Invaders' code offseted the sprite sheet. (the text sprite sheet will contain all ASCII chars including invisible ones before 20.(or the InvaderText code without offsetting UV map)"
Like jinzai said, just use a paintlike program to offset the letters however you want. I suggest GraphicsGale free edition as it has some nice inbuilt grids.
Cheers!
Tux is my guildmaster.