Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2021, 17:58   #1
leon2009sp
Форумчанин
 
Регистрация: 22.12.2015
Сообщений: 119
Стрелка как сделать рекцию на прокси объект

Здравствуйте! не могу сообразить как сделать реакцию на проси объект
Код:
for j2 := 1 to 4 do begin
proxy_acorn:=TGLProxyObject(form1.proxy_ac1.AddNewChild(TGLProxyObject));
with proxy_acorn do begin
         MasterObject:=form1.GLDummyAc1;
         ProxyOptions:=[pooObjects];
         Direction:=form1.GLDummyAc1.Direction;
         Up:=form1.GLDummyAc1.Up;
         s2:=form1.GLDummyAc1.Scale.AsVector;
         f2:=(1);
         ScaleVector(s2, f2);
         Scale.AsVector:=s2;
         //turnangle:=j2*360;
         Position.SetPoint(form1.GLDummyAc1.Position.x-random(8), form1.GLDummyAc1.Position.Y,form1.GLDummyAc1.Position.z-random(8));
         //proxy_acorn.Name:=proxy_acorn.Name+'1';
         form1.GLHUDText2.Text:=inttostr(proxy_ac1.Count);
на клавишу
Код:
if iskeydown('2') then  proxy_acorn.Pitch(deltatime*1);
но объектов 10 и пр нажатие на 1 крутиться первый, на 2 второй и.т.д.
а у меня получилось, что только один крутиться
leon2009sp вне форума Ответить с цитированием
Старый 29.07.2021, 20:51   #2
leon2009sp
Форумчанин
 
Регистрация: 22.12.2015
Сообщений: 119
По умолчанию

пробовал так:
Код:
if iskeydown('2') then begin
 for i:=1 to proxy_acorn.Count -1 do 
 proxy_acorn[i] .Pitch(deltatime*2);
end;
так:
Код:
if iskeydown('2') then  proxy_acorn[2] .Pitch(deltatime*2);
if iskeydown('3') then  proxy_acorn[3] .Pitch(deltatime*2);

Последний раз редактировалось leon2009sp; 29.07.2021 в 20:52. Причина: 1
leon2009sp вне форума Ответить с цитированием
Старый 31.07.2021, 15:33   #3
leon2009sp
Форумчанин
 
Регистрация: 22.12.2015
Сообщений: 119
Печаль движение

передвигается только последний прокси т.е.:
proxy_acorn[4] ни 1 ни 2 а последний 4й, т.к. я их наплодил 4шт.
leon2009sp вне форума Ответить с цитированием
Старый 31.07.2021, 17:40   #4
leon2009sp
Форумчанин
 
Регистрация: 22.12.2015
Сообщений: 119
Лампочка нумеровка

если дать имена прокси объектам:
Код:
procedure TForm1.Mushroom2;
begin
for j2 := 1 to 4 do begin
proxy_acorn:=TGLProxyObject(form1.proxy_ac1.AddNewChild(TGLProxyObject));
with proxy_acorn do begin
         MasterObject:=form1.GLDummyAc1;
         ProxyOptions:=[pooObjects];
         Direction:=form1.GLDummyAc1.Direction;
         Up:=form1.GLDummyAc1.Up;
         s2:=form1.GLDummyAc1.Scale.AsVector;
         f2:=(1);
         ScaleVector(s2, f2);
         Scale.AsVector:=s2;
         //turnangle:=j2*360;
         Position.SetPoint(form1.GLDummyAc1.Position.x-random(8), form1.GLDummyAc1.Position.Y,form1.GLDummyAc1.Position.z-random(8));
         //form1.GLHUDText2.Text:=proxy_acorn.Name+'acront'+inttostr(j2);

         Name:='acront'+inttostr(j2);

         //memo1.Lines.Add(proxy_acorn.Name);
         memo1.Lines.Add(inttostr(proxy_acorn.Count));
end;end;end;
то здесь все отлично! acront1 acront2 acront3 acront4...
НО
Код:
procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,
  newTime: Double);
  var mo1:integer;
begin
memo1.Lines.Add(proxy_acorn.Name);
end;
в каденсере выдает пустые строки... это можно поправить?
leon2009sp вне форума Ответить с цитированием
Старый 01.08.2021, 06:50   #5
leon2009sp
Форумчанин
 
Регистрация: 22.12.2015
Сообщений: 119
Печаль пример легче

почему я не могу ничего сделать со сферами в каденсере???
Код:
procedure TForm1.Mushroom2;
var
i, j : Integer;

begin
for i:=0 to 4 do {for j:=0 to 4} do begin
      newSphere:=(proxy_ac1.AddNewChild(TGLSphere) as TGLSphere);
      newSphere.Position.SetPoint(i*2, 0.5, 2*2);
      newSphere.Slices:=32;
      newSphere.Stacks:=32;
      newSphere.Name:='acron'+inttostr(i);
      memo1.Lines.Add(newSphere.Name);
end;
leon2009sp вне форума Ответить с цитированием
Старый 01.08.2021, 15:23   #6
leon2009sp
Форумчанин
 
Регистрация: 22.12.2015
Сообщений: 119
Злость ругань

испытание №4
Код:
if iskeydown('4') then  // memo1.lines.add(proxy_acorn.Name);
begin 
for i:=1 to newSphere.count do
newSphere.Children[4].Position.Y:=2;
end;
или
Код:
if iskeydown('2') then  // memo1.lines.add(proxy_acorn.Name);
begin 
for i:=1 to newSphere.count do
newSphere.Children[2].Position.Y:=2;
end;
ругается матом
leon2009sp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать объект растягиваемым? Kiten Общие вопросы Delphi 27 15.07.2015 19:04
Как сделать так, чтобы при наведении мышкой на объект, который находится под другим, этот объект выходил на первый план? Zaza7 HTML и CSS 3 17.01.2013 10:23
Как сделать счтывание прокси из ini файла Navado Общие вопросы Delphi 14 07.12.2012 18:53
как сделать что бы объект не выходил за пределы формы artem_degtev Помощь студентам 3 18.12.2011 00:11
Как сделать прокси сервер с измененным ответом delphi-proger Фриланс 2 25.11.2009 17:51