ДеЦЦкий сад "ПандЁнок"
|
|
ninth | Дата: Понедельник, 18.07.2011, 11:50 | Сообщение # 136 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Забей на многопоточность. Чтобы она работала внутри панды надо панду пересобирать с соотв опциями. Это всё реализуется проще. Я здесь выложил пример загрузки http://panda3d.org.ru/forum/5-172-1
|
|
| |
serg-kkz | Дата: Понедельник, 18.07.2011, 12:20 | Сообщение # 137 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Да забил уже... в 3 часа ночи))) я тоже реализовал загрузку, тока допиливать надо. Ни как не пойму как управляемою задачу сделать из под функции, например запуск-остановка задачи, только из иницилизации в менеджер заткнуть, то работет, а из под функции проблемы с cont'ом
ООП -
|
|
| |
ninth | Дата: Понедельник, 18.07.2011, 12:36 | Сообщение # 138 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Не совсем понял откуда ты хочешь задачей управлять и как именно?
|
|
| |
serg-kkz | Дата: Понедельник, 18.07.2011, 12:43 | Сообщение # 139 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Из функции добавить в менеджер, но если добавляю то проблемы с cont'ом, напрмер мне не нужно запускать задачу при иницилизации а скажем по кнопке добавить в менеджер задач и запустить.
ООП -
|
|
| |
ninth | Дата: Понедельник, 18.07.2011, 16:03 | Сообщение # 140 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Ну а в чём проблема? Что мешает добавить задачу при обработке нажатия клавиши? Code from pandac.PandaModules import * from direct.gui.OnscreenText import OnscreenText from direct.gui.DirectGui import * from direct.directbase import DirectStart
def myTask(task): textObject['text'] = '%.4f' % task.time return task.cont
button_1 = DirectButton(text="add", scale=0.2, pos=(0, 0, 0.5), command=taskMgr.add, extraArgs = [myTask, 'my task']) button_2 = DirectButton(text="remove",scale=0.2,pos=(0, 0, -0.5), command=taskMgr.remove, extraArgs = ['my task']) textObject = OnscreenText(text = '...', pos = (0, -0.02), scale = 0.2,fg=(0,0,1,1), align=TextNode.ACenter, mayChange=1)
run()
|
|
| |
serg-kkz | Дата: Понедельник, 18.07.2011, 16:14 | Сообщение # 141 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| Я пытался по другому, наверное где то тупил.
Code def myFun(): taskMgr.add(Load, 'Load')
def Load(task): print 'text' return task.cont
ООП -
|
|
| |
ninth | Дата: Понедельник, 18.07.2011, 16:17 | Сообщение # 142 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Должно и так работать. Какую ошибку выдаёт?
|
|
| |
serg-kkz | Дата: Понедельник, 18.07.2011, 16:28 | Сообщение # 143 |
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
| В общем я пытался не на простом примере как этот. А сонный , в примере загрузки уровней из меню. Может правда где и затупил в сонном бреду. Вопрос можно снимать с дискуссии, и за моих поспешных выводов. А ошибок я в это ночь много видел, в голове каша)))
ООП -
|
|
| |
Kornival | Дата: Среда, 07.09.2011, 15:10 | Сообщение # 144 |
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
| Есть модель .X в которой содержатся разные анимационные последовательности, каким образом можно заставить панду проигрывать не все фреймы, а только те которые нужны? ADD: При проигрывание, к примеру, анимации ходьбы модель начинает передвигаться, можно ли это каким-то образом "отключить", чтобы анимация проигрывалась "на месте"?
Сообщение отредактировал Kornival - Среда, 07.09.2011, 15:46 |
|
| |
ninth | Дата: Среда, 07.09.2011, 15:45 | Сообщение # 145 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| А почему именно .X, а не родной формат? Если критично работать именно с одним цельным Х, то скорее всего тебе придётся писать свой код для того чтобы проиграть кадры "с Х по У", т.к. основным приёмом работы считается подгрузка именованных анимаций из отдельных файлов.
|
|
| |
Kornival | Дата: Среда, 07.09.2011, 15:48 | Сообщение # 146 |
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
| Quote (ninth) А почему именно .X, а не родной формат? Без разницы, можно и в родной эспортировать, но проблема все-равно останется та же.
|
|
| |
ninth | Дата: Среда, 07.09.2011, 16:26 | Сообщение # 147 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Ну если разницы нет (я просто Х не пробовал), то разве не работает такой вариант? actor.loop(fromFrame = X, toFrame = Y)
Анимация скелетная или морф? Если скелетная, то можно попробовать зацепить корневую кость, или какая там отвечает за смещение, и возвращать её в 0, или в самом файле вырезать инфу об анимации данной кости. Если морф, то тут наверно ничего не сделаешь, разве что определять примерный центр конечного объекта и смещать его.
|
|
| |
Kornival | Дата: Среда, 07.09.2011, 16:34 | Сообщение # 148 |
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
| Quote (ninth) Ну если разницы нет (я просто Х не пробовал), то разве не работает такой вариант? actor.loop(fromFrame = X, toFrame = Y) Не рааботает, пишу такой код: Code demon = Actor.Actor("Demon") demon.reparentTo(render) demon.setScale(0.1,0.1,0.1) demon.setPos(-8,42,0) demon.loop(fromFrame = 1, toFrame = 50) Ошибка: loop() takes at least 2 non-keyword arguments Возможно я неправильно понял, и надо писать так: Но так тоже не работает.
|
|
| |
ninth | Дата: Среда, 07.09.2011, 17:09 | Сообщение # 149 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| можешь образец Х файла с анимацией дать?
|
|
| |
Kornival | Дата: Среда, 07.09.2011, 17:22 | Сообщение # 150 |
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
| В данном случае аним. последовательность всего одна, но сути проблемы это не меняет. Ссылка
|
|
| |