Sprite New Texture
Create a sprite without loading any assets from disk or memory.
Source
use chuot::{AssetSource, Config, Context, Game, RGBA8}; /// Define an empty game state for our example. struct GameState; impl Game for GameState { /// Create the image at startup once. fn init(&mut self, ctx: Context) { // Create the sprite once // Size of the buffer let (width, height) = ctx.size(); // Generate the pixels for the sprite with a nice XOR pattern let pixels = (0..(width * height) as u32) .map(|index| { let x = index % width as u32; let y = index / width as u32; // Create a nice XOR pattern RGBA8::new((x ^ y) as u8, 0, 0, 0xFF) }) .collect::<Vec<_>>(); // Create a new sprite with the size of the screen, pivoting at the top left ctx.sprite("pattern") .create((width, height), (0.0, 0.0), pixels); } /// Render the game. fn render(&mut self, ctx: Context) { // Load a sprite asset and draw it ctx.sprite("pattern") // Use the UI camera which draws the center in the top left .use_ui_camera() // Draw the sprite on the screen .draw(); } /// Do nothing during the update loop. fn update(&mut self, _ctx: Context) {} } /// Open an empty window. fn main() { // Game configuration let config = Config { buffer_width: 240.0, buffer_height: 192.0, // Apply a minimum of 3 times scaling for the buffer // Will result in a minimum, and on web exact, window size of 720x576 scaling: 3.0, ..Default::default() }; // Spawn the window and run the 'game' GameState.run( // In this example we don't use any stored assets so we also don't have to embed them into the binary AssetSource::new(), config, ); }
Compatibility
Chuột Version | Example Works |
---|---|
0.3.0 | ✅ |
0.3.1 | ✅ |
Unreleased | ✅ |