我看到的所有访问纹理对象的示例都是执行以下操作:
let img = Texture::from_path(...)
这给人的印象是,为了拥有一组纹理,它应该类似于let mut images: Vec<Texture>;
,但from_path
返回一个Result<Texture<R>, String>
.
并且它Texture<R>
确实阻碍了它。为了能够制作一个Texture<R>
,需要大量的crates
和use ...
是完全错误的。
是正确的事情:
let loaded_textures:Vec<Option<T>> = Texture::from_path(...)
或者拉动活塞拥有的几乎所有东西?或者是其他东西?
我的目标是拥有
struct Drawables {
obj_name: &'static str,
image: Texture<gfx_device_gl::Resources>, // or something else
}
let mut my_objects: Vec<Drawable>;
fn LoadDrawables(window: &mut PistonWindow) -> Vec<Drawable> {
let assets = find_folder::Search::ParentsThenKids(3, 3)
.for_folder("assets")
.unwrap();
let img1 = assets.join("some_img0.png");
let img1 = Texture::from_path(
&mut window.factory,
&img1,
Flip::None,
&TextureSettings::new(),
).unwrap();
let img2 = assets.join("some_img1.png");
let img2 = Texture::from_path(
&mut window.factory,
&img2,
Flip::None,
&TextureSettings::new(),
).unwrap();
vec![
Drawable {
obj_name: "orc",
image: rogue,
},
Drawable {
obj_name: "bat",
image: floor,
},
]
}
我试图避免拉入的板条箱是gfx_device_gl
. 包含这个创建感觉是错误的,如果我已经包含了诸如活塞之类的游戏引擎,它似乎有点低水平。