Игровой движок Blender Python

сначала извините за мой плохой английский, я из Германии ^^

У меня есть небольшая проблема с моим собственным написанным Pythonscript. Я хотел бы иметь мерцающий свет, поэтому я поставил прожектор, этому я даю два свойства:

  1. Булево имя toggleProp
  2. Таймер с целым именем

Я связал три логических блока с прожектором: датчик Alwayssensor, настроенный таким образом, чтобы уровень срабатывал как true, связанный с Pythonbrick, куда я вставил свой скрипт, а затем связанный с Poperty Brick, где я установил режим для переключения связанного моего свойства. .

Я написал следующие строки в своем Pythonscript:

import bge


def main():

    cont = bge.logic.getCurrentController()
    light = cont.owner

    toggleProp = cont.actuators ["toggleProp"]

    if light ["timer"] == 25:
        cont.activate(toggleProp)
        light ["timer"] = 0

    if light ["toggle"] == False:
        light.energy = 0.200
    else:
        light.energy = 1.500

    light ["timer"] += 1


main()

когда я запускаю свою игру, ничего не происходит. Консоль сообщает: ImportError: нет модуля с именем "bge".

Я использую Blender версии 2.78.

Спасибо и наилучшие пожелания из Германии :)


person FuriosDesigns    schedule 16.11.2016    source источник
comment
вы запускаете скрипт в интерфейсе сценариев блендера или где-то еще?   -  person Ma0    schedule 16.11.2016
comment
Возможно, вам повезет больше на blender.stackexchange.com.   -  person Chris Dunaway    schedule 16.11.2016
comment
Вы должны получить эту ошибку, только если запустите скрипт в текстовом редакторе блендера. Вам не нужно запускать скрипт, просто запустите игровой движок, и логические блоки будут запускать скрипт по мере необходимости. Выбран ли Blender Game в верхней части окна или там написано Blender Render или Cycles Render?   -  person sambler    schedule 17.11.2016


Ответы (1)


Нелегко сделать «импорт bge» непосредственно из собственного скрипта Python, пока вы не скомпилируете Blender для поддержки этой конкретной опции (также примите во внимание, что эта опция больше не используется командой разработчиков) ...

Но... вы можете запустить свой скрипт прямо из Blender (под OSX/Linux Blender нужно запускать из терминала),

Для этого: Выберите «Текстовый редактор» в Blender, затем вставьте следующие 2 строки в текстовое поле,

filename = "/path/to/your/python_script/run.py"
exec(compile(open(filename).read(), filename, 'exec'))

Настройте путь в соответствии с вашими потребностями, затем запустите его из Blender, щелкнув мышью по кнопке «Выполнить сценарий».

Подробнее здесь

person A STEFANI    schedule 15.03.2017