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;
}




     本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/833361,如需转载请自行联系原作者



相关文章
|
6月前
[笔记]音视频学习之SDL篇《十四》简单的动画
[笔记]音视频学习之SDL篇《十四》简单的动画
|
存储 缓存 图形学
ABC动画插件Alembic从浅入深(Unity3D)
今天分享一下Alembic插件的使用教程,这个插件的主要作用就是将.abc文件导入到Unity,然后进行播放。 .abc文件主要是影像业界使用的数据格式,用于存储巨大的顶点缓存数据。 Alembic插件就是转化这些影像资料和动力学等的模拟结果转换为顶点缓数 据为Unity可以使用的文件
|
6月前
[笔记]音视频学习之SDL篇《十三》播放音乐和特效
[笔记]音视频学习之SDL篇《十三》播放音乐和特效
|
6月前
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解(3)
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解
|
6月前
|
uml
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解(1)
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解
195 0
|
6月前
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解(2)
CocosCreator3.8研究笔记(二十一)CocosCreator Tween系统理解
|
编解码 JavaScript 前端开发
揭秘Vue3官方教材动画制作过程,一文教会大家做代码演示GIF!
VueMastery是Vue官方推荐的视频课程平台。VueMastery的视频课程讲解非常透彻,PPT也是制作精良,恰当的动画能帮我们更快速的理解视频中的知识点。
339 0
揭秘Vue3官方教材动画制作过程,一文教会大家做代码演示GIF!
|
Java C# vr&ar
手把手带你使用Paint in 3D和Photon撸一个在线涂鸦画板
Paint in 3D用于在游戏内和编辑器里绘制所有物体。所有功能已经过深度优化,在WebGL、移动端、VR 以及更多平台用起来都非常好用! 它支持标准管线,以及 LWRP、HDRP 和 URP。通过使用GPU 加速,你的物体将以难以置信的速度被绘制。代码还经过深度优化来防止GC,和将所有绘制操作一起批次完成。 跟贴图系统不同,它是一个纹理绘制解决方案。这意味着你可以绘制你的物体上百万次,还是无帧率丢失,让你创作难以想象的游戏。
594 0
手把手带你使用Paint in 3D和Photon撸一个在线涂鸦画板

热门文章

最新文章