打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SDL历程--课程设计之图片加载

紧接上一章我们说的显示文字,这一节我们在探讨下怎样在SDL_Surface上显示一张图片
废话就不多说了...直接切入正题..在这个步骤中我们要用到的基本函数有
SDL_Surface * SDLCALL IMG_Load(const char *file);
函数参数为图片文件名,
细心地人一定会问一个问题,怎么这个图片也是一个SDL_Sruface*呀,没错,就是一个SDL_Sruface*
我们在我们自己的屏幕上显示出来图片就是将这张图片贴在我们自己的屏幕上,其实到现在大家应该可以理解
电影的播放情况了吧..也就是每秒切换多少张图片,
那么我们的具体步骤是什么呢:?
1.初始化一个SDL_VIDEO,建立我们自己的SDL_Sruface*
2.加载图片,再次生成一个SDL_Sruface*
SDL_Surface *pic = IMG_Load(const char *file);
3.将图片的SDL_Surface  贴在屏幕的  SDL_Sruface上
SDL_BlitSurface(pic,0,screen,0);
4.刷新屏幕,这个可以至少有两种不同的方法的,我就不再在这里累述了...
5.释放资源,这个一定不要忘了...切忌,编程一定要养成一个好的习惯,好的习惯是成功的一半。

#include <SDL.h>
#include <SDL_gfxPrimitives.h>
#include <SDL_image.h>
#include <SDL_rotozoom.h>
#include <SDL_ttf.h>
#include <stdio.h>

int main(int argc,char *argv[])
{
 if(SDL_Init(SDL_INIT_VIDEO) < 0 || TTF_Init() < 0 )
 {
  printf("Init error\n");
  return -1;
 }
 SDL_Surface *screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
 if(!screen)
 {
  printf("Init video mode error\n");
  return -1;
 }
 SDL_Surface *pic = IMG_Load("sample.bmp");
 if(!pic)
 {
  printf("Load bmp error\n");
  return -1;
 }
 SDL_BlitSurface(pic,0,screen,0);
 SDL_UpdateRect(screen,0,0,0,0);
 SDL_FreeSurface(pic);
 SDL_Delay(2000);
 TTF_Quit();
 SDL_Quit();
 return 0;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SDL Lib笔记 (一) 基本框架
SDL使用
100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)
PIC16F877A DS18B20数字温度计实验
乔布斯哭了!败给华为vivo,连续三季度业绩下滑,库克正让苹果成为下一个诺基亚!
gcc编译参数-fPIC的一些问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服