Другая неудачная практика может вызвать эту проблему, которая еще не указана.
См. этот фрагмент кода:
Все в порядке, верно?
Что делать, если «a_important_file.php»:
----------This is the end of the an_important_file-------------------
Это не сработает? Почему? Потому что уже создана новая строка.
Теперь, хотя это не общий сценарий, что, если вы используете структуру MVC, которая загружает большое количество файлов перед передачей данных на ваш контроллер? Это не необычный сценарий. Будьте готовы к этому.
Из PSR-2 2.2:
Unix LF (linefeed) line ending
. single blank line
. omitted
из файлов, содержащих only php
Поверьте, следующие стандарты могут сэкономить вам много часов из вашей жизни:)
Вы можете изменить «диапазон» обнаружения. Если вы посмотрите на то, как вы обнаруживаете свои автомобили, вы ищете только координату, в которой расположен спрайт / вектор, для которой будет относительно трудно столкнуться, если будет более нескольких пикселей. , Попробуйте найти положение Car A
из width/length
из Car B
.
Я думаю, что метод равенства не является правильным. И это вызывает некоторые проблемы с обнаружением столкновений. Нельзя предполагать, что два автомобиля с одинаковым свойством являются одним и тем же объектом. Например:
e.add(new Car( 0, 63, 2, new Color(1.0f,1.0f,1.0f, 1.0)));
e.add(new Car( 0, 63, 2, new Color(1.0f,1.0f,1.0f, 1.0)));
В этом случае происходит столкновение, но оно никогда не будет обнаружено, поскольку два объекта с помощью реализованного метода equals одинаковы.
В таких ситуациях, как игровой движок или система моделирования, полезно различать каждый объект в вашем мире с помощью идентификатора, поскольку каждый экземпляр уникален.
Более того, как говорит @Jason, чтобы правильно зафиксировать столкновение, вы должны вычислить длину или ширину объекта.