免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1945 | 回复: 0
打印 上一主题 下一主题

SDL系列教程(二):配置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-26 11:09 |只看该作者 |倒序浏览
SDL系列教程(二):hello,the world

作者:akinggw

朋友们,欢迎来到SDL的游戏世界。SDL是一个游戏开发库,如果你还不知道SDL是什么,请参考SDL系列教程(一),那里有详细的描述。
在这一章中,我们将真正的开始编程了。在开始进入奇妙的程序世界之前,我们将把准备工具备好。
需要那些工具呢?如果你拥有自己的电脑或者在办公室,学校使用电脑。你首先需要的是一个编译器,我使用的是VC6.0。为了便于你学习的更快,我也建议你使用它。但是你如果说你没有电脑,在网吧中上网,那我建议你使用DEV-C++。
DEV C++是一个优秀的开源软件,你可以在很多地方找到它,如果你还是找不到,那也许下面的地址对你有用(
http://software.ty.sx.cn/soft/1120.html
)。为了更好的编译,你最好下载版本号为4.9.9.2。
在以后的教程中,我将用这两种工具来编译程序,大家可以根据自己的需要选择相应的版本。
好,我想你已经下载或安装好了编译器吧!

那就让我们开始吧。

要使用SDL,首先必须下载SDL函数库,现在SDL的最高版本是1.2. 到SDL的官方网站(
http://www.libsdl.org
),然后你会在网页的左下脚发现一个叫下载(Download)的栏目,在下面有一个SDL 1.2,点击它,你就会来到下面的界面:


而我们需要的就是在红框中圈着的那个文件,点击它,然后下载到你电脑的任何一个地方。
如果你还没有找到SDL函数库,下面的地址也许对你有用:
http://www.libsdl.org/download-1.2.php

我们下面将讲解如何在VC6中设置它:

首先,双击刚才我们下载的那个文件,然后解压到任何的一个目录下。
A.            将我们刚才解压后子目录lib下的SDL.lib,SDLmain.lib拷贝到VC6所在的lib子目录下。VC6的lib子目录在:C:Program FilesMicrosoft Visual StudioVC98Lib。
B.             然后在VC6的include子目录下建立一个新的文件夹,并命名SDL。
C.            将我们刚才解压后的SDL库文件下的子目录include中的全部文件拷贝到我们刚才在VC6的include目录下建的SDL目录中。
D.            最后将SDL库文件下子目录lib中的SDL.dll文件拷贝到C:WINDOWSSYSTEM32。这样做的好处就是以后写SDL程序时,程序能随时找到它,并得以运行。
E.             下面我们打开VC6,打开”file”->Projects选项,建立一个Win32 项目:



然后电击“OK”,到下面的页面:




这里,我们选择一个空的项目。点“Finish”按钮,这时会出现一个对话框,询问你是否真的决定为一个空的项目。选”OK“。

接下来,在VC6主面板中选择“Project”->”Setting”选项。


在C/C++表,在“Category"中设置成"Code Generation",在"Use run-time library"下设置成multithreaded dll。



最后选择“Link”表,在Object/Library modules后面添加SDL.lib,SDL_main.lib



到这里,我们算是配置完成。

下面我们要建一个C++源文件,点击"File",在"File"选择“C++ source file”.




然后在文件中拷贝下面的代码:

#include
#include
#include
#include
#include


SDL_Surface *screen = NULL;       //屏幕接口


int main( int argc, char* args[] )   //主程序
{
    char *msg;                       // 得到系统消息
    int done;                        

   
    /* 初始化SDL */
    if (SDL_Init (SDL_INIT_VIDEO)
    {
        sprintf (msg, "不能初始化 SDL: %sn", SDL_GetError ());
        MessageBox (0, msg, "Error", MB_ICONHAND);
        free (msg);
        exit (1);
    }
    atexit (SDL_Quit);  

    /* 设置 640x480 16-bits 图象模式 */
    screen = SDL_SetVideoMode (640, 480, 16, SDL_SWSURFACE | SDL_DOUBLEBUF);
   
    if (screen == NULL)
    {
        sprintf (msg, "不能设置成 640x480x16 图象模式: %sn",
          SDL_GetError ());
        MessageBox (0, msg, "Error", MB_ICONHAND);
        free (msg);
        exit (2);
    }
   
    /*设置SDL窗口标题 */
    SDL_WM_SetCaption ("hello,the world", NULL);
   
    done = 0;
   
    //游戏循环 done=1时退出,done=0时继续
    while (!done)
    {
        SDL_Event event;

        /* Check for events */
        while (SDL_PollEvent (&event))
        {
            switch (event.type)
            {
            case SDL_KEYDOWN:
                break;
            case SDL_QUIT:
                done = 1;
                break;
            default:
                break;
            }
        }

    }
    SDL_Quit();
    return 0;   
}

如果运行成功,它将显示一个空的窗口。
如图所示:



到现在为止,我们的程序算是完成了。

关于更多内容请访问金桥科普网站(
http://popul.jqcq.com
  )游戏开发栏目,如果你需要游戏开发方面的书籍请参考金桥书城游戏频道(
http://book.jqcq.com/category/1_70_740.html
)。 如果你在阅读本篇文章时有什么好的建议请来信给我,我的E_mail: akinggw@126.com. 如果你在使用SDL时有什么问题,请到金桥科普网站(
http://popul.jqcq.com
  )游戏开发栏目,我将详细地为你解答。

在下一章中,我们将讲解如何在dev c++中配置SDL。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19671/showart_118358.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP