SDL游戏编程2

C、C++和Java语言
回复
rayfox
帖子: 39
注册时间: 2007-02-03 9:12
送出感谢: 0
接收感谢: 0

SDL游戏编程2

#1

帖子 rayfox » 2007-05-26 0:09

用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) 下载 143 次
dinghwy
帖子: 44
注册时间: 2006-07-10 17:40
送出感谢: 0
接收感谢: 0

#2

帖子 dinghwy » 2007-06-05 14:18

必须得顶了 我现在也学这个库呢。多交流阿
我的信箱地址是 dinghui1314@gmail.com
星空愷
帖子: 1
注册时间: 2012-04-07 22:13
送出感谢: 0
接收感谢: 0

Re: SDL游戏编程2

#3

帖子 星空愷 » 2012-05-08 17:10

写的很详细,我们开始课程设计。。。。一个星期完成,谢谢你写的教程
fy0
帖子: 190
注册时间: 2011-06-27 0:57
送出感谢: 7 次
接收感谢: 2 次

Re: SDL游戏编程2

#4

帖子 fy0 » 2012-05-08 18:13

这都是坟了啊……
回复

回到 “C/C++/Java”