Crates.io | cargo-pixel |
lib.rs | cargo-pixel |
version | 0.5.1 |
source | src |
created_at | 2024-10-14 23:32:15.274528 |
updated_at | 2024-10-14 23:32:15.274528 |
description | 2d pixel art game engine & rapid prototype tools support terminal,sdl2 and web... |
homepage | |
repository | https://github.com/zipxing/rust_pixel |
max_upload_size | |
id | 1408776 |
size | 39,170 |
Change Log | Principle | Coding | FAQ | TODO
RustPixel is a 2D game engine & rapid prototyping tools, supporting both text and graphics rendering modes.
It is suitable for creating 2D pixel-style games and developing terminal applications.
It can be compiled into FFI for front-end and back-end use, and into WASM for web projects.
Here is a petscii art painting browser made with rust_pixel. Special thanks to x.com/PETSCIIWORLD for the character painting and the transition shader provided by gltransition. Click here for online demo。
https://github.com/user-attachments/assets/8e9e0837-43fd-4f18-a5ad-265a06ddb47e
The main steps of the installation process are as follows:
The detailed steps for each operating system: MacOS | Linux | Windows
Next, you should clone RustPixel and deploy cargo-pixel tool:
git clone https://github.com/zipxing/rust_pixel
cd rust_pixel
cargo install --path tools/cargo-pixel --root ~/.cargo
cd rust_pixel
cargo pixel run snake term #Run the snake game in terminal mode
cargo pixel r snake t #Run the snake game in terminal mode - shorthand
cargo pixel r tetris s #Run the Tetris game in SDL window mode
cargo pixel r tower w #Run tower in web,visit http://localhost:8080/ in your browser
cargo pixel r tower w --webport 8081 #Change web server port
cargo pixel r tower w -r #Run with release mode
You can also use cargo pixel to create your own game or app:
cargo pixel c games mygame #Create mygame in ./games using games/template as a template
cargo pixel c apps myapp #Create myapp in ./apps using games/template as a template
Creat a standalone app in some directory:
cargo pixel c .. myapp --standalone #Create a standalone crate in ../myapp
cd ../myapp
cargo pixel r myapp t
cargo pixel r myapp s
RustPixel also includes several tools:
cargo pixel r palette t -r
#term mode
cargo pixel r tedit term assets/screen-shot/tedit.txt
#graphics mode
cargo pixel r tedit sdl assets/screen-shot/tedit.pix
cargo pixel r tpetii t assets/a.png -r > assets/a.pix
cargo pixel r tedit s assets/a.pix
cargo pixel r tpetii t assets/lion.png 40 40 -r > assets/lion.pix
cargo pixel r tedit s assets/lion.pix
cargo pixel cg assets/sdq/fire.gif assets/sdq/fire.ssf 40 25
#graphics mode
cargo pixel r snake s -r
#term mode
cargo pixel r snake t -r
#web mode
cargo pixel r snake w -r
#and visit http://localhost:8080/ in your browser
#term mode
cargo pixel r tetris t -r
#graphics mode
cargo pixel r tetris s -r
#web mode
cargo pixel r tetris w -r
#and visit http://localhost:8080/ in your browser
cargo pixel r poker t -r
cargo pixel r gin_rummy t -r
The poker/ffi directory demo how to wrap Rust algorithms into CFFI for use with other languages, showcasing C++ and Python calling poker_ffi
cd games/poker/ffi
make run
The poker/wasm directory demo how to wrap Rust algorithms into wasm for JS calling
cd games/poker/wasm
make run
#graphics mode
cargo pixel r tower s -r
#web mode
cargo pixel r tower w -r
#and visit http://localhost:8080/ in your browser
and so on ... ...