Несколько вариантов оптимизации, которые вы можете рассмотреть:
1) В отличие от других языков, vb оценивает все выражения в выражении.Другими словами:
Если FunctionA = true и FunctionB = true, то DoSomething
всегда будет запускать FunctionB, даже если FunctionA был false.В своем таймере вы можете проверить, что j не равно f в операторе if перед проверкой столкновения, чтобы не тратить время на проверку этого столкновения, когда вы уже знаете, что собираетесь его игнорировать.
2)Если я выполню цикл от 1 до 3 во внешнем и внутреннем цикле, то получу сравнение:
1 - 1
1 - 2
1 - 3
2 - 1
2 - 2
2 - 3
3 - 1
3 - 2
3 - 3
Если бы я был умным, я бы заставил мой внутренний цикл начать на один уровень выше, чем мой внешний цикл.Тогда я получаю только следующее:
1 - 2
1 - 3
2 - 3
Это намного меньше циклов, и это только на 3 числах.
Попробуйте заменить строку цикла for на это: Для j = f +1 To Platform.Count - 1
И если вы сделаете это, вы получите дополнительное преимущество, так как вам не нужно проверять также j <> f.