SDL Game Development-第2章-1.BMP的原样显示
来源:互联网 发布:win ubuntu 双系统 编辑:程序博客网 时间:2024/06/06 18:53
第二章 Drawing in SDL
介绍的内容:1.SDL绘制基础
2.源和目的矩形区域
3.装入和显示纹理
4.使用SDL_image扩展
注:在SDL1.2版本中,使用SDL_Surface表面结构,它使用的是软渲染,没有使用GPU,速度不够快。
SDL2.0中使用SDL_Texture,可以使用硬件加速
图片素材下载地址:http://www.widgetworx.com/spritelib.html
注:再还没有引入SDL_image库之前,图片素材使用.bmp格式
一、创建一个SDL纹理
//在Game.h中,添加一个SDL_Texture对象的指针,作为成员变量。还有源框和目的框位置变量SDL_Texture* m_pTexture;SDL_Rect m_srcRect;SDL_Rect m_destRect;
//在Game.cpp的init中装入纹理
1.在源代码目录中,创建一个assets的目录,用来保存素材。如图,随便找一个图片,转为bmp格式。200*132大小
//装入图片,形成绘制纹理SDL_Surface* pTempSurface = SDL_LoadBMP("assets/show2.BMP");//最好是检查图片是否存在,或装载有无错误if(pTempSurface == 0){ std::cout << "BMP load fail\n"; return false; //图片装载失败}//转换为显存中的纹理m_pTexture = SDL_CreateTextureFromSurface(m_pRenderer, pTempSurface);//释放临时表面SDL_FreeSurface(pTempSurface);//查询图片的高宽,为绘制作准备SDL_QueryTexture(m_pTexture, NULL, NULL, &m_srcRect.w, &m_srcRect.h);//然后设置需要绘制到屏幕的位置和高宽。以下代码是使用原图片高宽m_destRect.x = m_srcRect.x = 0;m_destRect.y = m_srcRect.y = 0;m_destRect.w = m_srcRect.w;m_destRect.h = m_srcRect.h; std::cout << "init success\n"; m_bRunning = true; //所有初始都成功,可以开始主循环了 return true;
3.在render()中,添加需要渲染的BMP
void Game::render(){ SDL_RenderClear(m_pRenderer); //清屏 //绘制纹理对象 SDL_RenderCopy(m_pRenderer, m_pTexture, &m_srcRect, &m_destRect); SDL_RenderPresent(m_pRenderer); //双缓冲翻转,新内容显示到屏幕上}
编译运行:结果如图
0 0
- SDL Game Development-第2章-1.BMP的原样显示
- SDL Game Development-第2章-2.剪裁式显示BMP
- SDL Game Development-第1章-笔记
- SDL Game Development-第2章-4.使用SDL_image库操作更多格式的图片
- SDL Game Development-第2章-3.利用角色表产生动画
- SDL Game Development-第2章-5.实现纹理管理器Texture Manager
- SDL Game Development-第3章-1.实现游戏对象管理器(1)Working with Game Objects
- SDL Game Development-第四章(1)-移动
- sdl显示bmp
- SDL 显示bmp图片
- 一个最简单的sdl显示图片例子sdl example sdl 例子 例程SDL贴图bmp
- SDL Game Development-第四章(2)-输入处理2-处理鼠标移动
- SDL Game Development-第四章(2)-输入处理-创建处理类
- SDL入门教程(三):2、显示一张BMP位图。
- SDL入门教程(三):2、显示一张BMP位图。
- 移植SDL到JZ2440显示BMP图片
- SDL显示的使用
- MFC下用sdl 显示bmp、rgb、yuv
- 五十三 wifi配置工具
- avr 单片机的开发环境
- new Handler().postDelayed() 延迟intent跳转
- 07-s:if 标签判断Action中的字段是否为null或者空字符串的方法
- 一切皆可复用
- SDL Game Development-第2章-1.BMP的原样显示
- 用MFC视频控件播放视频
- Fiddler用法之拦截替换
- thinkphp 独立分组公共控制器
- NGINX部署图片服务器
- Extjs4.0实现文件下载
- Exception Name: No result defined for action XXXAction and result input
- Android软键盘 隐藏or显示
- c语言字符串与整数之间的转换