Мой сайт
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории раздела
Blitz3D [5]
Много примеров и статей по работе с Blitz3D
BlitzPlus [0]
DarckBasic [0]
3D GameStudio [0]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » 3D Движки » Blitz3D

Управление Игроком
Управлять игроком, камерой или другими объектами сцены можно так как фантазия позволяет. Вот пример как можно осуществить управление с помощью клавиатуры и мышки. Сохраняем в переменные шаг приращения поворота камеры 

mxspd#=MouseXSpeed ()*0.25 
myspd#=MouseYSpeed ()*0.25

Центрируем курсор 

MoveMouse GraphicsWidth ()/2, GraphicsHeight ()/2

Делаем ограничения поворота камеры по Х (Вы же не сможете вертеть головой на все 360) 

campitch#=EntityPitch(ent)+myspd# 
If campitch#<-85 Then campitch#=-85
If campitch#>85 Then campitch#=85

Поворачиваем камеру 

RotateEntity ent,campitch#,EntityYaw(ent)-mxspd#,EntityRoll(ent)

Ну это что касается поворота камеры, а вот код для её перемещения. 

If KeyDown(17) MoveEntity ent,0,0,.2 Если нажата W, то вперёд
If KeyDown(31) MoveEntity ent,0,0,-.2 Если нажата S, то назад
If KeyDown(32) MoveEntity ent,.2,0,0 Если нажата A, то влево
If KeyDown(30) MoveEntity ent,-.2,0,0 Если нажата D, то вправо

Вот так всё просто, а там как у вас фантазии хватит! 
Пример: 

Graphics3D 800,600,16
SetBuffer BackBuffer()

font=LoadFont("Blitz",14,True)
SetFont font
Camera=CreateCamera()

Cube=CreateCube()
ScaleEntity Cube,1,1,1
PositionEntity Cube,0,0,5
Light=CreateLight()
RotateEntity Light,90,0,0

While Not KeyDown(1)

TurnEntity Cube,0,1,1

mxspd#=MouseXSpeed()*0.25
myspd#=MouseYSpeed()*0.25
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 
campitch#=EntityPitch(Camera)+myspd#
If campitch#<-85 Then campitch#=-85
If campitch#>85 Then campitch#=85
RotateEntity Camera,campitch#,EntityYaw(Camera)-mxspd#,EntityRoll(Camera)

If KeyDown(17) MoveEntity Camera,0,0,.2
If KeyDown(31) MoveEntity Camera,0,0,-.2
If KeyDown(32) MoveEntity Camera,.2,0,0
If KeyDown(30) MoveEntity Camera,-.2,0,0

RenderWorld
UpdateWorld
If KeyHit(57) Then w=1-w
Wireframe w
Text 10,10,"----------TESTING----------"
Flip
Wend
End


Источник: http://x3dgames.net.ru/
Категория: Blitz3D | Добавил: maxturbo (21.05.2010) | Автор: Miha E
Просмотров: 1000 | Комментарии: 1 | Теги: Игроком, игрок, управление | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Corporation MaxTurbo Ltd © 2024