private void OnTick() { foreach (var asteroid in _asteroids) { asteroid.Tick(); WrapBounds2DSystem.ProcessMove(asteroid, _spaceBounds); } }
public void wrapXPosition_does_not_wrap_when_at_bounds() { var startPosition = new Vector3(_worldBounds.max.x + halfSize, 0f, 0f); _wrapper.Position.Returns(startPosition); var result = WrapBounds2DSystem.WrapXPosition(_wrapper, _worldBounds); Assert.AreEqual(startPosition.x, result); }
public void wraps_negative_x_and_y() { var startPosition = new Vector3(_worldBounds.min.x - halfSize - 1f, _worldBounds.min.y - halfSize - 1f, 0f); var endPosition = new Vector3(_worldBounds.max.x + halfSize - 1f, _worldBounds.max.y + halfSize - 1f, 0f); _wrapper.Position.Returns(startPosition); WrapBounds2DSystem.ProcessMove(_wrapper, _worldBounds); _wrapper.Received().WrapTo(endPosition); }
public void wrapXPosition_does_wrap_by_1_when_over_bounds_by_1() { var startPosition = new Vector3(_worldBounds.max.x + halfSize + 1f, 0f, 0f); var endPosition = new Vector3(_worldBounds.min.x - halfSize + 1f, 0f, 0f); _wrapper.Position.Returns(startPosition); var result = WrapBounds2DSystem.WrapXPosition(_wrapper, _worldBounds); Assert.AreEqual(endPosition.x, result); }
private void OnTick() { for (int i = _bullets.Count - 1; i >= 0; i--) { _bullets[i].Tick(); // NOTE: Inconsistent updating WrapBounds2DSystem.ProcessMove(_bullets[i], _spaceBounds); if (!_bullets[i].Active) { _bullets.RemoveAt(i); } } }
public void asteroid_wraps_position_when_traveling_positive_on_y() { var endPosition = new Vector3(0, -_halfWorldPlusAsteroidSize + 1f, 0); Asteroid asteroid = An.Asteroid. WithPosition(new Vector3(0, _halfWorldPlusAsteroidSize, 0)). WithVelocity(new Vector3(0, _velocityMagnitude, 0)). WithSize(_asteroidSize, _asteroidSize); AdvanceOneSecondAndUpdate(); WrapBounds2DSystem.ProcessMove(asteroid, _worldBounds); var distance = Vector3.Distance(endPosition, asteroid.Position); Assert.AreEqual(0f, distance, _distanceTolerance); }
public void wrap_value_min_negative_5_max_5_current_negative_6_returns_4() { var result = WrapBounds2DSystem.WrapValue(-5f, 5f, -6f); Assert.AreEqual(4f, result, _tolerance); }
public void wrap_value_min_0_max_5_current_6_returns_1() { var result = WrapBounds2DSystem.WrapValue(0f, 5f, 6f); Assert.AreEqual(1f, result, _tolerance); }
private void Update() { _ship.Tick(); _heading = _ship.Heading; WrapBounds2DSystem.ProcessMove(_ship as IWrapInBounds, _bounds); }