Назад

   Боковое движение (стрейфинг) - это отличный способ ловко уходить от ракет или в движении просматривать боковые пространства. Мы продемонстрируем, как реализовать этот режим с использованием клавиш "стрелка вправо" и "стрелка влево". Здесь мы приводим только ту часть кода, которая претерпела изменения по сравнению с предыдущим уроком. По мере добавления новых возможностей в нашей игре, код становится слишком большим, чтобы приводить его целиком.
 
 
 If Leftkey()=1
  XTest# = Newxvalue(X#,Wrapvalue(CameraAngleY#-90),10)
  ZTest# = Newzvalue(Z#,Wrapvalue(CameraAngleY#-90),10)
  If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
   X#=XTest#
   Z#=ZTest#
  Endif
 Endif

 If Rightkey()=1
  XTest# = Newxvalue(X#,Wrapvalue(CameraAngleY#+90),10)
  ZTest# = Newzvalue(Z#,Wrapvalue(CameraAngleY#+90),10)
  If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
   X#=XTest#
   Z#=ZTest#
  Endif
 Endif

 

Боковое движение реализуется с помощью команд "NewXValue" и "NewYValue", предназначенных для определения значений X# и Z# следующей позиции. Для определения координат перемещения влево, мы сначала вычитаем 90 градусов из текущего значения угла поворота камеры "CameraAngleY#", чтобы обозначить направление движения. Чтобы значение угла не превышало 360 градусов, мы применяем команду "WrapValue". Используя значение этого угла в командах "NewValue", мы определяем координаты точки, находящейся в 10 единицах пространственных координат левее. Новые координаты сохраняются в переменных "XTest" и "ZTest". Затем производится проверка этих переменных, чтобы убедиться, что новые значения находятся в пределах матрицы. Если проверка оканчивается успешно, то новые значения сохраняются в переменных "X#" и "Y#" и используются для перемещения камеры. Как вы помните из урока I:2, ось Y проходит от верхней к нижней части экрана, поэтому любой поворот вокруг оси Y будет параллельным по отношению к матрице.

 

Hosted by uCoz