⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 SDL_Draw chinese test
💻 CPP
字号:
//UVi Soft (2008)
//Long Fei (lf426), E-mail: zbln426@163.com

#include "SurfaceClass.h"
#include "string_data.h"

int game(int argc, char* argv[]);
int main(int argc ,char* argv[])
{
	int mainRtn = 0;
	try {
		mainRtn = game(argc, argv);
	}
	catch ( const ErrorInfo& info ) {
		info.show();
		return -1;
	}
	
	return mainRtn;
}

int game(int argc ,char* argv[])
{
	//Create a SDL screen.
	const int SCREEN_WIDTH = 640;
	const int SCREEN_HEIGHT = 480;
	const std::string WINDOW_NAME = "Key Presses";
	ScreenSurface screen(SCREEN_WIDTH, SCREEN_HEIGHT, WINDOW_NAME);
	//Fill background.(default is black)
	screen.fillColor();
	screen.flip();

	//Load a textSurface
	StringData myData;
	const std::string uInfo = myData[0];
	const std::string dInfo = myData[1];
	const std::string lInfo = myData[2];
	const std::string rInfo = myData[3];
	const std::string oInfo = myData[4];
	TextSurface upMessage("upMsg", uInfo, screen);
	TextSurface downMessage("downMsg", dInfo, screen, 0xFF, 0, 0);
	TextSurface leftMessage("leftMsg", lInfo, screen, 0, 0xFF, 0);
	TextSurface rightMessage("rightMsg", rInfo, screen, 0, 0, 0xFF);
	TextSurface otherMessage("otherMsg", oInfo, screen, 100, 100, 100, 35);
	
	//Main loop.Press ESC or click X to quit.
	bool gameOver = false;
	SDL_Event gameEvent;
	int x = 200;
	int y = 200;
    while( gameOver == false ){
        while ( SDL_PollEvent(&gameEvent) != 0 ){
			if ( gameEvent.type == SDL_KEYDOWN ){
				screen.fillColor(70, 70, 70);
				switch ( gameEvent.key.keysym.sym ){
					case SDLK_UP:
						upMessage.blit(x, y--);
						break;
					case SDLK_DOWN:
						downMessage.blit(x, y++);
						break;
					case SDLK_LEFT:
						leftMessage.blit(x--, y);
						break;
					case SDLK_RIGHT:
						rightMessage.blit(x++, y);
						break;
					default:
						screen.fillColor();
						otherMessage.blit(x, y);
				}
				screen.flip();
			}
            if ( gameEvent.type == SDL_QUIT ){
                gameOver = true;
            }
            if ( gameEvent.type == SDL_KEYUP ){
                if ( gameEvent.key.keysym.sym == SDLK_ESCAPE ){
                    gameOver = true;
                }
            }
        }
	}

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -