Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование с нуля - это совсем просто! 186) Зеркало и точка центра


Школа программирования

186) Зеркало и точка центра

Зеркало

По аналогии с поверхностью, в BlitzBasic имеются средства создания бесконечных зеркальных пространств. Само по себе зеркало прозрачно, поэтому его имеет смысл использовать в сочетании с другими объектами, для которых дополнительно необходимо указывать степень прозрачности (альфа-канал), чтобы проявился зеркальный эффект.

Простейший способ создания зеркальной поверхности:

  // создаем поверхность
  plane=CreatePlane()

  // текстура
  grass_tex=LoadTexture( "m.bmp" )
  EntityTexture plane, grass_tex

  // наполовину прозрачно
  EntityAlpha plane,0.5

  // создаем зеркало, и в нем будут видны отражения объектов над
  plane
  mirror=CreateMirror()

Точка центра (pivot)

Во многих случаях бывает удобно управлять набором объектов как одним целым. Для этого можно создать единую невидимую точку центра, указывать ее в качестве родителя подчиненных объектов, и в дальнейшем все манипуляции над этой точкой будут также действовать и на все подчиненные ей объекты-дети. При этом манипуляции над подчиненными объектами не затронут точку центра.

Точка центра создается командой

CreatePivot ()

Пример.

  ; создана точка центра
  pivot=CreatePivot()

  ; создаем шар, с родителем-точкой центра
  sph=CreateSphere(16,pivot)

  ; ставим шар в 5 единицах перед точкой
  PositionEntity sph,5,0,0

  while not KeyDown(1)

  ; вращаем точку - шар вращается вместе с ней, по радиусу вокруг
  нее
  TurnEntity pivot,0,1,0

  RenderWorld
  Flip

  Wend

Важно! Во время движения точки центра с подчиненными ей объектами важно понимать, что точка центра не эквивалентна камере, и перемещения этих объектов происходят по отношению к точке-родителю, а не к камере.

Задание. Напишите программу, которая перемещает всю группу связанных друг с другом объектов (шары, прямоугольники) над зеркальным пространством.


(c) 2004-2008 Сергей Бобровский

Школа программирования с нуля
Все предыдущие выпуски базового курса всегда тут:
http://www.infiltration.ru/p/

Неофициальный сайт поддержки (со срочными вопросами - сюда):
www.prog-begin.net.ru.


Мои книги (учебные курсы) "Технологии Delphi / C++ / C#".
http://shop.piter.com/publish/authors/17681/191180213/
Дизайн рассылки: Алексей Голубев - Web-дизайн и web-программирование


В избранное