Автор Тема: Нужна подсказка  (Прочитано 5663 раз)

Оффлайн Barabashka

  • Житель
Нужна подсказка
« : 26 Сентябрь 2016, 12:43:45 »
Всем добрый день. Подскажите как можно сохранить значение свойства чтобы оно имело то же значение при переходе в другие сцены? У меня при переходе оно принимает значение по умолчанию.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Нужна подсказка
« Ответ #1 : 26 Сентябрь 2016, 18:18:10 »
... это bge? ...
Для Кота

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #2 : 26 Сентябрь 2016, 18:38:10 »
Совершенно верно. Никак не могу найти способ передать значения свойства объекта из одной сцены в другие - обнуляется и всё тут.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Нужна подсказка
« Ответ #3 : 26 Сентябрь 2016, 18:47:22 »
... а в качестве переменной модуля уже пробовал? ...
Для Кота

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #4 : 26 Сентябрь 2016, 20:02:57 »
sungreen, да слаб я ещё в Питоне и BGE, к тому же занимаюсь ими с большими перерывами – они для меня, как и вообще Blender только хобби, развлечение.
Что такое переменная модуля, как она объявляется, как назначается её значение, и как считывается, пока не знаю. Заинтересовался скриптами. Имею общее представление составления программ на Паскале и Визуал Бейсике. Заняться глубоким изучением языков программирования пока не представляется возможным потому и занимаюсь верхоглядством.


Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Нужна подсказка
« Ответ #5 : 26 Сентябрь 2016, 20:34:41 »
... используй bge.logic.globalDict для обмена между сценами и сохранения результатов ...
... тебе нужно проинициализировать словарь при "загрузке" ...
... и далее сохранять и читать глобальные данные через него ...

Код: python
import bge

def init():
    bge.logic.globalDict['mv']={'x':0}

def used(cont):
    mv=bge.logic.globalDict['mv']
    x=mv['x']+1
    bge.logic.globalDict['mv']={'x':x}
    print(cont.name,mv)

... пример во вложении - запусти сцену {P} и нажми пробел для перехода в другую сцену, при этом  счетчик не потеряет позицию ...
Для Кота

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #6 : 27 Сентябрь 2016, 16:02:52 »
... используй bge.logic.globalDict для обмена между сценами и сохранения результатов ...
... тебе нужно проинициализировать словарь при "загрузке" ...
... и далее сохранять и читать глобальные данные через него ...

import bge

def init():
    bge.logic.globalDict['mv']={'x':0}

def used(cont):
    mv=bge.logic.globalDict['mv']
    x=mv['x']+1
    bge.logic.globalDict['mv']={'x':x}
    print(cont.name,mv)
Спасибо sungreen за ваше внимание к моей проблеме, вами написанное здорово, но пока не очень понятно.
1. def init():
Как я понимаю, эта строка инициирует модуль?
2. bge.logic.globalDict['mv']={'x':0}
«mv» в квадратных скобках это имя инициируемого модуля?
В фигурных скобках присваивается нулевое значение некой переменной «х» - я правильно понял? Что это за переменная, произвольно названная «х» или есть какие-то условности?
Я, так понимаю, данная инициализация держится в памяти, а не сопровождается записью на жёстком диске?
Инициализация может находиться в любом месте скрипта или есть какие-то ограничения?
3. def used(cont):
    mv=bge.logic.globalDict['mv']
Эти две строки, дают возможность использовать выше объявленный модуль «mv» и присваивают переменной «mv» значение из модуля?
В круглых скобках cont – используемое название для обращения? Название произвольное или имеет какие-то требования?
4. bge.logic.globalDict['mv']={'x':x}
Передаём значение из переменной х в модуль «mv» в переменную 'x'?
5. print(cont.name,mv) #печать значения модуля cont с именем «mv»?
Вы меня извините, но в учебнике «Python 3.1», в котором я пытался найти разъяснения, уж очень сложный язык. Потребуется некоторое время чтобы понять грамматику Питона.
« Последнее редактирование: 27 Сентябрь 2016, 17:03:49 от Barabashka »

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #7 : 27 Сентябрь 2016, 16:45:24 »
sungreen, вы уж извините за навязчивость, но если располагаете временем, то может разъясните мне такую вещь:
можно ли находясь на одной сцене с активным объектом, вызвать изменения через скрипт для объекта в другой сцене, его свойств, сенсоров, контроллеров, актуаторов? Если можно, то как?

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Нужна подсказка
« Ответ #8 : 27 Сентябрь 2016, 18:28:26 »
>> Как я понимаю, эта строка инициирует модуль?
... все эти вопросы ошибочные, то есть на них один ответ "нет" ...
... постарайся вникнуть в модель bge https://www.blender.org/api/blender_python_api_2_78_release/bge.logic.html ...


>> 5. print(cont.name,mv) #печать значения модуля cont с именем «mv»?
Вы меня извините, но в учебнике «Python 3.1», в котором я пытался найти разъяснения, уж очень сложный язык. Потребуется некоторое время чтобы понять грамматику Питона.


... тебе нужно разделить то что относиться к Python и то что относиться к Blender API ...
... твои вопросы в основном не к "грамматике Питона", а к функциям и данным Blender API ...
... попробуй вот этот видео курс. Там несколько занятий, к сожалению у меня нет тестовых заданий к этому курсу.
https://www.youtube.com/watch?v=5V7XG1mGiHc&list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW&index=1 ...

>> можно ли находясь на одной сцене с активным объектом, вызвать изменения через скрипт для объекта в другой сцене, его свойств, сенсоров, контроллеров, актуаторов? Если можно, то как?

... если ты будешь выкладывать свои модели с описанием того что делаешь и того что не получается, то возможно будет менее затратно решать эти проблемы ...

... если ты никуда не спешишь, то посмотри примеры вот на этом проверенном временем сайт по bge  http://www.tutorialsforblender3d.com/ ...
Для Кота

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #9 : 27 Сентябрь 2016, 20:26:04 »
Спасибо sungreen, вы мне очень помогли.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Нужна подсказка
« Ответ #10 : 27 Сентябрь 2016, 20:37:15 »
... на самом деле всё зависит от твоего усердия - двигай эту тему по мере сил ...
Для Кота

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #11 : 27 Сентябрь 2016, 20:43:13 »
Ребята, кто нибудь может ответить, желательно без сленга и демагогии, на вопросы в моём ответе №7?

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #12 : 29 Сентябрь 2016, 20:44:42 »
Однако странно, неужели настолько сложны мои вопросы: «можно ли находясь на одной сцене с активным объектом, вызвать изменения через скрипт для объекта в другой сцене, его свойств, сенсоров, контроллеров, актуаторов?» и «Если можно, то как?».
Идея в том, чтобы события в одной сцене могли менять ситуацию в другой сцене, может быть в следующей или будущей через несколько шагов.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Нужна подсказка
« Ответ #13 : 29 Сентябрь 2016, 20:57:17 »
... через объектную модель bge это сделать можно ...
https://www.blender.org/api/blender_python_api_2_78_release/#game-engine-modules
Для Кота

Оффлайн Barabashka

  • Житель
Re: Нужна подсказка
« Ответ #14 : 02 Октябрь 2016, 17:49:13 »
... через объектную модель bge это сделать можно ...
https://www.blender.org/api/blender_python_api_2_78_release/#game-engine-modules
Понятно. Менее культурные люди посылают значительно короче - им трёх букв хватает...
Сразу видно, послал культурный человек. Ну, что же, спасибо и на том.

 


Яметрика

* По форуму

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

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

1 (1).png
Скачано: 111
Автор: LEXA ANЭGROWND
blender.png
Скачано: 118
Автор: ipv2007
4.png
Скачано: 147
Автор: hiroyukiss
2.png
Скачано: 170
Автор: hiroyukiss

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