소스 검색

Add physics

master
Noelle 4 년 전
부모
커밋
2c872a1591
2개의 변경된 파일31개의 추가작업 그리고 0개의 파일을 삭제
  1. 1
    0
      src/main.rs
  2. 30
    0
      src/physics.rs

+ 1
- 0
src/main.rs 파일 보기

@@ -1,4 +1,5 @@
mod components;
mod physics;

use sdl2::pixels::Color;
use sdl2::event::Event;

+ 30
- 0
src/physics.rs 파일 보기

@@ -0,0 +1,30 @@
use specs::prelude::*;

use crate::components::*;

struct Physics;

impl<'a> System<'a> for Physics {
type SystemData = (WriteStorage<'a, Position>, ReadStorage<'a, Velocity>);

fn run(&mut self, mut data: Self::SystemData) {
use self::Direction::*;

for (pos, vel) in (&mut data.0, &data.1).join() {
match vel.direction {
Left => {
pos.0 = pos.0.offset(-vel.speed, 0);
},
Right => {
pos.0 = pos.0.offset(vel.speed, 0);
},
Up => {
pos.0 = pos.0.offset(0, -vel.speed);
},
Down => {
pos.0 = pos.0.offset(0, vel.speed);
},
}
}
}
}

Loading…
취소
저장