[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
ДеЦЦкий сад "ПандЁнок"
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
Возможно я неправильно понял, и надо писать так:
Code

demon.loop(1, 50)

Но так тоже не работает.
 
ninthДата: Среда, 07.09.2011, 17:09 | Сообщение # 149
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
можешь образец Х файла с анимацией дать?
 
KornivalДата: Среда, 07.09.2011, 17:22 | Сообщение # 150
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
В данном случае аним. последовательность всего одна, но сути проблемы это не меняет. biggrin
Ссылка
 
Поиск: