fyrox update
This commit is contained in:
parent
760a76a3e6
commit
a1ca80c8cc
|
|
@ -207,6 +207,15 @@ version = "0.21.5"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
|
||||
|
||||
[[package]]
|
||||
name = "bincode"
|
||||
version = "1.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bindgen"
|
||||
version = "0.69.1"
|
||||
|
|
@ -951,14 +960,14 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "fyrox"
|
||||
version = "0.32.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c0f789108c271c0b593b7b7ad9bc24ff3a00cf72a91efd82997bf8dda9fbd4dd"
|
||||
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
|
||||
dependencies = [
|
||||
"bitflags 2.4.1",
|
||||
"clap",
|
||||
"ddsfile",
|
||||
"fast_image_resize",
|
||||
"fxhash",
|
||||
"fyrox-animation",
|
||||
"fyrox-core",
|
||||
"fyrox-core-derive",
|
||||
"fyrox-resource",
|
||||
|
|
@ -977,7 +986,6 @@ dependencies = [
|
|||
"rayon",
|
||||
"ron",
|
||||
"serde",
|
||||
"spade",
|
||||
"strum",
|
||||
"strum_macros",
|
||||
"tbc",
|
||||
|
|
@ -985,15 +993,27 @@ dependencies = [
|
|||
"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]]
|
||||
name = "fyrox-core"
|
||||
version = "0.26.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c18752435c86ea9cbd58ecad958ceaa6accccc5fd070c3a613de3c8d7dd2d57"
|
||||
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
|
||||
dependencies = [
|
||||
"android-activity",
|
||||
"arrayvec",
|
||||
"base64",
|
||||
"bincode",
|
||||
"bitflags 2.4.1",
|
||||
"byteorder",
|
||||
"futures",
|
||||
|
|
@ -1019,8 +1039,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "fyrox-core-derive"
|
||||
version = "0.21.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "790f5b126d3777c465960bcf0e8ec13ee0aa638f6f7be66bb37fdd1c83e584f2"
|
||||
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
|
||||
dependencies = [
|
||||
"convert_case",
|
||||
"darling",
|
||||
|
|
@ -1033,20 +1052,20 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "fyrox-resource"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bfc35a102aed1ebc318039f6a1f5a8d1562616ef00e7065f525c0cc2efc3bc13"
|
||||
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
|
||||
dependencies = [
|
||||
"fxhash",
|
||||
"fyrox-core",
|
||||
"rayon",
|
||||
"ron",
|
||||
"serde",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fyrox-sound"
|
||||
version = "0.33.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f93ca4e7a568494507a2f30b3726b74a63b199986caf670812d9414f0a208e2f"
|
||||
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
|
||||
dependencies = [
|
||||
"fyrox-core",
|
||||
"fyrox-resource",
|
||||
|
|
@ -1063,13 +1082,13 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "fyrox-ui"
|
||||
version = "0.23.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "941c34403f7c791ef351eaa6b74ce5655558980a6efa036451a9a0578bd3ab45"
|
||||
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
|
||||
dependencies = [
|
||||
"copypasta",
|
||||
"fontdue",
|
||||
"fxhash",
|
||||
"fyrox-core",
|
||||
"fyrox-resource",
|
||||
"lazy_static",
|
||||
"notify",
|
||||
"serde",
|
||||
|
|
@ -1081,8 +1100,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "fyroxed_base"
|
||||
version = "0.19.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4acc2d4e8fc5e96057ad85ea1ec6c5f2e7f988b53b18648083133dcb816110e8"
|
||||
source = "git+https://github.com/FyroxEngine/Fyrox#b2e11b0679a1c2ffddee330233b78c8973349f8a"
|
||||
dependencies = [
|
||||
"fyrox",
|
||||
"lazy_static",
|
||||
|
|
|
|||
|
|
@ -4,9 +4,10 @@ members = ["editor", "executor", "executor-wasm", "executor-android", "game"]
|
|||
resolver = "2"
|
||||
|
||||
[workspace.dependencies.fyrox]
|
||||
version = "0.32.0"
|
||||
git = "https://github.com/FyroxEngine/Fyrox"
|
||||
|
||||
[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.
|
||||
# By using this technique, you can still debug you code, but engine will be fully
|
||||
|
|
|
|||
|
|
@ -348,6 +348,10 @@ function __wbg_get_imports() {
|
|||
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
|
||||
takeObject(arg0);
|
||||
};
|
||||
imports.wbg.__wbindgen_is_undefined = function(arg0) {
|
||||
const ret = getObject(arg0) === undefined;
|
||||
return ret;
|
||||
};
|
||||
imports.wbg.__wbindgen_cb_drop = function(arg0) {
|
||||
const obj = takeObject(arg0).original;
|
||||
if (obj.cnt-- == 1) {
|
||||
|
|
@ -357,10 +361,6 @@ function __wbg_get_imports() {
|
|||
const ret = false;
|
||||
return ret;
|
||||
};
|
||||
imports.wbg.__wbindgen_is_undefined = function(arg0) {
|
||||
const ret = getObject(arg0) === undefined;
|
||||
return ret;
|
||||
};
|
||||
imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
|
||||
const ret = getObject(arg0);
|
||||
return addHeapObject(ret);
|
||||
|
|
@ -474,6 +474,9 @@ function __wbg_get_imports() {
|
|||
const ret = getObject(arg0).Window;
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbg_webkitExitFullscreen_51924dedcb0cfce0 = function(arg0) {
|
||||
getObject(arg0).webkitExitFullscreen();
|
||||
};
|
||||
imports.wbg.__wbg_webkitFullscreenElement_7cc38bee61c82f9b = function(arg0) {
|
||||
const ret = getObject(arg0).webkitFullscreenElement;
|
||||
return isLikeNone(ret) ? 0 : addHeapObject(ret);
|
||||
|
|
@ -856,6 +859,9 @@ function __wbg_get_imports() {
|
|||
const ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2));
|
||||
return addHeapObject(ret);
|
||||
}, arguments) };
|
||||
imports.wbg.__wbg_exitFullscreen_b5d53ae882b17a5c = function(arg0) {
|
||||
getObject(arg0).exitFullscreen();
|
||||
};
|
||||
imports.wbg.__wbg_style_97c680a5cbdf49cd = function(arg0) {
|
||||
const ret = getObject(arg0).style;
|
||||
return addHeapObject(ret);
|
||||
|
|
@ -1599,68 +1605,68 @@ function __wbg_get_imports() {
|
|||
const ret = wasm.memory;
|
||||
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) {
|
||||
const ret = makeMutClosure(arg0, arg1, 9479, __wbg_adapter_32);
|
||||
const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
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);
|
||||
};
|
||||
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);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper17896 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 13689, __wbg_adapter_49);
|
||||
imports.wbg.__wbindgen_closure_wrapper10084 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper19745 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52);
|
||||
imports.wbg.__wbindgen_closure_wrapper10085 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper19746 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52);
|
||||
imports.wbg.__wbindgen_closure_wrapper10086 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_44);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper19747 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_52);
|
||||
imports.wbg.__wbindgen_closure_wrapper10087 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 9482, __wbg_adapter_32);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper19748 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 14503, __wbg_adapter_59);
|
||||
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);
|
||||
imports.wbg.__wbindgen_closure_wrapper17900 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 13692, __wbg_adapter_49);
|
||||
return addHeapObject(ret);
|
||||
};
|
||||
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);
|
||||
};
|
||||
imports.wbg.__wbindgen_closure_wrapper19879 = function(arg0, arg1, arg2) {
|
||||
const ret = makeMutClosure(arg0, arg1, 14574, __wbg_adapter_68);
|
||||
imports.wbg.__wbindgen_closure_wrapper19752 = function(arg0, arg1, arg2) {
|
||||
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);
|
||||
};
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,19 +1,19 @@
|
|||
//! Game project.
|
||||
use fyrox::{
|
||||
monitor::MonitorHandle,
|
||||
window::Fullscreen,
|
||||
engine::GraphicsContext,
|
||||
keyboard::PhysicalKey,
|
||||
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},
|
||||
keyboard::KeyCode,
|
||||
gui::message::UiMessage,
|
||||
impl_component_provider,
|
||||
plugin::{Plugin, PluginConstructor, PluginContext, PluginRegistrationContext},
|
||||
scene::{
|
||||
Scene,
|
||||
graph::Graph,
|
||||
},
|
||||
script::{ScriptContext, ScriptTrait},
|
||||
script::{ScriptContext, ScriptTrait}, raw_window_handle::HasWindowHandle,
|
||||
};
|
||||
use std::path::Path;
|
||||
mod map;
|
||||
|
|
@ -39,7 +39,20 @@ impl ScriptTrait for Player {
|
|||
fn on_start(&mut self, _context: &mut ScriptContext) {}
|
||||
|
||||
// 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 WindowEvent::KeyboardInput { event, .. } = event {
|
||||
if let PhysicalKey::Code(keycode) = event.physical_key {
|
||||
|
|
@ -100,10 +113,6 @@ impl ScriptTrait for Player {
|
|||
self.loop_over(context);
|
||||
}
|
||||
|
||||
// Returns unique script ID for serialization needs.
|
||||
fn id(&self) -> Uuid {
|
||||
Self::type_uuid()
|
||||
}
|
||||
}
|
||||
|
||||
impl PluginConstructor for GameConstructor {
|
||||
|
|
@ -143,8 +152,20 @@ impl Plugin for Game {
|
|||
// Add your global update code here.
|
||||
}
|
||||
|
||||
fn on_os_event(&mut self, _event: &Event<()>, _context: PluginContext) {
|
||||
// Do something on OS event here.
|
||||
fn on_os_event(&mut self, event: &Event<()>, context: PluginContext) {
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -1,54 +1,67 @@
|
|||
|
||||
use fyrox::{
|
||||
material::shader::{SamplerFallback},
|
||||
asset::manager::ResourceManager,
|
||||
core::{algebra::Vector3, math::Rect, visitor::Visit},
|
||||
core::sstorage::ImmutableString,
|
||||
material::{Material, PropertyValue, MaterialResource},
|
||||
resource::texture::Texture,
|
||||
core::{algebra::Vector3, math::Rect},
|
||||
scene::{
|
||||
base::BaseBuilder,
|
||||
graph::Graph,
|
||||
transform::TransformBuilder,
|
||||
rigidbody::RigidBodyType,
|
||||
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/
|
||||
//
|
||||
pub fn build_map(graph: &mut Graph, resource_manager: &ResourceManager) {
|
||||
let ground_texture = resource_manager.request::<Texture, _>("assets/data/tiles/2.png");
|
||||
|
||||
//
|
||||
pub fn build_map(graph: &mut Graph, resource_manager: &ResourceManager) {
|
||||
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()
|
||||
.with_local_position(Vector3::new(
|
||||
x as f32,
|
||||
-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);
|
||||
.with_local_position(Vector3::new(x as f32, -5.0, 0.0))
|
||||
.build();
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
use fyrox::{
|
||||
animation::spritesheet::SpriteSheetAnimation,
|
||||
core::{
|
||||
algebra::{Vector2, Vector3},
|
||||
pool::Handle,
|
||||
|
|
@ -9,6 +8,7 @@ use fyrox::{
|
|||
TypeUuidProvider,
|
||||
},
|
||||
keyboard::KeyCode,
|
||||
scene::animation::spritesheet::SpriteSheetAnimation,
|
||||
scene::dim2::{rectangle::Rectangle, rigidbody::RigidBody},
|
||||
scene::node::Node,
|
||||
script::ScriptContext,
|
||||
|
|
@ -173,7 +173,11 @@ impl Player {
|
|||
.try_get_mut(self.sprite)
|
||||
.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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue