fyrox update

This commit is contained in:
artem 2024-01-22 21:22:14 +03:00
parent 760a76a3e6
commit a1ca80c8cc
7 changed files with 177 additions and 114 deletions

48
Cargo.lock generated
View File

@ -207,6 +207,15 @@ version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
[[package]]
name = "bincode"
version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
dependencies = [
"serde",
]
[[package]] [[package]]
name = "bindgen" name = "bindgen"
version = "0.69.1" version = "0.69.1"
@ -951,14 +960,14 @@ dependencies = [
[[package]] [[package]]
name = "fyrox" name = "fyrox"
version = "0.32.1" version = "0.32.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
checksum = "c0f789108c271c0b593b7b7ad9bc24ff3a00cf72a91efd82997bf8dda9fbd4dd"
dependencies = [ dependencies = [
"bitflags 2.4.1", "bitflags 2.4.1",
"clap", "clap",
"ddsfile", "ddsfile",
"fast_image_resize", "fast_image_resize",
"fxhash", "fxhash",
"fyrox-animation",
"fyrox-core", "fyrox-core",
"fyrox-core-derive", "fyrox-core-derive",
"fyrox-resource", "fyrox-resource",
@ -977,7 +986,6 @@ dependencies = [
"rayon", "rayon",
"ron", "ron",
"serde", "serde",
"spade",
"strum", "strum",
"strum_macros", "strum_macros",
"tbc", "tbc",
@ -985,15 +993,27 @@ dependencies = [
"winit", "winit",
] ]
[[package]]
name = "fyrox-animation"
version = "0.1.0"
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
dependencies = [
"fxhash",
"fyrox-core",
"spade",
"strum",
"strum_macros",
]
[[package]] [[package]]
name = "fyrox-core" name = "fyrox-core"
version = "0.26.0" version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
checksum = "6c18752435c86ea9cbd58ecad958ceaa6accccc5fd070c3a613de3c8d7dd2d57"
dependencies = [ dependencies = [
"android-activity", "android-activity",
"arrayvec", "arrayvec",
"base64", "base64",
"bincode",
"bitflags 2.4.1", "bitflags 2.4.1",
"byteorder", "byteorder",
"futures", "futures",
@ -1019,8 +1039,7 @@ dependencies = [
[[package]] [[package]]
name = "fyrox-core-derive" name = "fyrox-core-derive"
version = "0.21.0" version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
checksum = "790f5b126d3777c465960bcf0e8ec13ee0aa638f6f7be66bb37fdd1c83e584f2"
dependencies = [ dependencies = [
"convert_case", "convert_case",
"darling", "darling",
@ -1033,20 +1052,20 @@ dependencies = [
[[package]] [[package]]
name = "fyrox-resource" name = "fyrox-resource"
version = "0.10.0" version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
checksum = "bfc35a102aed1ebc318039f6a1f5a8d1562616ef00e7065f525c0cc2efc3bc13"
dependencies = [ dependencies = [
"fxhash", "fxhash",
"fyrox-core", "fyrox-core",
"rayon",
"ron", "ron",
"serde", "serde",
"walkdir",
] ]
[[package]] [[package]]
name = "fyrox-sound" name = "fyrox-sound"
version = "0.33.0" version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
checksum = "f93ca4e7a568494507a2f30b3726b74a63b199986caf670812d9414f0a208e2f"
dependencies = [ dependencies = [
"fyrox-core", "fyrox-core",
"fyrox-resource", "fyrox-resource",
@ -1063,13 +1082,13 @@ dependencies = [
[[package]] [[package]]
name = "fyrox-ui" name = "fyrox-ui"
version = "0.23.0" version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
checksum = "941c34403f7c791ef351eaa6b74ce5655558980a6efa036451a9a0578bd3ab45"
dependencies = [ dependencies = [
"copypasta", "copypasta",
"fontdue", "fontdue",
"fxhash", "fxhash",
"fyrox-core", "fyrox-core",
"fyrox-resource",
"lazy_static", "lazy_static",
"notify", "notify",
"serde", "serde",
@ -1081,8 +1100,7 @@ dependencies = [
[[package]] [[package]]
name = "fyroxed_base" name = "fyroxed_base"
version = "0.19.0" version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
checksum = "4acc2d4e8fc5e96057ad85ea1ec6c5f2e7f988b53b18648083133dcb816110e8"
dependencies = [ dependencies = [
"fyrox", "fyrox",
"lazy_static", "lazy_static",

View File

@ -4,9 +4,10 @@ members = ["editor", "executor", "executor-wasm", "executor-android", "game"]
resolver = "2" resolver = "2"
[workspace.dependencies.fyrox] [workspace.dependencies.fyrox]
version = "0.32.0" git = "https://github.com/FyroxEngine/Fyrox"
[workspace.dependencies.fyroxed_base] [workspace.dependencies.fyroxed_base]
version = "0.19.0" git = "https://github.com/FyroxEngine/Fyrox"
# Optimize the engine in debug builds, but leave project's code non-optimized. # Optimize the engine in debug builds, but leave project's code non-optimized.
# By using this technique, you can still debug you code, but engine will be fully # By using this technique, you can still debug you code, but engine will be fully

View File

@ -348,6 +348,10 @@ function __wbg_get_imports() {
imports.wbg.__wbindgen_object_drop_ref = function(arg0) { imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
takeObject(arg0); takeObject(arg0);
}; };
imports.wbg.__wbindgen_is_undefined = function(arg0) {
const ret = getObject(arg0) === undefined;
return ret;
};
imports.wbg.__wbindgen_cb_drop = function(arg0) { imports.wbg.__wbindgen_cb_drop = function(arg0) {
const obj = takeObject(arg0).original; const obj = takeObject(arg0).original;
if (obj.cnt-- == 1) { if (obj.cnt-- == 1) {
@ -357,10 +361,6 @@ function __wbg_get_imports() {
const ret = false; const ret = false;
return ret; return ret;
}; };
imports.wbg.__wbindgen_is_undefined = function(arg0) {
const ret = getObject(arg0) === undefined;
return ret;
};
imports.wbg.__wbindgen_object_clone_ref = function(arg0) { imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
const ret = getObject(arg0); const ret = getObject(arg0);
return addHeapObject(ret); return addHeapObject(ret);
@ -474,6 +474,9 @@ function __wbg_get_imports() {
const ret = getObject(arg0).Window; const ret = getObject(arg0).Window;
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbg_webkitExitFullscreen_51924dedcb0cfce0 = function(arg0) {
getObject(arg0).webkitExitFullscreen();
};
imports.wbg.__wbg_webkitFullscreenElement_7cc38bee61c82f9b = function(arg0) { imports.wbg.__wbg_webkitFullscreenElement_7cc38bee61c82f9b = function(arg0) {
const ret = getObject(arg0).webkitFullscreenElement; const ret = getObject(arg0).webkitFullscreenElement;
return isLikeNone(ret) ? 0 : addHeapObject(ret); return isLikeNone(ret) ? 0 : addHeapObject(ret);
@ -856,6 +859,9 @@ function __wbg_get_imports() {
const ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2)); const ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2));
return addHeapObject(ret); return addHeapObject(ret);
}, arguments) }; }, arguments) };
imports.wbg.__wbg_exitFullscreen_b5d53ae882b17a5c = function(arg0) {
getObject(arg0).exitFullscreen();
};
imports.wbg.__wbg_style_97c680a5cbdf49cd = function(arg0) { imports.wbg.__wbg_style_97c680a5cbdf49cd = function(arg0) {
const ret = getObject(arg0).style; const ret = getObject(arg0).style;
return addHeapObject(ret); return addHeapObject(ret);
@ -1599,68 +1605,68 @@ function __wbg_get_imports() {
const ret = wasm.memory; const ret = wasm.memory;
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper10077 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper10078 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper10079 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_37);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper10080 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper10081 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper10081 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_32); const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper10082 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper10082 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_44); const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper10083 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper10083 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_32); const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_37);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper17896 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper10084 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 13689, __wbg_adapter_49); const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper19745 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper10085 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52); const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper19746 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper10086 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52); const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_44);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper19747 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper10087 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52); const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper19748 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper17900 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_59); const ret = makeMutClosure(arg0, arg1, 13692, __wbg_adapter_49);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19749 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19750 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper19751 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper19751 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52); const ret = makeMutClosure(arg0, arg1, 14506, __wbg_adapter_52);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper19879 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper19752 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14574, __wbg_adapter_68); const ret = makeMutClosure(arg0, arg1, 14506, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19753 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14506, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19754 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14506, __wbg_adapter_59);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19755 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14506, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19756 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14506, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19757 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14506, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper19885 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 14577, __wbg_adapter_68);
return addHeapObject(ret); return addHeapObject(ret);
}; };

View File

@ -1,19 +1,19 @@
//! Game project. //! Game project.
use fyrox::{ use fyrox::{
monitor::MonitorHandle, window::Fullscreen,
engine::GraphicsContext,
keyboard::PhysicalKey, keyboard::PhysicalKey,
asset::manager::ResourceManager, asset::manager::ResourceManager,
core::{pool::Handle, uuid::Uuid, TypeUuidProvider, log::Log}, core::{pool::Handle, uuid::Uuid, TypeUuidProvider, log::Log, impl_component_provider},
event::{ElementState, Event, WindowEvent, TouchPhase}, event::{ElementState, Event, WindowEvent, TouchPhase},
keyboard::KeyCode, keyboard::KeyCode,
gui::message::UiMessage, gui::message::UiMessage,
impl_component_provider,
plugin::{Plugin, PluginConstructor, PluginContext, PluginRegistrationContext}, plugin::{Plugin, PluginConstructor, PluginContext, PluginRegistrationContext},
scene::{ scene::{
Scene, Scene,
graph::Graph, graph::Graph,
}, },
script::{ScriptContext, ScriptTrait}, script::{ScriptContext, ScriptTrait}, raw_window_handle::HasWindowHandle,
}; };
use std::path::Path; use std::path::Path;
mod map; mod map;
@ -39,7 +39,20 @@ impl ScriptTrait for Player {
fn on_start(&mut self, _context: &mut ScriptContext) {} fn on_start(&mut self, _context: &mut ScriptContext) {}
// Called whenever there is an event from OS (mouse click, keypress, etc.) // Called whenever there is an event from OS (mouse click, keypress, etc.)
fn on_os_event(&mut self, event: &Event<()>, _context: &mut ScriptContext) { fn on_os_event(&mut self, event: &Event<()>, context: &mut ScriptContext) {
if let Event::Resumed{} = event{
if let GraphicsContext::Initialized(ref graphics_context) = context.graphics_context {
let window_size = graphics_context.window.inner_size();
}
// // Option 2: Use true exclusive full screen mode.
// if let Some(monitor) = graphics_context.window.current_monitor() {
// if let Some(first_avilable_video_mode) = monitor.video_modes().next() {
// graphics_context
// .window
// .set_fullscreen(Some(Fullscreen::Exclusive(first_avilable_video_mode)));
// }
// }
}
if let Event::WindowEvent { event, .. } = event { if let Event::WindowEvent { event, .. } = event {
if let WindowEvent::KeyboardInput { event, .. } = event { if let WindowEvent::KeyboardInput { event, .. } = event {
if let PhysicalKey::Code(keycode) = event.physical_key { if let PhysicalKey::Code(keycode) = event.physical_key {
@ -100,10 +113,6 @@ impl ScriptTrait for Player {
self.loop_over(context); self.loop_over(context);
} }
// Returns unique script ID for serialization needs.
fn id(&self) -> Uuid {
Self::type_uuid()
}
} }
impl PluginConstructor for GameConstructor { impl PluginConstructor for GameConstructor {
@ -143,8 +152,20 @@ impl Plugin for Game {
// Add your global update code here. // Add your global update code here.
} }
fn on_os_event(&mut self, _event: &Event<()>, _context: PluginContext) { fn on_os_event(&mut self, event: &Event<()>, context: PluginContext) {
// Do something on OS event here. if let Event::Resumed{} = event{
if let GraphicsContext::Initialized(ref graphics_context) = context.graphics_context {
let window_size = graphics_context.window.inner_size();
}
// // Option 2: Use true exclusive full screen mode.
// if let Some(monitor) = graphics_context.window.current_monitor() {
// if let Some(first_avilable_video_mode) = monitor.video_modes().next() {
// graphics_context
// .window
// .set_fullscreen(Some(Fullscreen::Exclusive(first_avilable_video_mode)));
// }
// }
}
} }
fn on_ui_message(&mut self, _context: &mut PluginContext, _message: &UiMessage) { fn on_ui_message(&mut self, _context: &mut PluginContext, _message: &UiMessage) {

View File

@ -1,54 +1,67 @@
use fyrox::{ use fyrox::{
material::shader::{SamplerFallback},
asset::manager::ResourceManager, asset::manager::ResourceManager,
core::{algebra::Vector3, math::Rect, visitor::Visit},
core::sstorage::ImmutableString,
material::{Material, PropertyValue, MaterialResource},
resource::texture::Texture, resource::texture::Texture,
core::{algebra::Vector3, math::Rect},
scene::{ scene::{
base::BaseBuilder, base::BaseBuilder,
graph::Graph,
transform::TransformBuilder,
rigidbody::RigidBodyType,
dim2::{ dim2::{
collider::{ColliderBuilder, ColliderShape, CuboidShape}, rectangle::RectangleBuilder, rigidbody::RigidBodyBuilder, collider::{ColliderBuilder, ColliderShape, CuboidShape},
rectangle::RectangleBuilder,
rigidbody::RigidBodyBuilder,
}, },
graph::Graph,
rigidbody::RigidBodyType,
transform::TransformBuilder,
}, },
}; };
// /mnt/23154027-2dd3-43ea-93f1-02a8df7a3c5a/projects/fyrox/platformer/assets/data/tiles/ // /mnt/23154027-2dd3-43ea-93f1-02a8df7a3c5a/projects/fyrox/platformer/assets/data/tiles/
// //
pub fn build_map(graph: &mut Graph, resource_manager: &ResourceManager) { pub fn build_map(graph: &mut Graph, resource_manager: &ResourceManager) {
let ground_texture = resource_manager.request::<Texture, _>("assets/data/tiles/2.png");
for x in -100..100 { for x in -100..100 {
let mut material = Material::standard_2d();
material
.set_property(
&ImmutableString::new("diffuseTexture"),
PropertyValue::Sampler {
value: Some(resource_manager.request::<Texture>("assets/data/tiles/2.png")),
fallback: SamplerFallback::Normal,
},
)
.unwrap();
let material_resource = MaterialResource::new_ok(Default::default(), material);
let rb_transform = TransformBuilder::new() let rb_transform = TransformBuilder::new()
.with_local_position(Vector3::new( .with_local_position(Vector3::new(x as f32, -5.0, 0.0))
x as f32, .build();
-5.0,
0.0,
))
.build();
RigidBodyBuilder::new(
BaseBuilder::new()
.with_children(&[
// Collider to prevent player from moving past boundary
RectangleBuilder::new(BaseBuilder::new())
.with_texture(ground_texture.clone())
// Sprite is located in top left corner of sprite sheet
.with_uv_rect(Rect::new(0.0, 0.0, 1.0, 1.0))
.build(graph),
ColliderBuilder::new(BaseBuilder::new()).with_shape(ColliderShape::Cuboid(CuboidShape::default())).build(graph),
])
// Optional, set name of tile
.with_name(format!("Boundary ({x}, 0)",))
// Set position of tile
.with_local_transform(rb_transform),
)
// Turn off gravity for tile
.with_gravity_scale(0.)
// Set tile to be static and not rotate
.with_rotation_locked(true)
.with_body_type(RigidBodyType::Static)
.build(graph);
RigidBodyBuilder::new(
BaseBuilder::new()
.with_children(&[
// Collider to prevent player from moving past boundary
RectangleBuilder::new(BaseBuilder::new())
.with_material(material_resource)
// Sprite is located in top left corner of sprite sheet
.with_uv_rect(Rect::new(0.0, 0.0, 1.0, 1.0))
.build(graph),
ColliderBuilder::new(BaseBuilder::new())
.with_shape(ColliderShape::Cuboid(CuboidShape::default()))
.build(graph),
])
// Optional, set name of tile
.with_name(format!("Boundary ({x}, 0)",))
// Set position of tile
.with_local_transform(rb_transform),
)
// Turn off gravity for tile
.with_gravity_scale(0.)
// Set tile to be static and not rotate
.with_rotation_locked(true)
.with_body_type(RigidBodyType::Static)
.build(graph);
} }
} }

View File

@ -1,5 +1,4 @@
use fyrox::{ use fyrox::{
animation::spritesheet::SpriteSheetAnimation,
core::{ core::{
algebra::{Vector2, Vector3}, algebra::{Vector2, Vector3},
pool::Handle, pool::Handle,
@ -9,6 +8,7 @@ use fyrox::{
TypeUuidProvider, TypeUuidProvider,
}, },
keyboard::KeyCode, keyboard::KeyCode,
scene::animation::spritesheet::SpriteSheetAnimation,
scene::dim2::{rectangle::Rectangle, rigidbody::RigidBody}, scene::dim2::{rectangle::Rectangle, rigidbody::RigidBody},
scene::node::Node, scene::node::Node,
script::ScriptContext, script::ScriptContext,
@ -173,7 +173,11 @@ impl Player {
.try_get_mut(self.sprite) .try_get_mut(self.sprite)
.and_then(|n| n.cast_mut::<Rectangle>()) .and_then(|n| n.cast_mut::<Rectangle>())
{ {
sprite.set_texture(animation_data.texture()); sprite
.material()
.data_ref()
.set_texture(&"diffuseTexture".into(), animation_data.texture())
.unwrap();
sprite.set_uv_rect(animation_data.current_frame_uv_rect().unwrap_or_default()); sprite.set_uv_rect(animation_data.current_frame_uv_rect().unwrap_or_default());
} }
} }