- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我是 SFML 的新手。我看了很多帖子,但我真的不明白。我写了一个纹理持有者:
class tile_texture_holder {
private:
sf::Texture tx;
public:
tile_texture_holder(type a) {
switch (a) {
case type::desert:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/desert.png");
break;
case type::grass:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/grass.png");
break;
case type::mountain:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/mountain.png");
break;
case type::water:
tx.loadFromFile("C:/Users/Andreas/source/repos/conquer/Media/water.png");
break;
}
}
sf::Texture ret_texture() {
return tx;
}
~tile_texture_holder() {
std::cout << "///////////////////////HOLDER DELETED!!!/////////////////////" << std::endl;
}
};
我尝试以不同的方式用它加载 Sprite ....
例如:
tile_texture_holder t(type::desert);
sf::Sprite s;
s.setTexture(t.ret_texture());
(在同一个函数中,我画 Sprite 的地方)
我总是得到正在绘制的白框。我真的不明白为什么 texture_holder 会被删除。
顺便说一句,类型是一个枚举。
我希望有人能帮我解决我的问题!
最佳答案
s.setTexture(t.ret_texture());
在上面的行中你有未定义的行为。
ret_texture
返回临时纹理(它按值返回,因此制作了一个拷贝),setTexture
引用它,然后在表达式的末尾临时纹理是销毁并且您在 s
中有悬空引用。
为什么会这样?因为 Sprite
的 setTexture
只保存对纹理的引用,它不会复制它。
The texture argument refers to a texture that must exist as long as the sprite uses it. Indeed, the sprite doesn't store its own copy of the texture, but rather keeps a pointer to the one that you passed to this function.
解决方案:ret_texture
应该通过引用返回纹理。
sf::Texture& ret_texture() {
return tx;
}
关于c++ - SFML 纹理持有者已删除,但仍在范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56582977/
我正在尝试关闭 View 持有者(在编辑文本中搜索后显示的项目列表)。但我找不到合适的功能或方法来做到这一点!有什么帮助吗? 我有一个搜索适配器,我尝试覆盖 onBindViewHolder 并尝试关
我有一个画廊,我想关闭事件的 holder div 并在用户点击它时转到下一个: 问题是,带有文本 1 的 div 持有者没有关闭并转到下一个持有者。我的 JS 有什么问题? $(document).
我在自定义列表适配器中定义了一个 View 持有者 viewHolder.albumArt = (ImageView) convertView.findViewById(R.id.album_art)
我正在使用 viewholder 从动态数组适配器显示。它可以工作,但是当我滚动列表时显示的数据会不规则地变化。我希望我的 ListView 只填充一次,而不是一直填充当我滚动列表时。有什么建议吗?这
我正在通过构建一个应用程序来学习 Kotlin,现在,我正在尝试为我的 RecyclerView 创建一个适配器。但是,我为我的 ViewGroup 选择的名称标记为 Unresolved Refer
我有一些用作 ListView 项目的复合组件。为了提高性能,我使用 View 持有者来渲染我的 ListView 项目,但由于每个项目内部都有一个复合组件,它仍然很慢,并且渲染每个复合组件每次都需要
所以我有 ViewHolders title 和 description,单击它们将执行完全相同的操作。 setOnClickListener 方法在此方法内定义: @Override public
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 4 年前。 package com.exam
我在DataListAdapter中使用了多个viewholder。每个支架都有一个适配器。 我的适配器: public class DataListAdapter extends BaseAdapt
您可以找到大量如何使用 JWT 承载身份验证通过 Azure AD 保护 ASP.Net 应用程序的示例。只需在启动中添加一些有关 AAD 的信息即可,例如: public void Configur
我正在尝试使用 SPA UI 和 Web API 构建一个应用程序,该应用程序使用 Jwt Bearer token 进行访问控制。我可以对用户进行身份验证并将不记名 token 发送到网络请求,但是
TL,DR:我怎样才能强制回收器 View 再次调用 onBindViewHolder 方法,至少对于可见项目? 调用notifyDataSetChanged()会使列表滞后几毫秒,有没有更好的办法?
有没有办法恢复滑动操作并将 View 持有者恢复到其初始位置在滑动完成并且在 ItemTouchHelper 上调用 onSwiped .Callback 实例?我得到了 RecyclerView、I
我想在显示数据时更新 RecyclerView,在我的例子中,我显示带有或不带标签的图像。 默认情况下,我在创建 View 持有者时设置标签的可见性,这很好,但我希望用户在显示 RecyclerVie
我想检查来自服务器的数据是否为空。如果不为 null,则在我的例子中填充回收器 View 项是 CardView,如果它为 null,则根本不显示 CardView。 在我的回收站 View 适配器中
我的应用程序中有一系列以前称为 listView 的东西,现在是 RecyclerView。我很好奇提高模块化和减少我应用程序这一部分重复的最有效方法。 例如,我有 GroupMemberFragme
i have create custom list view using base adapter to dynamic row content.row content are created pro
我有一个 WebAPI 2 项目,它使用由 IdentityServer3 token 提供商颁发的 token 。在我的 Startup.cs 文件中,我实现了 IdentityServerBear
我正在制作一个应用程序,我在其中从 url 接收一些 JSON 数据,如所示 Image .基本上每个日期数组中都有 5 个对象,我正在使用这段代码从每个日期数组中获取 session 值和 sess
我知道,如果我在 Activity 或 Fragment 中订阅一个可观察对象,我应该将它绑定(bind)到它们各自的生命周期,使用 rxlifecycle-components or rxlifec
我是一名优秀的程序员,十分优秀!