[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Panda3D - по русски » Panda3D » Для начинающих » Несколько вопросов от начинающего (Вопросы о сохранении значений переменных и паузе в игре)
Несколько вопросов от начинающего
HitchKockДата: Четверг, 21.03.2013, 00:20 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
День добрый.
Передо мной стоит задача сделать небольшую модель робота исследователядругой планеты. Но поскольку я новичок в Python и Панде то естественновозникли вопросы, которые мне пока тяжело решить. Поэтому надеюсь на помощь. И
так, вопросы:

1.      Мне нужно будет загружать настройки некоторыхопций из файла. Простую (пока кривоватую) загрузку данных сделать не проблема.
Проблема в том, что их в ходе игры изменить нельзя, так как цикл игры постоянно
загружает их из файла опять. Пробовал сохранять обратно после изменения, но
результату не было. Прошу совета что можно еще пробнуть.

2.      Возникла проблема с тем, что не могу определитьпозицию робота на карте (X,Y,Z), а это для меня есть очень важным.Прошу подсказать, исходник на всякий выкладываю.

3.      Третий вопрос не срочный, но все же интересен.Как сделать паузу игрового процесса, чтобы в то время вывести панели с опциями
для мира и возможных объектов.
Прикрепления: robot.rar(1476Kb)


Сообщение отредактировал HitchKock - Четверг, 21.03.2013, 00:36
 
ninthДата: Четверг, 21.03.2013, 13:55 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
1. Для работы с ini файлами в питоне есть ConfigParser. Не совсем понял зачем у тебя данные загружаются в цикле из файла? Что мешает их хранить в переменных в памяти?

2. С буллетом почти не работал, но судя по классу робота должно быть что-то типа Robot.worldNP.getPos()

3. Проверять во всех циклах обновления состояние некоторой переменной-флага и в зависимости от этого выполнять или нет цикл, либо собрать все циклы обновлений в глобальный. Что-то типа:
Код
def global_update(task):
      if World.paused:
          return task.cont # Здесь процедура будет прервана, если активна пауза.
      World.update()
      Player.update()
      AI.update()
      return task.cont
 
HitchKockДата: Четверг, 21.03.2013, 22:50 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Спс что быстро откликнулся. Правда с первыми двумя проблемами уже разобрался сам, а
вот до подобного решения третей, не додумался =)
Цитата (ninth)
Не совсем понял зачем у тебя данные загружаются в цикле из файла? Что мешает их хранить в переменных в памяти?

мне это надо для того, чтобы опции, что будут меняться впроцессе, сохранялись у файл и при некст старте уже были новые значения (просто в этом варианте еще нету запланированой интерфейсной части, которой можно вносить изменения в мир)
Цитата (ninth)
2. С буллетом почти не работал, но судя по классу робота должно быть что-то типа Robot.worldNP.getPos()
Да, так и есть, и я метод этот пробовал, но был завтык, что node переменную затирало другими значениями. Япросто после инициализации np =
self.worldNP.attachNewNode(BulletRigidBodyNode('Vehicle'))Сделал self.vehicleNP = np и все, строка self.vehicleNP.getPos() и координаты есть


Сообщение отредактировал HitchKock - Четверг, 21.03.2013, 22:52
 
ninthДата: Пятница, 22.03.2013, 09:49 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Ну так раз ты записываешь что-то в файл, значит эта инфа у тебя уже есть, зачем её повторно читать из файла? Достаточно один раз при старте прочитать данные.
 
HitchKockДата: Суббота, 23.03.2013, 01:19 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
А, ты навверное, о том что я написал о считывании из файла в цикле, это я просто не доконца розобрался как Питоне работают таск циклы и сделал не верные выводы, как только розобрался все стало на свои места =)
 
ninthДата: Понедельник, 25.03.2013, 08:16 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Таски - не питоновская, а пандовская фича, на всякий случай уточняю чтобы в чистом питоне не пытался найти )
 
Форум Panda3D - по русски » Panda3D » Для начинающих » Несколько вопросов от начинающего (Вопросы о сохранении значений переменных и паузе в игре)
Страница 1 из 11
Поиск: