Читаем Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода полностью

    bpy.ops.screen.animation_play


Симуляция твёрдого тела

Эта программа использует игровой движок Блендера для моделирования падения кучи объектов на землю. Анимации записываются и впоследствии могут быть воспроизведены.



#----------------------------------------------------------

# File pile.py

#----------------------------------------------------------

import bpy, mathutils, math, random

from mathutils import Vector  NObjects = 7Seed = 444 


def addSceneGameSettings(scn):

    # Данные игровой сцены

    sgdata = scn.game_settings

    sgdata.fps = 25 sgdata.frequency = True

    sgdata.material_mode = 'GLSL'

    sgdata.show_debug_properties = True

    sgdata.show_framerate_profile = True

    sgdata.show_fullscreen = True

    sgdata.show_physics_visualization = True

    sgdata.use_animation_record = True return 


def addMonkeyGameSettings(ob):

    # Настройки игрового объекта

    goset = ob.game

    goset.physics_type = 'RIGID_BODY'

    goset.use_actor = True

    goset.use_ghost = False

    goset.mass = 7.0

    goset.damping = 0.0


     goset.use_collision_bounds = True

    goset.collision_bounds_type = 'BOX'


    goset.show_actuators = True goset.show_controllers = True

    goset.show_debug_state = True

    goset.show_sensors = True goset.show_state_panel = True


    return 


def run(origin):

    # Смена движка рендера с BLENDER_RENDER на BLENDER_GAME

    bpy.context.scene.render.engine = 'BLENDER_GAME'  


    # Создание пола

    bpy.ops.mesh.primitive_plane_add(location=origin)

    bpy.ops.transform.resize(value=(20, 20, 20))

    floor = bpy.context.object

    mat = bpy.data.materials.new(name = 'FloorMaterial')

    mat.diffuse_color = (0.5, 0.5, 0.5)  


    # Создание кучи объектов

    objectType = ["cube", "ico_sphere", "monkey"]

    objects = []

    deg2rad = math.pi/180

    random.seed(Seed)

    for n in range(NObjects):

        x = []

        for i in range(3):

            x.append( random.randrange(0, 360, 1) )

        dx = 0.5*random.random

        dy = 0.5*random.random

        obType = objectType[ random.randrange(0, 3, 1) ]

        fcn = eval("bpy.ops.mesh.primitive_%s_add" % obType)

        fcn(location=origin+Vector((dx, dy, 3*n+3)),

            rotation=deg2rad*Vector((x[0], x[1], x[2])))

        ob = bpy.context.object objects.append( ob )

        mat = bpy.data.materials.new(name='Material_%02d' % n) c = []

        for j in range(3):

        c.append( random.random ) mat.diffuse_color = c

        ob.data.materials.append(mat)  


    # Установка игровых настроек для пола

    fset = floor.game

    fset.physics_type = 'STATIC'  


    # Установка игровых настроек для объектов

    for n in range(NObjects):

        addMonkeyGameSettings(objects[n])  


    # Установка игровых настроек для сцены

    scn = bpy.context.scene

    addSceneGameSettings(scn)

    scn.frame_start = 1

    scn.frame_end = 200 return 


if __name__ == "__main__":

    bpy.ops.object.select_by_type(type='MESH')

    bpy.ops.object.delete

    run(Vector((0,0,0)))

    bpy.ops.view3d.game_start


Жидкости

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT