文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>SDL入门教程(九):5、文本反馈鼠标位置坐标信息

SDL入门教程(九):5、文本反馈鼠标位置坐标信息

时间:2010-12-27  来源:landuochong

注意事项:
1、times.ttf文件请到C:\WINDOWS\Fonts下寻找并拷贝到资源目录下。
2、 如果您使用VC2008,请用Release编译。原因是,似乎涉及到vector的操作,Runtime Library在debug的时候必须用Multi-theaded Debug DLL (MDd),而Release时候才用Multi-theaded DLL (MD)。而我们亲爱的SDL必须始终用MD,所以,请Release吧。

这是一个检验TextSurface构造函数和析构函数的好例子。我们每一次的鼠标移动,都会导致一个新的TextSurface对象被建立,然后很快的又消亡。

源代码:
//UVi Soft (2008)
//Long Fei (lf426), E-mail: [email protected]

#include "SurfaceClass.h"
#include "int_to_string.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 = "Mouse Motion";
    ScreenSurface screen(SCREEN_WIDTH, SCREEN_HEIGHT, WINDOW_NAME);
    //Fill background.(default is black)
    screen.fillColor();
    screen.flip();
    
    //Main loop.Press ESC or click X to quit.
    bool gameOver = false;
    SDL_Event gameEvent;
    int x;
    int y;
    while( gameOver == false ){
        while ( SDL_PollEvent(&gameEvent) != 0 ){
            if ( gameEvent.type == SDL_MOUSEMOTION ) {
                x = gameEvent.motion.x;
                y = gameEvent.motion.y;
                std::string mouse_at = "Mouse at: ";
                mouse_at += ("x = " + int_to_string(x) + "; y = " + int_to_string(y) + ";");
                TextSurface text("text", mouse_at, screen);
                screen.fillColor();
                text.blit();
                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;
}
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载