public PortalEntity(Guid id, Regulus.Types.Rect vision,string target_map, Types.Vector2 target_position) : base(id) { _TargetPosition = new Types.Vector2(); _TargetPosition.X = target_position.X; _TargetPosition.Y = target_position.Y; _TargetMap = target_map; _Vision = vision; _Position = new Types.Vector2(); _Position.X = (float)(_Vision.X + _Vision.Width /2); _Position.X = (float)(_Vision.Y + _Vision.Height / 2); }
public PortalEntity() { Vision = new Types.Rect(); TargetPosition = new Types.Vector2(); }
public EntityInfomation() { Position = new Types.Vector2(); }
public void Move(Types.Vector2 end, long time) { _Start = Regulus.Utility.ValueHelper.DeepCopy(_DBActorInfomation.Property.Position); _End = end; _BeginTime = time; float x = System.Math.Abs(_End.X - _Start.X); float y = System.Math.Abs(_End.Y - _Start.Y); _Distance = Math.Sqrt(x * x + y * y); _Vector.X = x ; _Vector.Y = y ; _TotalTime = _Distance / _DBActorInfomation.Property.Speed; }
void _UpdateMover(long time, System.Collections.Generic.IEnumerable<Utility.OBB> obbs) { if (_MoveSpeed > 0) { var dt = (float)new System.TimeSpan(time - _CurrentTime).TotalSeconds; if (dt > 0) { Regulus.Types.Vector2 moveVector = new Types.Vector2(); moveVector.X = _UnitVector.X * dt * _MoveSpeed; moveVector.Y = _UnitVector.Y * dt * _MoveSpeed; _CurrentTime = time; Utility.OBB testobb = new Utility.OBB(_Obb.getX() + moveVector.X, _Obb.getY() + moveVector.Y, _Obb.getWidth(), _Obb.getHeight()); testobb.setRotation(_Obb.getRotation()); foreach (var obb in obbs) { if (testobb.isCollision(obb) == false) { continue; } Utility.OBB safeobb = new Utility.OBB(_Obb.getX() , _Obb.getY() , _Obb.getWidth(), _Obb.getHeight()); safeobb.setRotation(_Obb.getRotation()); do { moveVector.X += 0 - _UnitVector.X * dt * _MoveSpeed; moveVector.Y += 0 - _UnitVector.Y * dt * _MoveSpeed; safeobb.setXY(_Obb.getX() + moveVector.X, _Obb.getY() + moveVector.Y ); } while (safeobb.isCollision(obb)); if (PositionEvent != null) PositionEvent(time, moveVector); _Act(ActionStatue.GangnamStyle, 0, 0); return; } if (PositionEvent != null) PositionEvent(time, moveVector); } } else { _Update = _Empty; } }
public EntityPropertyInfomation() { Position = new Types.Vector2(); Map = ""; }