Форум: "Игры";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизЧто там по трению? :) Найти похожие ветки
← →
Galiaf © (2006-03-02 14:58) [0]Необходимо реализовать столкновение со стенами, DCE не подойдёт по тому, что в игре происходит установка бомб прямо в позиции игрока и в этом случае игрок застревает при установке бомб(если конечно кто знает как это реализовать в DCE or ODE, говорите). Пробовал делать движение по-своему:
procedure TDataModule1.move(napr: spec);
var
pp: array[1..4] of byte;
begin
x:=round(player.Position.x);
z:=round(player.Position.z);
{ pp[1]:=round(player.Position.x+r);
pp[2]:=round(player.Position.x-r);
pp[3]:=round(player.Position.z+r);
pp[4]:=round(player.Position.z-r);}
if (player.Direction.x>0) then
case napr of
0: pp[1]:=round(player.Position.x+r);
1: pp[1]:=round(player.Position.x-r)
end
else
case napr of
0: pp[1]:=round(player.Position.x-r);
1: pp[1]:=round(player.Position.x+r)
end;
if (player.Direction.z>0) then
case napr of
0: pp[2]:=round(player.Position.z+r);
1: pp[2]:=round(player.Position.z-r)
end
else
case napr of
0: pp[2]:=round(player.Position.z-r);
1: pp[2]:=round(player.Position.z+r)
end;
{lev - матрица уровня}
case napr of
0: //вперёд
begin
{ if (pp[1]=x) and (pp[2]=z) then begin
player.Position.X:=player.Position.X+player.Direction.X/10;
player.Position.z:=player.Position.z+player.Direction.z/10
end
else}
if lev[pp[1],pp[2]]=-1 then begin
player.Position.X:=player.Position.X+player.Direction.X/10;
player.Position.z:=player.Position.z+player.Direction.z/10
end
end;
{ 1: //назад
begin
if lev[x1,z]=-1 then player.Position.X:=player.Position.X-player.Direction.X/10;
if lev[x,z1]=-1 then player.Position.z:=player.Position.z-player.Direction.z/10
end;
2: //влево
begin
if lev[x1,z]=-1 then player.Position.X:=player.Position.x+player.Direction.z/10;
if lev[x,z1]=-1 then player.Position.z:=player.Position.z-player.Direction.x/10
end;
3: //вправо}
end;
В этом случае игра начинает страшно глючить ибо эта процедура запускается в каденсере и из-за большого количества вычислений (по моему) идёт туговато, а если переделывать так чтобы не застревал в бомбе, то вычислений ещё больше. Есть ли у кого идеи?
P. S.
Процедурка сейчас выглядит плохо, это потому что я её уже много раз переделывал и пока осталась только обработка движения вперёд, и то не такая как надо.
← →
VolanD666 (2006-03-03 05:14) [1]Sphere+triangles
← →
Galiaf © (2006-03-03 18:06) [2]Это ты что только что сказал?
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c