bevy_cards
A simple, no dependency bevy plugin for making card games
Features
- Hover over, drag & drop cards
- Drop cards into slots
How to use
use bevy::prelude::*;
use bevy_cards::prelude::*;
const CARD_WIDTH: u32 = 100;
const CARD_HEIGHT: u32 = 144;
fn main() -> AppExit {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(BevyCardsPlugin::new(CARD_WIDTH as f32, CARD_HEIGHT as f32))
.add_systems(Startup, setup)
.run()
}
fn setup(mut commands: Commands) {
commands.spawn(Camera2d);
commands.spawn((
Card,
Draggable, Sprite {
color: Color::srgb(0.0, 1.0, 0.0),
custom_size: Some(Vec2::new(CARD_WIDTH as f32, CARD_HEIGHT as f32)),
..default()
},
Transform::from_xyz(-100.0, 0.0, 0.0),
));
commands.spawn((
Card,
Draggable,
CardSize(Vec2::new(CARD_WIDTH as f32 * 0.8, CARD_HEIGHT as f32 * 0.8)),
Sprite {
color: Color::srgb(0.0, 0.0, 1.0),
custom_size: Some(Vec2::new(CARD_WIDTH as f32 * 0.8, CARD_HEIGHT as f32 * 0.8)),
..default()
},
Transform::from_xyz(100.0, 0.0, 0.0),
));
}
Run this example using cargo run --example readme

Slots

Example Code
Run this example using cargo run --example slots
Concepts
Card
Card is a component enabling your entity to be hovered, dragged and dropped around
Slot
Slots are places your card can be dropped into
Bevy versions supported
bevy_cards is not using semver, every release uses the same major and minor versions as bevy while the patch part is reserved
for all kinds of changes, be it bug fixes or feature updates.
| bevy |
bevy_pixcam |
branch |
| 0.16.x |
0.16.x |
master |
Assets
License
MIT