|
|
Rem Устанавливаем синхронизацию
Rem Создаем кубики в случайном
порядке
Rem Создаем сферу
Rem Основной цикл
Rem Управление камерой с
клавиатуры
Rem Обнаруживаем столкновение
Rem Сохраняем положение игрока в X# и Z#
Rem Получаем новое положение камеры и сохраняем его в cZ# и
cX#
Rem Устанавливаем камеру Rem Направляем камеру на объект
Rem Обновляем экран Loop В этом уроке мы покажем, как использовать команды DarkBASIC для обнаружения столкновений. Мы добавили их в исходный код предыдущего урока. Set object collision to boxes x В цикл, где создаются и размещаются кубические объекты, мы вставили команду "Set Object Collision To Boxes". Она устанавливает тип обнаружения столкновений с объектами в форме куба, то есть соответствующий форме наших объектов. Чтобы передать команде "Set Object Collision To Boxes" номера объектов, мы используем переменную цикла "х". Set object collision to spheres 10 Эта команда тоже устанавливает тип обнаружения столкновений с объектами, но не в форме куба, а в форме сферы, такой, как у нашего объекта-игрока. Выбор типа столкновений зависит от вас. Старайтесь только, чтобы он лучше всего подходил для игры, которую вы создаете. If Object collision(10,0)>0 then position object 10,X#,0,Z# Эта строка кода определяет столкновение объектов. Если наш объект-игрок сталкивается с каким-либо другим объектом, он перемещается в место, где находился перед столкновением. Эти координаты хранятся в переменных X# и Z#. Обратите внимание, что мы определяем столкновение после перемещения объекта и перед тем, как сохраняем новые значения его координат. Этим мы обеспечиваем возвращение объекта-игрока на старое место, где он не может столкнуться с каким-нибудь другим объектом. Команда "Object Collision" используется для проверки столкновения. Первый параметр в скобках - это номер вашего объекта-игрока, для которого определяется столкновение. Второе значение - номер объекта, столкновение с которым вашего объекта-игрока нужно проверить. Здесь мы применяем значение 0, чтобы DarkBASIC обнаруживал столкновение с любым объектом. В этом случае команда "Object Collision" возвращает номер объекта, с которым столкнулся объект под номером 10, и значение 0, если столкновения не произошло. Если эта команда возвратит значение больше 0, то столкновение обнаружено, и мы помещаем объект-игрок в то место, где он находился перед столкновением. Еще один тип столкновений - полигонный. Он используется при обнаружении столкновений с крупными объектами, такими как здания, построенными вами в 3D-сцене. Теперь, после знакомства с новыми командами, вы можете применять обнаружение столкновений в своих программах. Чтобы научиться свободно пользоваться ими, попробуйте внести в них следующие изменения. Попробуйте поменять значение второго параметра в команде "Object Collision" на 3. Перемещаясь по 3D-сцене и сталкиваясь с кубическими объектами, попытайтесь найти объект под номером 3. Измените тип столкновений, чтобы обнаруживать столкновения объекта-игрока с объектами не в форме сферы, а в форме куба, и посмотрите, как это отражается на столкновениях с объектами в форме куба. |