Передайте NEWID () хранимой процедуре

самым простым способом в 2D является угол «ang» и расстояние «d», а ваша начальная точка «x» и «y»:

x1 = x + cos(ang) * distance;
y1 = y + sin(ang) * distance;

В 2D вращение для любого объект может быть просто сохранен как одно значение, ang.

, используя cos для x и sin для y, является «стандартным» способом, который почти каждый делает. cos (ang) и sin (ang) вычерчивают круг с увеличением угла. ang = 0 точек прямо вдоль оси x здесь, и по мере увеличения угла он вращается против часовой стрелки (т.е. на 90 градусов он направлен вверх). Если вы меняете значения cos и sin для x и y, вы получаете ang = 0, направленный вдоль оси y и вращение по часовой стрелке с увеличением ang (поскольку это зеркальное изображение), что на самом деле может быть более удобным для игры, поскольку y-axis часто является «прямым» направлением, и вам может понравиться, что увеличивающиеся углы поворота направо.

x1 = x + sin(ang) * distance;
y1 = y + cos(ang) * distance;

Позже вы можете попасть в векторы и матчи, которые делают то же самое, но в более гибкой но cos / sin отлично подходят для игры в 2D-игре. В 3D-игре использование cos и sin для ротации начинает разрушаться при определенных обстоятельствах, и вы начинаете действительно извлекать выгоду из изучения матричных подходов.

1
задан marc_s 20 March 2019 в 17:51
поделиться

1 ответ

Используйте переменную:

DECLARE @u uniqueidentifier;

SET @u = NEWID();

EXEC dbo.CreateNewbesonUser @u, 0, 'bbad', 0, 'trtr', 0, 0;

Здесь приведен иллюстративный пример в db <> fiddle.

0
ответ дан Gordon Linoff 20 March 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: