Giter Club home page Giter Club logo

Comments (1)

tigleym avatar tigleym commented on June 2, 2024

There are 3 parts to this bug, which should help break down the work:

  1. Create another game state called LoadingState, which will have a ProgressCounter responsible for tracking the number of assets loaded.
pub struct LoadingState {
    // Tracks loaded assets.
    progress_counter: ProgressCounter,
}
  1. In LoadingState.on_start, we should move the initializers for various entities that are loading in textures (ie: initialize_planet) in MainGameState here. Right now, we don't pass a progress counter to Loader.load in these helpers. This where the progress counter should start tracking when these assets have finished loading.
let loader = world.read_resource::<Loader>();
let texture_storage = world.read_resource::<AssetStorage<Texture>>();
loader.load(
    format!("texture/{}", spritesheet_data.image),
    ImageFormat::default(),
    &progress_counter,    // progress counter here to track asset
    &texture_storage,
)
  1. Implement a state transition from LoadingState to MainGameState when assets are finished loading.
impl SimpleState for LoadingState {
    fn update(&mut self, _data: &mut StateData<'_, GameData<'_, '_>>) -> SimpleTrans {
        if self.progress_counter.is_complete() {
            Trans::Switch(Box::new(MainGameState::default()))
        } else {
            Trans::None
        }

    }
}

We should also create an entity to act as basic UI to indicate the game is still in LoadingState and delete it once it's finished.

from thetawave-legacy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.