Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Hitbox {
- x: f32,
- y: f32,
- oX: f32,
- oY: f32,
- }
- impl Hitbox {
- fn new(x: f32, y: f32, oX: f32, oY: f32) -> Hitbox {
- Hitbox {x: x,y: y,oX: oX, oY: oY}
- }
- }
- struct Rectangle {
- posX: f32,
- posY: f32,
- hitbox: Hitbox
- }
- impl Rectangle {
- pub fn new(x: f32, y: f32, sizeX: f32, sizeY: f32) -> Rectangle {
- Rectangle {
- posX: x,
- posY: y,
- hitbox: Hitbox::new(sizeX,sizeY,x,y),
- }
- }
- }
- fn collide(player: Rectangle, rects: Vec<Rectangle>) -> Vec<Rectangle> {
- let mut vec_rects: Vec<Rectangle>;
- for rect in rects {
- if player.posX - player.hitbox.oX + player.hitbox.x > rect.posX - rect.hitbox.oX
- && player.posX - player.hitbox.oX < rect.posX - rect.hitbox.oX + rect.hitbox.x {
- vec_rects.push(rect)
- }
- }
- return vec_rects
- }
- fn main() {
- let rect1 = Rectangle::new(10.0,10.0,10.0,10.0);
- let player = Rectangle::new(10.0,10.0,10.0,10.0);
- let rects = vec![rect1];
- let collided = collide(player,rects);
- }
Add Comment
Please, Sign In to add comment