Конечно, рассмотренные выше методы не являются исчерпывающими. Рассмотрим ещё несколько видов оптимизации:
1) "Замена условий формулой"
Это просто замена нескольких IF одной формулой. Вот основные виды:
а)"Переключатель двух состояний"
То есть просто переменная, которая может принимать значения 1 или 0 :
или
Всё просто.
б)"Преключатель N состояний"
Это переменная, которая может принимать значения 0,1...N :
If KeyHit(57) K=(K+1) Mod N
в)"Минимумы и максимумы"
Часто используется для переменных, которые возратают (или уменьшаются) только до какого-то определенного значения (например для скорости):
Speed=Speed + (1 And Speed < 2)*.5
г)"Модули"
Используется реже, например здесь:
вместо
If EntityPitch(cam)<75 And EntityPitch(cam)>-75 Then
можно использовать
If Abs(EntityPitch(cam))<75 Then
2)"Исключение медленных операций"
Например, если вам надо определить расстояние между точками в 2D ( в 3D всегда исрользуйте
EntityDistance - эта команда значительно быстрее любых подсчетов через координаты!), вы наверняка используете что-то вроде этого:
d=Sqr((x1-x2)^2+(y1-y2)^2)
If d<10 Then
...
End If
Но вы должно быть знаете, что Sqr - ОЧЕНЬ МЕДЛЕННАЯ команда, поэтому лучше написать так (как бы возвести все в квадрат):
d=(x1-x2)^2+(y1-y2)^2
If d<100 Then
...
End If
Результат от этого не изменится, а скорость выполнения увеличится!
P.S. Ну вот вроде все
! Если знаете что-то еще, добавляйте.