[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
ДеЦЦкий сад "ПандЁнок"
ninthДата: Среда, 16.03.2011, 15:57 | Сообщение # 91
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Да, попробуй дрова обновить - может с ними проблема.
 
pihtoДата: Четверг, 17.03.2011, 21:38 | Сообщение # 92
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
не помогло sad
 
ninthДата: Четверг, 17.03.2011, 23:21 | Сообщение # 93
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
попробуй перед вызовом run() добавить строки
globalClock.setMode(ClockObject.MLimited);
globalClock.setFrameRate(60);

И ещё... что-то я глянул - цифра 75 на фпс - это ведь неспроста - вероятно вертикальная синхронизация включена автоматом - проверь и если так, попробуй выключить её
sync-video #f

 
pihtoДата: Четверг, 17.03.2011, 23:38 | Сообщение # 94
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
ClockObject is not defined

Добавлено (17.03.2011, 23:37)
---------------------------------------------
нашёлся в globalClock.
заработало!) терь не подлагивает
ninth спс огромное!)

Добавлено (17.03.2011, 23:38)
---------------------------------------------
а что эти строки делают?

 
ninthДата: Пятница, 18.03.2011, 00:20 | Сообщение # 95
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Судя по всему, у тебя проблема в том, что getDt() возвращает резко разнящееся время - то-ли пропускает кадры для синхронизации то-ли х.з. ещё что. Вероятно, без синхронизаци у тебя FPS будут значительно выше - в 2-3 раза.
Этот фикс делает ограничение на максимальные FPS и тем самым стабилизирует значение getDt()
 
pihtoДата: Среда, 23.03.2011, 03:15 | Сообщение # 96
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
да.. странно.. когда оставляеш в настройках видюхи "выключить синхронизацию если она не включена в приложении" а в приложении она не включена она все равно работает и фпс = 75.. а когда ставиш галочку выключить вообще то тогда фпс 200 и нет этого глюка типания

Добавлено (18.03.2011, 15:35)
---------------------------------------------
походу в панде автоматом включена.. ставиш loadPrcFileData("editor-startup", "sync-video #f") все норм

Добавлено (23.03.2011, 03:15)
---------------------------------------------
я вот думаю.. мб дальше развивать эту рпгшку? я пока пытаюсь сделать её сетевой(затруднения с просчётами координат на сервере), но я думаю это я не скоро прикручу да и вообще это я так для себя..
в какую сторону её развивать? у меня 2 мысли: сделать отображение жизней мобов по нажатию на них мышкой и ктото там кричал инвентарь. И первое и второе я думаю сделать не сложно (в теории), так что начну пока ченить делать.

Сообщение отредактировал pihto - Среда, 23.03.2011, 03:15
 
ninthДата: Среда, 23.03.2011, 08:19 | Сообщение # 97
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ну, вообще у неё не самая удачная структура для развития в качестве чего-то большего чем обучающий кусок. Могут затыки возникнуть. Хотя как знать...
Инвентарь можно для начала просто в качестве словарика организовать - без визуализации - просто для хранения инфы о предметах.
А в первую очередь нужно делать взаимодействие персонажа с окружающим миром - типа моба атаковать, предмет подобрать, на объект воздействовать.
 
pihtoДата: Среда, 23.03.2011, 23:43 | Сообщение # 98
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
чтото hasTag не могу заставить работать... на модель актёра(моба) цепляю тэг tmpch.model.setTag('xx','x'). в control.py в функции pick пишу self.pickerQ.getEntry(0).getIntoNodePath().hasTag('xx') - возвращает 0..
 
ninthДата: Четверг, 24.03.2011, 00:18 | Сообщение # 99
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Тебе тэг нужно вешать не на модель актёра а на CollisionSpere, которую у тебя собсно и детектит луч.
 
pihtoДата: Четверг, 24.03.2011, 02:13 | Сообщение # 100
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
Да пробовал тоже.. libpanda.CollisionSphere object has no attribute 'setTag'

Добавлено (24.03.2011, 02:13)
---------------------------------------------
и кстати делаю визуализацию коллизий - луч коллидица с моделькой

Сообщение отредактировал pihto - Четверг, 24.03.2011, 02:01
 
ninthДата: Четверг, 24.03.2011, 02:56 | Сообщение # 101
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Эм.. не должен он коллидить модельку, если ты ничего не менял. Cделай print self.pickerQ.getEntry(0).getIntoNodePath().getName()
А тэг - я не совсем правильно сказал - нужно ставть не на саму CollisionSphere, а на NodePath полученный в результате присоединения сферы к модельке. В Базовом примере это EnvColNp

И ещё from маску луча надо будет измеить так чтобы она детектила то что тебе надо.
Например земля у тебя setIntoCollideMask(BitMask32.bit(1))
Сфера вокруг персонажа setIntoCollideMask(BitMask32.bit(2))
Тогда pickerCollN.setFromCollideMask(BitMask32.bit(1) | BitMask32.bit(2))

 
pihtoДата: Четверг, 24.03.2011, 15:21 | Сообщение # 102
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
все так сделал. луч проходит почемуто мимо сферы.. не коллидится с ней.. да и вообще сферы между собой не коллидятся

Сообщение отредактировал pihto - Четверг, 24.03.2011, 15:22
 
ninthДата: Четверг, 24.03.2011, 16:45 | Сообщение # 103
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
дай вывод масок коллизий для твоих объектов
print np.getIntoCollideMask()
print np.getFromCollideMask()
для сферы и для луча
 
pihtoДата: Четверг, 24.03.2011, 18:26 | Сообщение # 104
Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
во
Прикрепления: 3990748.png (12.3 Kb)
 
ninthДата: Четверг, 24.03.2011, 19:57 | Сообщение # 105
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Ну дык у тебя на сфере Into маска нулевая. Поставь так.
self.EnvCol.setFromCollideMask(BitMask32.bit(2))
self.EnvCol.setIntoCollideMask(BitMask32.bit(2))
 
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
Поиск: