Closed ds2k5 closed 2 weeks ago
Hello @ds2k5, Yes I'll try to update all libs in a couple of days, depending on the changes it involves in my code. I'm curious to know, though, why do you need the update ?
I tryed but had no success...
I'm curious to know, though, why do you need the update ?
sorry I like to see how you do I hope can learn
thank you
I remove the folder .cargo
, if you had an error it's because I tried to use mold linker.
It should compile and run fine without updating crates (at least it works on my ubuntu laptop).
I try anyway to upgrade crate but it crash on startup, I'll look into that.
git clone https://github.com/Dalvany/pinball
cd pinball
mod the Cargo.toml
[package]
name = "pinball"
version = "0.1.0"
edition = "2021"
description = "Simple maze game using Bevu and Rapier"
repository = "https://github.com/Dalvany/maze"
keywords = ["pinball", "game", "3d", "bevy", "rapier"]
categories = ["games"]
license = "MIT OR Apache-2.0"
readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
# Enable a small amount of optimization in debug mode
[profile.dev]
opt-level = 1
# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.dev.package."*"]
opt-level = 3
[profile.release-wasm]
inherits = "release"
opt-level = 'z'
lto = "thin"
[features]
full-debug = ["debug", "camera"]
debug = ["diagnostic", "inspector", "bevy_rapier3d/debug-render-3d"]
inspector = ["dep:bevy-inspector-egui"]
diagnostic = []
camera = ["dep:bevy_panorbit_camera"]
[dependencies]
bevy = "0.14.2"
bevy_rapier3d = "0.27"
anyhow = "1.0.86"
thiserror = "1.0.63"
log = "0.4.22"
bevy-inspector-egui = { version = "0.25.2", optional = true }
bevy_panorbit_camera = { version = "0.19.3", optional = true }
the folder: ~/.cargo hold the bin files of rust... cargo, rustc etc. when I remove this I am not able to compile rust code.
cargo check
cargo build --release
Error:
error[E0432]: unresolved imports `bevy::prelude::shape`, `bevy::prelude::shape`
--> src/element/table.rs:3:21
|
3 | use bevy::prelude::{shape::Box, shape::Quad, *};
| ^^^^^ ^^^^^ could not find `shape` in `prelude`
| |
| could not find `shape` in `prelude`
error[E0412]: cannot find type `Input` in this scope
--> src/main.rs:164:19
|
164 | keyboard: Res<Input<KeyCode>>,
| ^^^^^ not found in this scope
error[E0412]: cannot find type `Input` in this scope
--> src/main.rs:179:23
|
179 | fn flip(keyboard: Res<Input<KeyCode>>, query: Query<(Entity, &Side)>, mut commands: Commands) {
| ^^^^^ not found in this scope
warning: unused imports: `mesh::Indices` and `render_resource::PrimitiveTopology`
--> src/shapes/elipse.rs:7:20
|
7 | use bevy::render::{mesh::Indices, render_resource::PrimitiveTopology};
| ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused imports: `mesh::Indices` and `render_resource::PrimitiveTopology`
--> src/shapes/flipper.rs:5:14
|
5 | render::{mesh::Indices, render_resource::PrimitiveTopology},
| ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/element/table.rs:24:44
|
24 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| ^^^
|
= note: `#[warn(deprecated)]` on by default
error[E0283]: type annotations needed
--> src/element/table.rs:24:63
|
24 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| --- ^^^^
| |
| required by a bound introduced by this call
|
= note: cannot satisfy `_: Into<bevy::prelude::StandardMaterial>`
note: required by a bound in `bevy::prelude::Assets::<A>::add`
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_asset-0.14.2/src/assets.rs:390:39
|
390 | pub fn add(&mut self, asset: impl Into<A>) -> Handle<A> {
| ^^^^^^^ required by this bound in `Assets::<A>::add`
help: try using a fully qualified path to specify the expected types
|
24 | material: materials.add(<bevy::prelude::Color as Into<T>>::into(Color::rgb(0.4, 0.4, 0.4))),
| ++++++++++++++++++++++++++++++++++++++++ ~
help: consider removing this method call, as the receiver has type `bevy::prelude::Color` and `bevy::prelude::Color: Into<bevy::prelude::StandardMaterial>` trivially holds
|
24 - material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
24 + material: materials.add(Color::rgb(0.4, 0.4, 0.4)),
|
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/element/table.rs:51:48
|
51 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| ^^^
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/element/table.rs:91:44
|
91 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| ^^^
error[E0283]: type annotations needed
--> src/element/table.rs:91:63
|
91 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| --- ^^^^
| |
| required by a bound introduced by this call
|
= note: cannot satisfy `_: Into<bevy::prelude::StandardMaterial>`
note: required by a bound in `bevy::prelude::Assets::<A>::add`
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_asset-0.14.2/src/assets.rs:390:39
|
390 | pub fn add(&mut self, asset: impl Into<A>) -> Handle<A> {
| ^^^^^^^ required by this bound in `Assets::<A>::add`
help: try using a fully qualified path to specify the expected types
|
91 | material: materials.add(<bevy::prelude::Color as Into<T>>::into(Color::rgb(0.4, 0.4, 0.4))),
| ++++++++++++++++++++++++++++++++++++++++ ~
help: consider removing this method call, as the receiver has type `bevy::prelude::Color` and `bevy::prelude::Color: Into<bevy::prelude::StandardMaterial>` trivially holds
|
91 - material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
91 + material: materials.add(Color::rgb(0.4, 0.4, 0.4)),
|
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/element/table.rs:130:44
|
130 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| ^^^
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/element/table.rs:163:44
|
163 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| ^^^
error[E0283]: type annotations needed
--> src/element/table.rs:130:63
|
130 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| --- ^^^^
| |
| required by a bound introduced by this call
|
= note: cannot satisfy `_: Into<bevy::prelude::StandardMaterial>`
note: required by a bound in `bevy::prelude::Assets::<A>::add`
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_asset-0.14.2/src/assets.rs:390:39
|
390 | pub fn add(&mut self, asset: impl Into<A>) -> Handle<A> {
| ^^^^^^^ required by this bound in `Assets::<A>::add`
help: try using a fully qualified path to specify the expected types
|
130 | material: materials.add(<bevy::prelude::Color as Into<T>>::into(Color::rgb(0.4, 0.4, 0.4))),
| ++++++++++++++++++++++++++++++++++++++++ ~
help: consider removing this method call, as the receiver has type `bevy::prelude::Color` and `bevy::prelude::Color: Into<bevy::prelude::StandardMaterial>` trivially holds
|
130 - material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
130 + material: materials.add(Color::rgb(0.4, 0.4, 0.4)),
|
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/element/table.rs:205:48
|
205 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| ^^^
error[E0283]: type annotations needed
--> src/element/table.rs:205:67
|
205 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| --- ^^^^
| |
| required by a bound introduced by this call
|
= note: cannot satisfy `_: Into<bevy::prelude::StandardMaterial>`
note: required by a bound in `bevy::prelude::Assets::<A>::add`
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_asset-0.14.2/src/assets.rs:390:39
|
390 | pub fn add(&mut self, asset: impl Into<A>) -> Handle<A> {
| ^^^^^^^ required by this bound in `Assets::<A>::add`
help: try using a fully qualified path to specify the expected types
|
205 | material: materials.add(<bevy::prelude::Color as Into<T>>::into(Color::rgb(0.4, 0.4, 0.4))),
| ++++++++++++++++++++++++++++++++++++++++ ~
help: consider removing this method call, as the receiver has type `bevy::prelude::Color` and `bevy::prelude::Color: Into<bevy::prelude::StandardMaterial>` trivially holds
|
205 - material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
205 + material: materials.add(Color::rgb(0.4, 0.4, 0.4)),
|
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/element/table.rs:288:44
|
288 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| ^^^
error[E0283]: type annotations needed
--> src/element/table.rs:288:63
|
288 | material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
| --- ^^^^
| |
| required by a bound introduced by this call
|
= note: cannot satisfy `_: Into<bevy::prelude::StandardMaterial>`
note: required by a bound in `bevy::prelude::Assets::<A>::add`
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_asset-0.14.2/src/assets.rs:390:39
|
390 | pub fn add(&mut self, asset: impl Into<A>) -> Handle<A> {
| ^^^^^^^ required by this bound in `Assets::<A>::add`
help: try using a fully qualified path to specify the expected types
|
288 | material: materials.add(<bevy::prelude::Color as Into<T>>::into(Color::rgb(0.4, 0.4, 0.4))),
| ++++++++++++++++++++++++++++++++++++++++ ~
help: consider removing this method call, as the receiver has type `bevy::prelude::Color` and `bevy::prelude::Color: Into<bevy::prelude::StandardMaterial>` trivially holds
|
288 - material: materials.add(Color::rgb(0.4, 0.4, 0.4).into()),
288 + material: materials.add(Color::rgb(0.4, 0.4, 0.4)),
|
error[E0061]: this function takes 2 arguments but 1 argument was supplied
--> src/shapes/table.rs:119:24
|
119 | let mut mesh = Mesh::new(PrimitiveTopology::TriangleList);
| ^^^^^^^^^--------------------------------- an argument of type `RenderAssetUsages` is missing
|
note: associated function defined here
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_render-0.14.2/src/mesh/mesh/mod.rs:212:12
|
212 | pub fn new(primitive_topology: PrimitiveTopology, asset_usage: RenderAssetUsages) -> Self {
| ^^^
help: provide the argument
|
119 | let mut mesh = Mesh::new(PrimitiveTopology::TriangleList, /* RenderAssetUsages */);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error[E0599]: no method named `set_indices` found for struct `bevy::prelude::Mesh` in the current scope
--> src/shapes/table.rs:120:14
|
120 | mesh.set_indices(Some(Indices::U32(indices)));
| ^^^^^^^^^^^
|
help: there is a method `insert_indices` with a similar name
|
120 | mesh.insert_indices(Some(Indices::U32(indices)));
| ~~~~~~~~~~~~~~
error[E0061]: this function takes 2 arguments but 1 argument was supplied
--> src/shapes/mod.rs:61:24
|
61 | let mut mesh = Mesh::new(PrimitiveTopology::TriangleList);
| ^^^^^^^^^--------------------------------- an argument of type `RenderAssetUsages` is missing
|
note: associated function defined here
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_render-0.14.2/src/mesh/mesh/mod.rs:212:12
|
212 | pub fn new(primitive_topology: PrimitiveTopology, asset_usage: RenderAssetUsages) -> Self {
| ^^^
help: provide the argument
|
61 | let mut mesh = Mesh::new(PrimitiveTopology::TriangleList, /* RenderAssetUsages */);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error[E0599]: no method named `set_indices` found for struct `bevy::prelude::Mesh` in the current scope
--> src/shapes/mod.rs:62:14
|
62 | mesh.set_indices(Some(Indices::U32(value.indices)));
| ^^^^^^^^^^^
|
help: there is a method `insert_indices` with a similar name
|
62 | mesh.insert_indices(Some(Indices::U32(value.indices)));
| ~~~~~~~~~~~~~~
error[E0063]: missing field `custom_layer` in initializer of `LogPlugin`
--> src/main.rs:44:22
|
44 | let log_plugin = LogPlugin {
| ^^^^^^^^^ missing `custom_layer`
error[E0277]: `for<'a, 'b, 'c, 'd, 'e> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, bevy::prelude::Entity, bevy::prelude::With<Ball>>, bevy::prelude::Commands<'d, 'e>) {impulse_ball}` does not describe a valid system configuration
--> src/main.rs:90:30
|
90 | .add_systems(Update, impulse_ball)
| ----------- ^^^^^^^^^^^^ invalid system configuration
| |
| required by a bound introduced by this call
|
= help: the trait `IntoSystem<(), (), _>` is not implemented for fn item `for<'a, 'b, 'c, 'd, 'e> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, bevy::prelude::Entity, bevy::prelude::With<Ball>>, bevy::prelude::Commands<'d, 'e>) {impulse_ball}`, which is required by `for<'a, 'b, 'c, 'd, 'e> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, bevy::prelude::Entity, bevy::prelude::With<Ball>>, bevy::prelude::Commands<'d, 'e>) {impulse_ball}: IntoSystemConfigs<_>`
= help: the following other types implement trait `IntoSystemConfigs<Marker>`:
<(S0, S1) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1)>>
<(S0, S1, S2) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2)>>
<(S0, S1, S2, S3) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3)>>
<(S0, S1, S2, S3, S4) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4)>>
<(S0, S1, S2, S3, S4, S5) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5)>>
<(S0, S1, S2, S3, S4, S5, S6) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6)>>
<(S0, S1, S2, S3, S4, S5, S6, S7) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7)>>
<(S0, S1, S2, S3, S4, S5, S6, S7, S8) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8)>>
and 14 others
= note: required for `for<'a, 'b, 'c, 'd, 'e> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, bevy::prelude::Entity, bevy::prelude::With<Ball>>, bevy::prelude::Commands<'d, 'e>) {impulse_ball}` to implement `IntoSystemConfigs<_>`
note: required by a bound in `bevy::prelude::App::add_systems`
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.14.2/src/app.rs:287:23
|
284 | pub fn add_systems<M>(
| ----------- required by a bound in this associated function
...
287 | systems: impl IntoSystemConfigs<M>,
| ^^^^^^^^^^^^^^^^^^^^ required by this bound in `App::add_systems`
error[E0277]: `for<'a, 'b, 'c, 'd, 'e, 'f> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, (bevy::prelude::Entity, &'d element::flipper::Side)>, bevy::prelude::Commands<'e, 'f>) {flip}` does not describe a valid system configuration
--> src/main.rs:91:30
|
91 | .add_systems(Update, flip)
| ----------- ^^^^ invalid system configuration
| |
| required by a bound introduced by this call
|
= help: the trait `IntoSystem<(), (), _>` is not implemented for fn item `for<'a, 'b, 'c, 'd, 'e, 'f> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, (bevy::prelude::Entity, &'d element::flipper::Side)>, bevy::prelude::Commands<'e, 'f>) {flip}`, which is required by `for<'a, 'b, 'c, 'd, 'e, 'f> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, (bevy::prelude::Entity, &'d element::flipper::Side)>, bevy::prelude::Commands<'e, 'f>) {flip}: IntoSystemConfigs<_>`
= help: the following other types implement trait `IntoSystemConfigs<Marker>`:
<(S0, S1) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1)>>
<(S0, S1, S2) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2)>>
<(S0, S1, S2, S3) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3)>>
<(S0, S1, S2, S3, S4) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4)>>
<(S0, S1, S2, S3, S4, S5) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5)>>
<(S0, S1, S2, S3, S4, S5, S6) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6)>>
<(S0, S1, S2, S3, S4, S5, S6, S7) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7)>>
<(S0, S1, S2, S3, S4, S5, S6, S7, S8) as IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8)>>
and 14 others
= note: required for `for<'a, 'b, 'c, 'd, 'e, 'f> fn(bevy::prelude::Res<'a, {type error}>, bevy::prelude::Query<'b, 'c, (bevy::prelude::Entity, &'d element::flipper::Side)>, bevy::prelude::Commands<'e, 'f>) {flip}` to implement `IntoSystemConfigs<_>`
note: required by a bound in `bevy::prelude::App::add_systems`
--> /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_app-0.14.2/src/app.rs:287:23
|
284 | pub fn add_systems<M>(
| ----------- required by a bound in this associated function
...
287 | systems: impl IntoSystemConfigs<M>,
| ^^^^^^^^^^^^^^^^^^^^ required by this bound in `App::add_systems`
warning: use of deprecated associated function `bevy::prelude::Color::rgb`: Use `Color::srgb` instead
--> src/main.rs:138:44
|
138 | material: materials.add(Color::rgb(0., 0., 1.).into()),
| ^^^
error[E0599]: no variant or associated item named `GRAY` found for enum `bevy::prelude::Color` in the current scope
--> src/main.rs:217:44
|
217 | material: materials.add(Color::GRAY.into()),
| ^^^^ variant or associated item not found in `Color`
error[E0433]: failed to resolve: use of undeclared crate or module `shape`
--> src/main.rs:130:31
|
130 | let mesh = Mesh::try_from(shape::Icosphere {
| ^^^^^ use of undeclared crate or module `shape`
|
help: there is a crate or module with a similar name
|
130 | let mesh = Mesh::try_from(shapes::Icosphere {
| ~~~~~~
Some errors have detailed explanations: E0061, E0063, E0277, E0283, E0412, E0432, E0433, E0599.
For more information about an error, try `rustc --explain E0061`.
warning: `pinball` (bin "pinball") generated 10 warnings
error: could not compile `pinball` (bin "pinball") due to 17 previous errors; 10 warnings emitted
You can try the branch update_bevy. It compiles but crash when running. The main branch runs and compiles without upgrading crates.
git clone https://github.com/Dalvany/pinball
cd pinball/
git fetch
git checkout update_bevy
git pull
cargo build --release
...
Compiling pinball v0.1.0 (/home/developer/rust/pinball)
error[E0063]: missing field `custom_layer` in initializer of `LogPlugin`
--> src/main.rs:50:22
|
50 | let log_plugin = LogPlugin {
| ^^^^^^^^^ missing `custom_layer`
For more information about this error, try `rustc --explain E0063`.
error: could not compile `pinball` (bin "pinball") due to 1 previous error
$ rustc --version
rustc 1.80.0 (051478957 2024-07-21)
Oh I should have try to compile with all features. To quickly fix the issue you can copy/paste the custom_layer
in the second LogPlugin
below.
sorry how to do this ?
I did the fix on the update_bevy branch, if you pull it, it should compile now.
The error is it was just missing a new property on the struct LogPlugin
that is used when the debug assertions are disabled (when compiling in release mode using --release
).
You can watch the diff here. I just put a closure that return None since I don't know what a custom layer is (meaning that I probably don't need).
Beware that though it compiles, it still crashes, at least on my computer.
Something I didn't mention because you said it was to learn, is that it's not really playable, even using Bevy 0.12. Here is a capture of what it looks like :
thanks a lot, compile works now...
running game looks like in your screenshot
Nice, on what OS do you run it on ? I finally managed to make it not crash forcing Vulkan backend (they might have change the default to something else and I probably have to install some libraries). But it's slow.
on what OS do you run it on ?
Linux - Debian 12 - x86_64
hi, could you update the code to bevy 0.14.1