当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : SDL游戏编程2
帖子发表于 : 2007-05-26 0:09 

注册: 2007-02-03 9:12
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
用SDL显示一个图片(图片是MM哦)
代码:
#include <SDL.h>
#include <stdio.h>
   
//显示一张妹妹的图片,嘻嘻,但愿不要打哦^.^

int main(int argc, char ** argv)
{
   SDL_Surface * screen; //主表面
   SDL_Surface * image; //用来放MM-----的图片信息(像素)
   SDL_Event     event;
   
   bool bAppRun = true;
   //初始化SDL
   if (SDL_Init(SDL_INIT_VIDEO) == -1) {
      fprintf(stderr, "SDL_Init %s\n", SDL_GetError());
      return -1;
   }
   
   //初始化成功设置退出要调用的函数SDL_Quit
   atexit(SDL_Quit);
   
   //创建一个640X480 16-bit 模式的主表面 16位可以让MM的效果好看一点
   screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
   if (screen == NULL) {
      fprintf(stderr, "Couldn't set 640x480x8 video mode %s\n",
         SDL_GetError());
      return -1;
   }
   
   //读取MM图片信息,并创建一个表面,并把数据填入该表面中。
   image = SDL_LoadBMP("./mm.bmp"); //请在终端里运行该程序
   if (image == NULL) {
      fprintf(stderr, "Couldn't load MM, %s\n", SDL_GetError()); //遗憾你不能显示MM了,不过你可以用图片浏览程序看。
      return -1;
   }
   
   //有了MM的表面了,就可以显示了。
   //将MM的表面画在我们的主表面上
   if (SDL_BlitSurface(image, NULL, screen, NULL) < 0) {
      //解释一下NULL,第一个是按照image的尺寸显示,第二个是默认显示。你也可以指定大小,不过要用到SDL_Rect你可以看一看帮助。
      fprintf(stderr, "BlitSurface error: %s\n", SDL_GetError()); //看看提示吧
      return -1;
   }
   
   //好了更新显示画出MM
   SDL_UpdateRect(screen, 0, 0, image->w, image->h);
   
   while (bAppRun) {
      //消息循环
      if (SDL_PollEvent(&event)) {
         switch (event.type) {
            case SDL_KEYDOWN:
               //按下任意键退出
               bAppRun = false;
            break;
         }
      }
      //没事就画MM玩
      SDL_UpdateRect(screen, 0, 0, image->w, image->h);
   }
   
   //退出了程序释放MM表面的资源
   SDL_FreeSurface(image);
   
   return 0;
}

makefile内容
代码:
t2: main.o
   g++ -o t2 main.o `sdl-config --libs`

main.o: main.cpp
   g++ -c main.cpp `sdl-config --cflags`


附件:
t2.tar.gz [114.34 KiB]
被下载 131 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-06-05 14:18 

注册: 2006-07-10 17:40
帖子: 44
送出感谢: 0 次
接收感谢: 0 次
必须得顶了 我现在也学这个库呢。多交流阿
我的信箱地址是 dinghui1314@gmail.com


页首
 用户资料  
 
3 楼 
 文章标题 : Re: SDL游戏编程2
帖子发表于 : 2012-05-08 17:10 

注册: 2012-04-07 22:13
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
写的很详细,我们开始课程设计。。。。一个星期完成,谢谢你写的教程


页首
 用户资料  
 
4 楼 
 文章标题 : Re: SDL游戏编程2
帖子发表于 : 2012-05-08 18:13 

注册: 2011-06-27 0:57
帖子: 190
送出感谢: 7
接收感谢: 2
这都是坟了啊……


_________________
我的github: https://github.com/fy0


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译