![]() |
||||
| Новости | Новинки | Контакты | ||||
| Свобода 3D Можно, конечно, до посинения смотреть на разные там вращающиеся
кубы, сферы, конусы, цилиндры, свет, камеры – но когда-нибудь это надоест.
Кроме того – игра (а ведь мы именно игры хотим писать а не всякие там
трёхмерные абстрактные пейзажи) требует ввода чего-нить-там с клавиатуры…
Graphics3D 640,480,16,1 SetBuffer BackBuffer() cam=CreateCamera() PositionEntity cam,0,5,-10 lit=CreateLight() cub=CreateCube() Repeat UpdateWorld RenderWorld Flip Until KeyHit(1) End
В нашем распоряжении имеется куб. Наша миссия двигать его, в направлении, задаваемом с клавиатуры. Итак, новые команды: KeyDown(сканкод) – (вообще-то не команда, а функция) – проверяет, нажата ли соответствующая клавиша. В скобках нужно указать сканкод клавиши (Сканкоды клавиш можно узнать в хелпе Блитц3Д, в разделе Command Reference). Мы будем управлять клавишами управления курсора и манипулятором типа мышь J. Значит сразу напишу сканкоды (всем запомнить – пригодится): кнопка вверх – 200, вниз – 208, влево – 203, вправо – 205. С мышой потом. Далее… MoveEntity объект, перемещение по X, по Y, по Z – перемещает объект относительно своей собственной системы координат (помните писал J). Так, у нас есть команда проверки нажатия клавиш, и есть команда перемещения объекта… осталось только связать их вместе. Как это сделать? Очевидно, просто надо поставить условие – н-р. ЕСЛИ НАЖАТА кнопка ВВЕРХ то ПЕРЕДВИНУТЬ ОБЪЕКТ ВПЕРЁД, ну, и так далее… Я надеюсь вы прочитали туториал по основам БлитцБейсика, поэтому команду условия IF я уж объяснять не буду… А так это должно выглядеть:
If KeyDown(200) MoveEntity cub,0,0,.1
If KeyDown(208) MoveEntity cub,0,0,-.1 If KeyDown(203) MoveEntity cub,-.1,0,0 If KeyDown(205) MoveEntity cub,.1,0,0
SetBuffer BackBuffer() cam=CreateCamera() PositionEntity cam,0,5,-10 lit=CreateLight() cub=CreateCube() Repeat If KeyDown(200) MoveEntity cub,0,0,.1 If KeyDown(208) MoveEntity cub,0,0,-.1 If KeyDown(203) MoveEntity cub,-.1,0,0 If KeyDown(205) MoveEntity cub,.1,0,0 UpdateWorld RenderWorld Flip Until KeyHit(1) End
|
||||
|
||||