Форум: "Игры";
Текущий архив: 2003.12.09;
Скачать: [xml.tar.bz2];
Внизкак в GLScene делать Найти похожие ветки
← →
Vermut (2003-05-18 19:13) [0]как заставить свой объект двигатся от клавы например танк или машину
Хотябы как нибудь простенько?
А и еще как сделать мультиплееровскую игру
какой компонент
и как
← →
architector (2003-05-18 23:59) [1]Сначала кинь на форму компоненты GLCadencer, GLNavigator и GLUserInterface. В инспекторе обьектов GLUserInterface поставь MouseSpeed 20, GLNavigator выбери тот, который создал. Теперь у GLNavigator"а поменяй UseVirtualUp на false и MovingObject на нужную камеру (или обьект).
uses Keyboard;
...
begin
//Лучше всего писать на событие Progress у Cadencer"а
procedure TForm1.CadencerProgress(Sender: TObject; const deltaTime, newTime: Double);
begin
GLViewer.Invalidate;
GLUserInterface1.MouseLook;
GLUserInterface1.MouseUpdate;
GLUserInterface1.MouseLookActive := true;
if IsKeyDown("w") or IsKeyDown("ц") then GLNavigator1.MoveForward(0.5);
if IsKeyDown("s") or IsKeyDown("ы") then GLNavigator1.MoveForward(-0.5);
if IsKeyDown("a") or IsKeyDown("ф") then GLNavigator1.StrafeHorizontal(-0.5);
if IsKeyDown("d") or IsKeyDown("в") then GLNavigator1.StrafeHorizontal(0.5);
end;
...
end.
А вот мультиплеер можно сделать с помощью DirectPlay (есть в комплекте с DelphiX).
← →
SI-riuss (2003-05-28 02:53) [2]Все примерно так, только скорость перемещения объекта будет зависеть от кадров в секунду, что нехорошо для компов разной мощности.
Необходимо учитывать deltaTime, а именно добавить:
procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,newTime: Double);
var
speed : Single;
begin
if IsKeyDown(VK_UP) then
DummyCube1.Translate(Z*speed, 0, -X*speed);
end;
Между прочим это есть в демке \GLDemos\MESHES\TERRAIN
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.12.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c