第一范文网 - 专业文章范例文档资料分享平台

使用SDL打造游戏世界之入门篇 - 图文

来源:用户分享 时间:2025/5/24 14:41:27 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

仍然是Link属性页,选择Category中的Input,在'Additional library path'文本框中填写..\\SDL-1.2.8\\lib\\,如图8所示。

图8

这样我们就完成了编程前的设置工作,不过这是针对Debug版本的,如果要设置Release版本,需要选择Build->Set Active Configuration,选择Release,然后再次如上配置一次。

下面我们正式开始编程,将E:\\tutorial\\SDL-1.2.8\\lib\\SDL.dll拷贝到gp文件夹下,然后给gp工程增加一个C++文件main.cpp。如图9所示。

图9

将以下代码拷贝到main.cpp并保存。

#include #if defined(_MSC_VER) #include \#else #include \#endif SDL_Surface *screen; void render() { // 独占资源,将surface 锁定 if (SDL_MUSTLOCK(screen)) if (SDL_LockSurface(screen) < 0) return; // 获取当前时间,以毫秒计时 int tick = SDL_GetTicks(); // 声明变量 int i, j, yofs, ofs; // 对窗口进行绘制 yofs = 0; for (i = 0; i < 480; i++) { for (j = 0, ofs = yofs; j < 640; j++, ofs++) { ((unsigned int*)screen->pixels)[ofs] = i * i + j * j + tick; } yofs += screen->pitch / 4; } // 解除锁定 if (SDL_MUSTLOCK(screen)) SDL_UnlockSurface(screen); // 使用SDL对窗口进行更新 SDL_UpdateRect(screen, 0, 0, 640, 480); } // Entry point int main(int argc, char *argv[]) { // 初始化SDL子系统,这里只对视频进行初始化 if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, \exit(1); } // 注册SDL_Quit,当退出时调用,使得退出时程序自动清理 atexit(SDL_Quit); // 使用32位象素创建640x480的窗口 screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE); // 若失败,则退出 if ( screen == NULL ) { fprintf(stderr, \SDL_GetError()); exit(1); } // 主循环 while (1) { // Render stuff render(); // SDL中的事件轮询机制 SDL_Event event; while (SDL_PollEvent(&event)) { //对消息进行处理 switch (event.type) { // 如果按下某键的消息响应 case SDL_KEYDOWN: break; //如果某键按下后弹起的消息响应 case SDL_KEYUP: //若按下ESC键,则退出 if (event.key.keysym.sym == SDLK_ESCAPE) return 0; break; //退出消息响应 case SDL_QUIT: return(0); } } } return 0; }

对工程gp进行编译,可以看看动态水波纹的效果了:) 如图10所示。

搜索更多关于: 使用SDL打造游戏世界之入门篇 - 图文 的文档
使用SDL打造游戏世界之入门篇 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9rrkl1cslt1is530736v_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top