Автор Тема: Странное поведение в BGE  (Прочитано 36121 раз)

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #60 : 05 Апрель 2018, 19:13:02 »
... про def:
https://pythonworld.ru/tipy-dannyx-v-python/vse-o-funkciyax-i-ix-argumentax.html

>> Как Python их обрабатывает, в какой последовательности? В каждом кадре при вызове контроллером?
... рассматривай функцию как часть кода, который ограничен от слов def до окончания цепочки операторов ...
... указанная часть кода может быть выполнена в ходе программы вызовом этой функции (можешь представить, что тело этой функции, то есть всю цепочку операторов вставили на место откуда был вызов) ...
... в случае с этими 5 строчками, кроме присвоения z=Vector((0,0,1)), другие строчки не выполняются, а мы просто договариваемся, что у нас будут определены (заготовлены заранее) два куска кода, который мы будем переодически вызывать из другой части программы ...
... init вызывается актуатором Always объекта ground (поверхность), и в ходе выполнения этой функции на ground навешивается обратный вызов при срабатывании коллизии (сами коллизии обрабатывает внутренняя логика bge), поэтому в коде модуля вызова callback нет ...

Оффлайн Samovar

  • Житель
Re: Странное поведение в BGE
« Ответ #61 : 05 Апрель 2018, 21:35:46 »
Цитировать
И, ещё. Просматривая готовые файлы, попадаются такие фрагменты:
VertexShader = """
varying vec4 fragPos;
varying float timer;


void main()
{
   vec3 pos = vec3(gl_Vertex);


    fragPos = ftransform();
    gl_Position = ftransform();
    gl_TexCoord[0] = gl_MultiTexCoord0;
}


"""
Текст в тройных кавычках и сами кавычки в текстовом редакторе Blender'а отображаются в красном цвете. Что это означает и как эти строки обрабатывает Python?
Это GLSL https://ru.wikipedia.org/wiki/OpenGL_Shading_Language

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #62 : 05 Апрель 2018, 22:17:35 »
Всем огромное спасибо за помощь. Теперь необходимо чтобы полученная информация уложилась и систематизировалась в голове, а это может быть длительным процессом.
Николай, коль удастся создать след на сетке поверхности, может найдёшь способ его показать? Пока.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #63 : 06 Апрель 2018, 02:49:29 »
>> удастся создать след на сетке поверхности, может найдёшь способ его показать?
... поясни суть вопроса, непонятно же - что и где требуется показать ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #64 : 06 Апрель 2018, 07:44:22 »
>> удастся создать след на сетке поверхности, может найдёшь способ его показать?
... поясни суть вопроса, непонятно же - что и где требуется показать ...
Мой ответ « Ответ #44 : 01 Апреля 2018, 18:44:13 »:
«Документ Ворда 2003 года сможешь прочитать?»
Мой ответ « Ответ #47 : 02 Апреля 2018, 11:12:44 »:
«Николай, сейчас роясь в своих архивах, набрёл на скопированный мною текст. Ссылку, откуда скопировал, к сожалению не сохранил. Может, чем интересна будет тебе.
Blender там какой-то старой версии, наверное, какой-нибудь из сороковых, соответственно и Python тоже допотопный. Что один, что другой мне вообще не ведомы, как и их интерфейсы. Пытался разобраться, но эта головоломка оказалась не по силам.
Как думаешь, для BGE подобная идея может быть применима?»
Приложил файл «Снова о мешах _ создание отпечатков.doc».
Цитировать
сейчас роясь в своих архивах набрёл на скопированный мною текст. Ссылку, откуда скопировал, к сожалению не сохранил.
Книга называется "Написание скриптов для Blender 2.49", я её в 2010 году переводил: http://striver00.ru/files/Scripting_Blender_2.49_ru.pdf
Николай, суть вопроса, возможно ли создание подобного описанному следу в BGE?»

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #65 : 06 Апрель 2018, 13:29:37 »
... исходя из описания, такое делать можно ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #66 : 06 Апрель 2018, 16:36:10 »
... исходя из описания, такое делать можно ...
Коль надумаешь попробовать, поделишься соображениями (наработками)?

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #67 : 09 Апрель 2018, 12:52:47 »
Николай, если есть время, помоги сориентироваться.
Добавил ещё одно колесо и сферу - затеял опробовать ещё один, отличный от первого, след.
Упёрся в непонятку сразу. Почему я не могу отделаться от следа за сферой, ведь я её не пропускаю к образованию следа, или он образуется дублем ещё откуда-то?
Вообще я смогу для сферы использовать другой, отличный от первого, след в данном файле?

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #68 : 10 Апрель 2018, 01:46:32 »
>> ведь я её не пропускаю к образованию следа, или он образуется дублем ещё откуда-то?
... на самом деле ты не делаешь этого, посмотри где добавляется след (ob = sc.addObject(sl)), а где ты его не пропускаешь ...
... то есть у тебя след в сцену добавляется без условно, а изменение его положения происходит по условию ...


ps  ещё можно обработчик коллизии цеплять не на поверхность, а к колесу, тогда у сферы не будет этого вызова и следовательно не будет формироваться след ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #69 : 10 Апрель 2018, 08:44:54 »
>> ведь я её не пропускаю к образованию следа, или он образуется дублем ещё откуда-то?
... на самом деле ты не делаешь этого, посмотри где добавляется след (ob = sc.addObject(sl)), а где ты его не пропускаешь ...
... то есть у тебя след в сцену добавляется без условно, а изменение его положения происходит по условию ...


ps  ещё можно обработчик коллизии цеплять не на поверхность, а к колесу, тогда у сферы не будет этого вызова и следовательно не будет формироваться след ...
Понятно, освобожусь немного и посмотрю внимательнее.
Николай, тут проблема родилась из-за возможности использования нескольких видов следов - у колеса это один след, у другого это может быть другой, у сферы - это третий и т.д.
Возможно решение такой задачи? Если возможно, то как осуществить отбор необходимого следа для объекта? Все следы должны быть на разных неактивных слоях или могут быть на одном?

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #70 : 10 Апрель 2018, 13:28:36 »
>> Все следы должны быть на разных неактивных слоях или могут быть на одном?
... наверное без разницы ...

>> у колеса это один след, у другого это может быть другой, у сферы - это третий и т.д.
... технологически у каждого колеса может быть свой обработчик коллизий с индивидуальным алгоритмом ...
... или как сейчас - обработчик коллизий прикреплён к поверхности, и чтобы различать в общем обработчике коллизий какой сценарий обработки вызвать, нужно проверять либо дополнительно созданное свойство или например имя объекта, которое передаётся в параметрах вызова обработчика (object) ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #71 : 10 Апрель 2018, 20:43:32 »
>> ведь я её не пропускаю к образованию следа, или он образуется дублем ещё откуда-то?
... на самом деле ты не делаешь этого, посмотри где добавляется след (ob = sc.addObject(sl)), а где ты его не пропускаешь ...
... то есть у тебя след в сцену добавляется без условно, а изменение его положения происходит по условию ...
Всё-таки забавно, я ведь считал, что след добавляется в список объектов сцены ob. Точка вставки объекта sled  в сцену пока не определена, так куда в этом случае вставка производится?
Цитировать
ps  ещё можно обработчик коллизии цеплять не на поверхность, а к колесу, тогда у сферы не будет этого вызова и следовательно не будет формироваться след ...
Николай, я пытался применять к колёсам – взгляни в редактор логики в данном мною файле на блоки с активными колёсами. Неправильный подход к отбору объектов, за которыми должен быть след, сбил меня, и я отказался от этой затеи разъединив связи между блоками.
Сейчас я пошёл по этому пути, учитывая твои замечания. Всё вроде работает так, как я этого хотел. Всё, однако, непонятна странность. Взгляни на распечатку консоли – идёт двойное обращение к модулю. За счёт чего?

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #72 : 10 Апрель 2018, 20:56:45 »
На всякий случай даю изменённый файл.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #73 : 10 Апрель 2018, 21:11:21 »
>>Точка вставки объекта sled  в сцену пока не определена, так куда в этом случае вставка производится?
... в ноль ...

>> За счёт чего?
... вот когда ты соединил сенсор с контроллером, что ты ожидал получить? ...
... в этом ответ ...

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #74 : 10 Апрель 2018, 21:26:55 »
... поясню свой вопрос ...
... ты соединил сенсор с контроллером, который должен вызывать функцию init модуля app ...
... ты сделал это для двух колес, поэтому у тебя при старте дважды вызывается функция init ...
... в функции init идёт назначение обратного вызова callback для коллизии по поверхности ...
... и теперь таких обратных вызова назначено два ...
... отсюда ответ на твой вопрос "за счёт чего" ...
... то есть ты не сделал назначение обратных вызовов для колес, а сделал двойной вызов функции init в которой назначается обратный вызов для поверхности ...


 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 1828
Автор: LEXA ANЭGROWND
blender.png
Скачано: 1862
Автор: ipv2007
4.png
Скачано: 1882
Автор: hiroyukiss
2.png
Скачано: 1894
Автор: hiroyukiss

Скачано: 1871
Автор: Dilifa12