| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Sprites and textures -> 正文阅读 |
|
[开发工具]Sprites and textures |
系列文章SFML-windows 篇 文章目录一、Vocabulary你们中的大多数人(如果不是所有人)已经熟悉这两个非常常见的对象 texture是一个图像。但我们称之为“ texture”,因为它有一个非常特殊的角色:映射到2D实体。 sprite只不过是一个纹理矩形。 二、Loading a texture在创建任何精灵之前,我们需要一个有效的纹理。令人惊讶的是,在 加载纹理最常见的方法是从磁盘上的图像文件加载纹理,这是通过
loadFromFile函数有时会在没有明显原因的情况下失败。首先,检查SFML打印到标准输出的错误消息(检查控制台)。如果消息是“无法打开文件”,请确保工作目录(即任何文件路径将被解释的相对目录)是您认为的:当您从桌面环境运行应用程序时,工作目录是可执行文件夹。但是,当您从IDE启动程序时(Visual Studio,代码::块,…)工作目录有时可能设置为项目目录。这通常可以在项目设置中很容易地更改。 您还可以从内存
所有这些加载函数都有一个可选参数,如果您想加载图像的较小部分,可以使用该参数。
IntRect类是一个表示矩形的简单实用程序类型。其构造函数采用左上角的坐标和矩形的大小。 如果您不想从图像加载纹理,而是想直接从像素阵列中更新纹理,可以将其创建为空,稍后再更新:
请注意,此时纹理的内容未定义。 要更新现有纹理的像素,必须使用更新功能。它具有多种数据源的重载:
这些示例都假设源与纹理大小相同。如果不是这种情况,即如果只想更新纹理的一部分,可以指定要更新的子矩形的坐标。有关更多详细信息,请参阅文档。 此外,纹理有两个属性,可以更改其渲染方式。 第一个属性允许平滑纹理。平滑纹理会降低像素边界的可视性(但图像会变得更模糊),如果将其放大,这可能是可取的。
第二个属性允许在单个精灵中重复平铺纹理。
三、现在可以拥有我的sprite了吗?Yes, you can now create your sprite.
… 最后画出来。
如果不希望精灵使用整个纹理,可以设置其纹理矩形。
你也可以改变
这些精灵都使用相同的纹理,但颜色不同:
默认情况下,这三个变换的原点是精灵的左上角。如果要将原点设置为不同的点(例如精灵的中心或另一个角),可以使用
由于转换函数对于所有 四、The white square problem您成功加载了纹理,正确构建了精灵,然后。。。你现在在屏幕上看到的是一个白色的正方形。怎么搞的? 这是一个常见的错误。设置精灵的纹理时,它在内部所做的只是存储指向纹理实例的指针。因此,如果纹理被破坏或移动到内存中的其他位置,则精灵最终会使用无效的纹理指针。 编写此类函数时会出现此问题:
你必须正确地管理你的纹理的生命周期,并确保它们在任何精灵使用的时候都有效。 五、The importance of using as few textures as possible使用尽可能少的纹理是一个很好的策略,原因很简单:更改当前纹理对于显卡来说是一项昂贵的操作。绘制多个使用相同纹理的精灵将产生最佳性能。 此外,使用单个纹理可以将静态几何体分组到单个实体中(每次绘制调用只能使用一个纹理),这将比绘制一组多个实体快得多。静态几何体的批处理涉及其他类,因此超出了本教程的范围,有关更多详细信息,请参阅 在创建动画表或平铺集时,请记住这一点:使用尽可能少的纹理。 六、Using sf::Texture with OpenGL code如果您使用的是OpenGL而不是SFML的图形实体,那么仍然可以使用 要绑定用于绘制的
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:46:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |