SDL2
文章平均质量分 88
Dwyane05
严肃认真,活波可爱。
展开
-
SDL2系列教程1-使用环境搭建
开发环境Ubuntu14.04或Ubuntu16.04, g++, SDL2安装:在Ubuntu下先安装好g++, SDL2,可使用如下命令直接安装sudo apt-get install g++sudo apt-get install libsdl2-dev建议先安装一个代码编辑神器:sublimetext下载地址:https://www.sublimetext.com/...原创 2018-09-30 10:00:30 · 2270 阅读 · 0 评论 -
SDL2系列教程12-类封装SDL_Timer
为方便使用SDL的定时器,实现了类封装:代码如下time.h:#pragma once#include <map>#include <string>#include <SDL.h>class timer { timer(Uint64 s, Uint64 p, bool perf); ~timer(); Ui...原创 2018-10-08 09:16:08 · 828 阅读 · 1 评论 -
SDL2系列教程11-动漫人物小游戏
本机制作一个动漫人物,具有丰富的动作形象;代码讲解定义精灵表结构体struct spritesheet { SDL_Texture* texture; vector<SDL_Rect> sprites; Uint32 lastFrame, lastUpdate;};texture 纹理;sprites 向量存储每个人物的矩形位置;...原创 2018-10-08 09:15:56 · 904 阅读 · 0 评论 -
SDL2系列教程10-扔箱子的抛物线小游戏
在上一节中介绍了定时器的概念,本节基于上节只是制作一个扔箱子的抛物线小游戏。游戏说明:1、单击鼠标左键生成一个矩形箱子;2、箱子以随机的方式生成水平初始速度,可左可右;3、箱子的垂直方向初速度为500,方向向上;4、箱子受到重力大小是7505、箱子在屏幕上显示时间为5秒,会落到底部或飞出窗口;定义结构体struct square { float x, ...原创 2018-09-30 17:12:26 · 1318 阅读 · 0 评论 -
SDL2系列教程9-定时:帧率,物理,动画
定时SDL为计时提供简单但方便的API。时序有许多应用,包括FPS计算和上限,分析程序的哪些部分花费最多时间,以及任何应该基于时间的模拟,例如物理和动画。最基本的计时形式是SDL_GetTicks()。此函数只返回自SDL初始化以来经过的滴答数。一个刻度是一毫秒,是物理模拟和动画的可容忍分辨率。Uint32 ticks = SDL_GetTicks()刻度总是在增加 - SDL不...原创 2018-09-30 16:40:30 · 3196 阅读 · 1 评论 -
SDL2系列教程8-文本渲染和输入
SDL_ttfSDL_ttf为True Type Font(TTF)加载和呈现提供API。它与我们使用的其他扩展程序非常相似。与SDL_mixer一样,SDL_ttf引入了另一种资产结构;TTF_Font。在安装过程是一样的,我们已经使用了其他扩展。文档可以在这里找到。初始化与其他扩展一样,SDL_ttf包括初始化函数TTF_Init()。此功能不带任何参数;只需在程序启动时调...原创 2018-09-30 14:11:04 · 4476 阅读 · 1 评论 -
SDL2系列教程7-声音和扩展库
扩展库虽然SDL为多个系统提供了广泛的API,但它忽略了某些领域,而在其他领域缺乏功能。扩展库解决了这个问题,以模块化方式添加了更多功能。热门扩展:SDL_Image 加载各种类型的图像 SDL_Mixer 提供声音API SDL_TTF 提供字体加载和呈现APISDL_Net 提供网络API SDL_GPU[beta] 替换渲染API SDL_FontCa...原创 2018-09-30 13:55:46 · 2542 阅读 · 1 评论 -
SDL2系列教程6-纹理
创建纹理如上一课所述,纹理是GPU渲染等效于表面。因此,纹理几乎总是使用函数SDL_CreateTextureFromSurface()从曲面创建。这个函数或多或少地做你期望的 - 参数是渲染上下文和从中创建纹理的表面。与其他创建函数一样,它将在失败时返回NULL。以这种方式创建纹理时,数据将被复制到纹理,允许您释放用于加载图像的表面。// create window, render...原创 2018-09-30 11:51:06 · 4157 阅读 · 1 评论 -
SDL2系列教程5-几何渲染
GPU渲染到目前为止,您一直在使用软件或CPU渲染。这意味着要将表面blit到窗口,计算机的CPU必须遍历每个像素,调整并复制值。另一方面,硬件渲染利用了计算机的GPU(图形处理单元)。硬件渲染可以比软件快一个数量级,因为GPU针对这些精确的工作负载进行了优化。GPU不是单独通过像素数据,而是可以并行执行计算,大幅提高吞吐量。渲染器SDL结构SDL_Renderer表示渲染上下文。...原创 2018-09-30 11:37:24 · 2075 阅读 · 0 评论 -
SDL2系列教程4-事件处理
事件循环大多数多媒体程序依靠事件系统来处理输入。SDL为处理输入事件提供了灵活的API。本质上,SDL将来自设备(如键盘,鼠标或控制器)的输入记录为事件,将它们存储在“事件队列”中。您可以将此结构视为等待线 - 事件在线的后面排队并从线的前面取出。在您的程序中,您将始终拥有一个事件(或“游戏”或“主”)循环来处理这些事件并根据输入运行您的程序。每次运行事件循环时,必须从事件队列中拉出每...原创 2018-09-30 11:25:57 · 3240 阅读 · 0 评论 -
SDL2系列教程3-位图
位图和Blitting你以前可能听说过位图; 可能是过时的“.bmp”图像。好吧,位图在技术上只是一种图像存储的格式,其中像素数据由一块内存表示,或者你可以说是一个位图。“bmp”格式表示在标题之后顺序存储每个像素(单色,RGB,RGBA等)的颜色值的图像。其他格式,如“png”和“jpg”仍然是位图,但利用压缩技术来减少文件大小(理想情况下),而不会牺牲图像质量。在软件(CPU)2D渲染...原创 2018-09-30 11:04:11 · 2101 阅读 · 0 评论 -
SDL2系列教程2-初始化&窗口
介绍本节介绍如何使用SDL2(Simple DirectMedia 2)库。它是一个(相对)易于使用的库,可以在不依赖于特定于操作的功能的情况下添加多媒体功能。SDL提供的内容:窗口管理 软件(CPU)和硬件(GPU)渲染2D图形 输入事件系统 时间管理 音频处理 文件IO和库加载 穿线 用于3D图形的OpenGL APISDL有扩展,提供更多功能 - 网络,更好的音频...原创 2018-09-30 10:46:36 · 8042 阅读 · 4 评论 -
SDL_Renderer内存泄漏问题
使用SDL render过程中发现存在内存泄漏问题;使用这个例子可以展示http://lazyfoo.net/tutorials/SDL/07_texture_loading_and_rendering/index.php代码如下:/*This source code copyrighted by Lazy Foo' Productions (2004-2019)and m...原创 2019-01-08 16:13:19 · 2109 阅读 · 1 评论