Игра от 3го лица


Автор Сообщение

Самый нубский нуб
Группа: Участники
Сообщений: 37
Добавлено: 04-01-2009 16:57
народ у меня вопрос можно ли сделать игру от 3го лица но чтоб персом можно было управлять мышкой?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 05-01-2009 08:19
Конечно можно. Если надо, выложу пример

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 05-01-2009 09:31
Вот:
http://xtreme3d.narod.ru/files/engines/x3d_3rdperson.zip (1.4 Мб)
Ходить WASD (вернее, пока только WS), прыгать пробелом.

Самый нубский нуб
Группа: Участники
Сообщений: 37
Добавлено: 13-01-2009 20:05
Вот:
http://xtreme3d.narod.ru/files/engines/x3d_3rdperson.zip (1.4 Мб)
Ходить WASD (вернее, пока только WS), прыгать пробелом.

а можн чтоб он еще вверх и в низ смотрел ???? и желательно с за грузкой карты)))

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 14-01-2009 19:40
Ну ты может хочешь, чтобы я за тебя всю игру написал? Шучу :))
В скором времени займусь улучшением примера, там можно будет смотреть (и стрелять) во все стороны, плюс разннобразное оружие, враги, загрузка карты и пр.
А ты меня не жди - изучай примеры и сам пиши)))

Самый нубский нуб
Группа: Участники
Сообщений: 37
Добавлено: 15-01-2009 16:14
Ну ты может хочешь, чтобы я за тебя всю игру написал? Шучу :))
В скором времени займусь улучшением примера, там можно будет смотреть (и стрелять) во все стороны, плюс разннобразное оружие, враги, загрузка карты и пр.
А ты меня не жди - изучай примеры и сам пиши)))

ок спс за совет)


Группа: Участники
Сообщений: 3
Добавлено: 22-04-2009 19:08
А как сделать чтобы как в rpg щёлкнул мышкой на место и туда персонаж побежал?

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 22-04-2009 20:50
Предлагаю такое решение.

1. В событии Create выставляем камере FOV равное 90:

CameraSetFocal(camera,90);

2. В событии Step:

//Узнаем позицию камеры:
xx=ObjectGetAbsolutePosition(camera,0);
yy=ObjectGetAbsolutePosition(camera,1);
zz=ObjectGetAbsolutePosition(camera,2);
//Узнаем вектор Direction камеры:
dx=ObjectGetDirection(camera,0);
dy=ObjectGetDirection(camera,1);
dz=ObjectGetDirection(camera,2);
//Узнаем вектор Up камеры:
tfov=tan(45*pi/360); //45 - половина FOV камеры
ux=ObjectGetUpVector(camera,0)*tfov;
uy=ObjectGetUpVector(camera,1)*tfov;
uz=ObjectGetUpVector(camera,2)*tfov;
//Узнаем вектор Left камеры:
vx=ObjectGetLeftVector(camera,0)/2.2;
vy=ObjectGetLeftVector(camera,1)/2.2;
vz=ObjectGetLeftVector(camera,2)/2.2;
//Конвертируем координаты мыши в трехмерные:
width=2*mouse_x/window_get_width()-1;
height=1-2*mouse_y/window_get_height();
mx = dx+ux*height-vx*width;
my = dy+uy*height+vy*width;
mz = dz+uz*height+vz*width;
place_x=xx-yy*mx/my;
place_z=zz-yy*mz/my;

Координаты place_x и place_y и будут указывать, куда щелкнул игрок и куда должен бежать персонаж.
Если надо, выложу пример.


Группа: Участники
Сообщений: 3
Добавлено: 23-04-2009 18:10
Можно и пример

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 24-04-2009 15:44
Вот и пример


Группа: Участники
Сообщений: 3
Добавлено: 24-04-2009 18:45
Спасибо, теперь понятно

 

Offtop.ru © 2003