moveFromAngle method
Move Player to direction by radAngle
Implementation
bool moveFromAngle(double speed, double angle) {
double nextX = (speed * dtUpdate) * cos(angle);
double nextY = (speed * dtUpdate) * sin(angle);
Offset nextPoint = Offset(nextX, nextY);
final rect = toRect();
Offset diffBase = Offset(
rect.center.dx + nextPoint.dx,
rect.center.dy + nextPoint.dy,
) -
rect.center;
Offset newDiffBase = diffBase;
Rect newPosition = rect.shift(newDiffBase);
if (_isCollision(newPosition.positionVector2)) {
onMove(0, getDirectionByAngle(angle), angle);
return false;
}
isIdle = false;
position = newPosition.positionVector2;
onMove(speed, getDirectionByAngle(angle), angle);
return true;
}