Guest User

Untitled

a guest
Apr 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. struct Hitbox {
  2. x: f32,
  3. y: f32,
  4. oX: f32,
  5. oY: f32,
  6. }
  7.  
  8. impl Hitbox {
  9. fn new(x: f32, y: f32, oX: f32, oY: f32) -> Hitbox {
  10. Hitbox {x: x,y: y,oX: oX, oY: oY}
  11. }
  12. }
  13.  
  14. struct Rectangle {
  15. posX: f32,
  16. posY: f32,
  17. hitbox: Hitbox
  18. }
  19.  
  20. impl Rectangle {
  21. pub fn new(x: f32, y: f32, sizeX: f32, sizeY: f32) -> Rectangle {
  22. Rectangle {
  23. posX: x,
  24. posY: y,
  25. hitbox: Hitbox::new(sizeX,sizeY,x,y),
  26. }
  27. }
  28. }
  29.  
  30. fn collide(player: Rectangle, rects: Vec<Rectangle>) -> Vec<Rectangle> {
  31. let mut vec_rects: Vec<Rectangle>;
  32. for rect in rects {
  33. if player.posX - player.hitbox.oX + player.hitbox.x > rect.posX - rect.hitbox.oX
  34. && player.posX - player.hitbox.oX < rect.posX - rect.hitbox.oX + rect.hitbox.x {
  35.  
  36. vec_rects.push(rect)
  37.  
  38. }
  39. }
  40. return vec_rects
  41. }
  42.  
  43. fn main() {
  44. let rect1 = Rectangle::new(10.0,10.0,10.0,10.0);
  45. let player = Rectangle::new(10.0,10.0,10.0,10.0);
  46. let rects = vec![rect1];
  47. let collided = collide(player,rects);
  48. }
Add Comment
Please, Sign In to add comment