大家注意到没有
![](/icons/82593dou.gif)
![](/icons/82593de.gif)
![](/icons/82593de.gif)
![](/icons/82593dou.gif)
![](/icons/82593yi.gif)
![](/icons/82593de.gif)
![](/icons/82593de.gif)
![](/icons/82593dou2.gif)
GBK
![](/icons/82593de.gif)
![](/icons/82593zifu.gif)
![](/icons/82593dou.gif)
![](/icons/82593dou2.gif)
![](/icons/82593de.gif)
![](/icons/82593dou.gif)
![](/icons/82593de.gif)
![](/icons/82593dou2.gif)
![](/icons/82593yinwei.gif)
![](/icons/82593de.gif)
![](/icons/82593zifu.gif)
![](/icons/82593dou.gif)
![](/icons/82593dou.gif)
![](/icons/82593de.gif)
![](/icons/82593zifu.gif)
![](/icons/82593dou2.gif)
我在UCDOS for win版本里面找到了GBK
![](/icons/82593de.gif)
![](/icons/82593dou2.gif)
![](/icons/82593yi.gif)
![](/icons/82593dou.gif)
![](/icons/82593dou2.gif)
![](/icons/82593de.gif)
![](/icons/82593yi.gif)
![](/icons/82593chengxu.gif)
![](/icons/82593dou.gif)
![](/icons/82593chengxu.gif)
![](/icons/82593dou2.gif)
![](/icons/82593dou.gif)
![](/icons/82593dou.gif)
![](/icons/82593dou2.gif)
![](/icons/82593chengxu.gif)
![](/icons/82593cuowu.gif)
![](/icons/82593dou2.gif)
#
![](/icons/82593include.gif)
#
![](/icons/82593include.gif)
#
![](/icons/82593include.gif)
#
![](/icons/82593include.gif)
#
![](/icons/82593include.gif)
#
![](/icons/82593include.gif)
#
![](/icons/82593include.gif)
//---------------------------------------------------------------------------
#
![](/icons/82593define.gif)
#
![](/icons/82593define.gif)
SDL_Surface *screen;
U
![](/icons/82593int.gif)
U
![](/icons/82593int.gif)
U
![](/icons/82593int.gif)
![](/icons/82593static.gif)
![](/icons/82593int.gif)
SDL_Event event;
SDL_Surface * SetMode(
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
SDL_Surface * LoadBMP( char * filename );
void MainLoops(
![](/icons/82593int.gif)
![](/icons/82593int.gif)
void Blt( SDL_Surface * image,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
void TileBlt( SDL_Surface * image,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
void SetTransparentColor( SDL_Surface * sprite,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
void IoRedirect( );
void cleanup_output( );
void initfps
![](/icons/82593kh.gif)
//---------------------------------------------------------------------------
U
![](/icons/82593int.gif)
U
![](/icons/82593int.gif)
U
![](/icons/82593int.gif)
BOOL HZ_Init
![](/icons/82593kh.gif)
BOOL HZ_TextOut( SDL_Surface * image,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
//---------------------------------------------------------------------------
![](/icons/82593int.gif)
void DrawFrame( );
SDL_Surface * bg, * font;
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
WINAPI WinMain(HINSTANCE hInstPre, HINSTANCE hInstance, LPSTR cmd,
![](/icons/82593int.gif)
{
char TimeString[256];
time_t timer;
struct tm *tblock;
HZ_Init
![](/icons/82593kh.gif)
IoRedirect( );
frames = 0;
timer = time(NULL);
tblock = localtime(&timer);
strftime( TimeString, 256, \"Time=%Z: %Y-%m-%d %a %H:%M:%S\", tblock );
pr
![](/icons/82593int.gif)
SetMode( Width, Height, bpp, SDL_SWSURFACE|ScreenMode );
SDL_ShowCursor(0);
SDL_WM_SetCaption( \"demo\", \"demo\" );
bg = IMG_Load( \".\\\\2k_bg.g
![](/icons/82593if.gif)
font = IMG_Load( \".\\\\small.g
![](/icons/82593if.gif)
InitFont(font);
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 127 );
ix=iy=0;
jx=jy= Height>>1;
srand( (U
![](/icons/82593int.gif)
MainLoops( ProcessEvent, DrawFrame, 0 );
pr
![](/icons/82593int.gif)
![](/icons/82593return.gif)
}
![](/icons/82593int.gif)
{
U
![](/icons/82593int.gif)
keystate = SDL_GetKeyState( NULL );
![](/icons/82593if.gif)
![](/icons/82593return.gif)
![](/icons/82593if.gif)
{
![](/icons/82593if.gif)
ScreenMode = 0;
![](/icons/82593else.gif)
ScreenMode = SDL_FULLSCREEN;
SetMode( Width, Height, bpp, SDL_SWSURFACE|ScreenMode );
initfps( );
}
![](/icons/82593return.gif)
}
void DrawFrame( )
{
char tmp[256];
![](/icons/82593int.gif)
//
spr
![](/icons/82593int.gif)
TileBlt( bg, 0, 0 );
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 4 );
PutString( screen, ix % Width - 6, iy % Height - 6, tmp );
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 8 );
PutString( screen, ix % Width - 5, iy % Height - 5, tmp );
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 16 );
PutString( screen, ix % Width - 4, iy % Height - 4, tmp );
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 32 );
PutString( screen, ix % Width - 3, iy % Height - 3, tmp );
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 64 );
PutString( screen, ix % Width - 2, iy % Height - 2, tmp );
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 128 );
PutString( screen, ix % Width - 1, iy % Height - 1, tmp );
SDL_SetAlpha( font, SDL_SRCALPHA|SDL_RLEACCEL, 192 );
PutString( screen, ix % Width, iy % Height, tmp );
PutString( screen, ix % Width, iy % Height + 40, tmp );
![](/icons/82593if.gif)
{
jx = rand( ) % ( Width - 10 );
jy = rand( ) % ( Height - 10 );
}
spr
![](/icons/82593int.gif)
PutString( screen, 7, 7, tmp );
//聞波
![](/icons/82593dou.gif)
HZ_TextOut( screen, 10, 300, 16, 0, \"十步殺
![](/icons/82593yi.gif)
![](/icons/82593dou.gif)
HZ_TextOut( screen, 10, 318, 14, 0, \"十步殺
![](/icons/82593yi.gif)
![](/icons/82593dou.gif)
HZ_TextOut( screen, 10, 334, 12, 0, \"十步殺
![](/icons/82593yi.gif)
![](/icons/82593dou.gif)
ix
![](/icons/82593jiadeng.gif)
iy
![](/icons/82593jiadeng.gif)
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
SDL_Surface * SetMode(
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
{
/* Initialize the SDL library */
![](/icons/82593if.gif)
{
fpr
![](/icons/82593int.gif)
![](/icons/82593return.gif)
}
/* Clean up _disibledevent=>
![](/icons/82593if.gif)
![](/icons/82593dd.gif)
{
fpr
![](/icons/82593int.gif)
![](/icons/82593set.gif)
}
![](/icons/82593return.gif)
}
//---------------------------------------------------------------------------
void initfps( )
{
AppStartTime = SDL_GetTicks
![](/icons/82593kh.gif)
frame_count = 0;
}
//---------------------------------------------------------------------------
void MainLoops(
![](/icons/82593int.gif)
![](/icons/82593int.gif)
{
![](/icons/82593if.gif)
{
mem
![](/icons/82593set.gif)
![](/icons/82593sizeof.gif)
initfps( );
while( EventFunc( ) )
{
SDL_PollEvent(&event);
![](/icons/82593if.gif)
![](/icons/82593dd.gif)
{
![](/icons/82593if.gif)
![](/icons/82593dd.gif)
( event.active.gain
![](/icons/82593dd.gif)
initfps( );
}
SDL_PumpEvents
![](/icons/82593kh.gif)
DrawFunc( );
SDL_UpdateRect(screen,0, 0, 0, 0);
frame_count
![](/icons/82593jiajia.gif)
frames
![](/icons/82593jiajia.gif)
fps = frame_count * 1000 / ( SDL_GetTicks( ) - AppStartTime );
![](/icons/82593if.gif)
}
}
}
//---------------------------------------------------------------------------
SDL_Surface * LoadBMP( char * filename )
{
SDL_Surface * imagebmp, * image;
imagebmp = SDL_LoadBMP( filename );
![](/icons/82593if.gif)
![](/icons/82593dd.gif)
![](/icons/82593return.gif)
![](/icons/82593if.gif)
{
SDL_SetColors( screen, imagebmp->format->palette->colors, 0, imagebmp->format->palette->ncolors );
}
/* Convert the image to the video format (maps colors) */
image = SDL_DisplayFormat( imagebmp );
SDL_FreeSurface( imagebmp );
![](/icons/82593return.gif)
}
//---------------------------------------------------------------------------
void Blt( SDL_Surface * image,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
{
![](/icons/82593int.gif)
![](/icons/82593if.gif)
![](/icons/82593if.gif)
SDL_Rect dest, src;
/* out of screen */
![](/icons/82593if.gif)
( x + image->w < 1 ) || ( y + image->h < 1 ) )
![](/icons/82593return.gif)
src.x = 0;
src.y = 0;
src.w = image->w;
src.h = image->h;
dest.x = x;
dest.y = y;
dest.w = src.w;
![](/icons/82593if.gif)
{
src.y = 0 - y;
src.h = image->h + src.y;
dest.y = 0;
}
dest.h = src.h;
SDL_BlitSurface( image, &src, screen, &dest );
}
//---------------------------------------------------------------------------
void TileBlt( SDL_Surface * image,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
{
![](/icons/82593int.gif)
![](/icons/82593if.gif)
![](/icons/82593if.gif)
SDL_Rect dest, src;
sh
![](/icons/82593if.gif)
sh
![](/icons/82593if.gif)
![](/icons/82593if.gif)
![](/icons/82593if.gif)
![](/icons/82593if.gif)
![](/icons/82593if.gif)
![](/icons/82593if.gif)
![](/icons/82593if.gif)
Row = screen->h / image->h + 2;
Col = screen->w / image->w + 2;
dest.x = 0;
dest.y = 0;
dest.w = image->w;
dest.h = image->h;
src.x = 0;
src.y = 0;
src.w = image->w;
src.h = image->h;
for ( r = 0; r < Row; r
![](/icons/82593jiajia.gif)
{
![](/icons/82593if.gif)
{
src.y = 0;
src.h = image->h;
dest.h = image->h;
dest.y = image->h * r + sh
![](/icons/82593if.gif)
}
![](/icons/82593else.gif)
{ /* first line ? */
src.y = 0 - sh
![](/icons/82593if.gif)
src.h = image->h;
dest.h = image->h + sh
![](/icons/82593if.gif)
dest.y = 0;
}
for ( c = 0; c < Col; c
![](/icons/82593jiajia.gif)
{
dest.x = image->w * c + sh
![](/icons/82593if.gif)
SDL_BlitSurface( image, &src, screen, &dest );
}
}
}
//---------------------------------------------------------------------------
void SetTransparentColor( SDL_Surface * sprite,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
{
SDL_SetColorKey( sprite, SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB( sprite->format, R, G, B ) );
}
//---------------------------------------------------------------------------
/* Remove the output files
![](/icons/82593if.gif)
![](/icons/82593static.gif)
{
FILE *file;
![](/icons/82593int.gif)
/* Flush the output in
![](/icons/82593case.gif)
fclose(stdout);
fclose(stderr);
/* See
![](/icons/82593if.gif)
file = fopen(STDOUT_FILE, \"rb\");
![](/icons/82593if.gif)
{
empty = (fgetc(file)
![](/icons/82593dd.gif)
fclose(file);
![](/icons/82593if.gif)
remove(STDOUT_FILE);
}
file = fopen(STDERR_FILE, \"rb\");
![](/icons/82593if.gif)
{
empty = (fgetc(file)
![](/icons/82593dd.gif)
fclose(file);
![](/icons/82593if.gif)
remove(STDERR_FILE);
}
}
//---------------------------------------------------------------------------
void IoRedirect( )
{
FILE *
![](/icons/82593new.gif)
/* Redirect standard standard output */
![](/icons/82593new.gif)
![](/icons/82593if.gif)
![](/icons/82593new.gif)
![](/icons/82593dd.gif)
{ /* This happens _disibledevent=>#
![](/icons/82593else.gif)
![](/icons/82593new.gif)
![](/icons/82593if.gif)
![](/icons/82593new.gif)
![](/icons/82593new.gif)
#end
![](/icons/82593if.gif)
}
/* Redirect standard standard error */
![](/icons/82593new.gif)
![](/icons/82593if.gif)
![](/icons/82593new.gif)
![](/icons/82593dd.gif)
{ /* This happens _disibledevent=>#
![](/icons/82593else.gif)
![](/icons/82593new.gif)
![](/icons/82593if.gif)
![](/icons/82593new.gif)
![](/icons/82593new.gif)
#end
![](/icons/82593if.gif)
}
![](/icons/82593set.gif)
![](/icons/82593set.gif)
atexit(cleanup_output);
}
//---------------------------------------------------------------------------
BOOL HZ_Init
![](/icons/82593kh.gif)
{
FILE * file;
file = fopen( \".\\\\HZK16.GBK\", \"rb\" );
fread( HZK16, 32, 0x5d84, file );
fclose( file );
file = fopen( \".\\\\HZK14.GBK\", \"rb\" );
fread( HZK14, 28, 0x5d84, file );
fclose( file );
file = fopen( \".\\\\HZK12.GBK\", \"rb\" );
fread( HZK12, 24, 0x5d84, file );
fclose( file );
![](/icons/82593return.gif)
}
//---------------------------------------------------------------------------
BOOL HZ_TextOut( SDL_Surface * image,
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593int.gif)
{
U
![](/icons/82593int.gif)
U
![](/icons/82593int.gif)
U
![](/icons/82593int.gif)
![](/icons/82593int.gif)
![](/icons/82593set.gif)
unsigned char q;
unsigned char w;
switch ( width )
{
![](/icons/82593case.gif)
HZK = HZK12;
![](/icons/82593break.gif)
![](/icons/82593case.gif)
HZK = HZK14;
![](/icons/82593break.gif)
![](/icons/82593case.gif)
HZK = HZK16;
![](/icons/82593break.gif)
default:
![](/icons/82593return.gif)
}
bufptr = (unsigned char*)image->pixels;
m = strlen( str );
for ( k = 0; k < m; k
![](/icons/82593jiadeng.gif)
{
U
![](/icons/82593int.gif)
q = str[k];
w = str[k+1];
![](/icons/82593if.gif)
{
M = 0x5e;
Y = w - 0xa1;
![](/icons/82593if.gif)
{
X = q - 0xa1;
Z = 0;
}
![](/icons/82593else.gif)
{
X = q - 0x81;
Z = 0x2284;
}
}
![](/icons/82593else.gif)
{
M = 0x60;
![](/icons/82593if.gif)
![](/icons/82593else.gif)
![](/icons/82593if.gif)
{
X = q - 0xa1;
Z = 0x3a44;
}
![](/icons/82593else.gif)
{
X = q - 0x81;
Z = 0x2e44;
}
}
memcpy( Bits, HZK + ( X * M + Y + Z ) * width * 2, width * 2 );
for ( i = 0; i < width; i
![](/icons/82593jiajia.gif)
{
U
![](/icons/82593int.gif)
line = Bits[ i ];
line = ( line >> 8 ) + ( line << 8 );
for ( j = 0; j < 16 ; j
![](/icons/82593jiajia.gif)
{
![](/icons/82593int.gif)
![](/icons/82593int.gif)
index = off
![](/icons/82593set.gif)
mask <<= j;
![](/icons/82593if.gif)
{
bufptr[ index * 2 ] = 0xff;
bufptr[ index * 2 + 1 ] = 0xff;
}
}
}
off
![](/icons/82593set.gif)
![](/icons/82593jiadeng.gif)
}
![](/icons/82593return.gif)
}
//---------------------------------------------------------------------------
最新评论