| Редактор уровней | 
|  | 
| 
| serg-kkz | Дата: Четверг, 12.05.2011, 17:51 | Сообщение # 1 |  |  Генерал-полковник Группа: Модераторы Сообщений: 803 Награды: 3 Репутация: 18 Статус: Offline | Вот задумал редактор уровней. Нужна критика, чтоб пока не позно внести корективы. В редакторе укажите путь к панде, вкладка 'настройки редактора'. Для запуска нужен wx.
 
 ООП  -
   
 
 Сообщение отредактировал serg-kkz - Понедельник, 20.06.2011, 16:40 |  |  |  |  | 
| 
| ninth | Дата: Четверг, 12.05.2011, 23:19 | Сообщение # 2 |  |  Admin Группа: Администраторы Сообщений: 1582 Награды: 5 Репутация: 46 Статус: Offline | Первое - файл физически в кодировке cp1251 хотя в начале указано utf-8 Второе - окно редактора не откликается - бегло просмотрел - похоже у тебя вообще отсутствует цикл обработки событий wx. Посмотри эту тему - http://panda3d.org.ru/forum/5-94-1 там набросок совмещения панды и wx имеется
 |  |  |  |  | 
| 
| serg-kkz | Дата: Пятница, 13.05.2011, 09:22 | Сообщение # 3 |  |  Генерал-полковник Группа: Модераторы Сообщений: 803 Награды: 3 Репутация: 18 Статус: Offline | Привет, интересно а у меня всё работает. Panda3D-1.7.2, wxPython2.8-win32-unicode-2.8.11.0-py26 , Notepad++. А пример у меня есть. Но мне хочется раздельно, так удобнее. Что касается цикла
 обработки событий, Ты имел ввиду менеджер задач? как в панде? но я впримерах не видел,
 да и конструкторы для работы wx генерят код без цикла обработки событий. Вот пример.
  FarPy GUIE    Code import wx import wx.calendar
 
 class MyFrame(wx.Frame):
 def __init__(self, parent, title):
 wx.Frame.__init__(self, parent, -1, 'form title', wx.DefaultPosition, (414, 312), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
 self.panel = wx.Panel(self, -1)
 
 self.button1 = wx.Button(self.panel, -1, 'button', (128,120), (172, 56))
 self.button1.SetFont(wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
 self.button1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
 #---------------------------------------- --- --- --- --------------------------
 class MyApp(wx.App):
 def OnInit(self):
 frame = MyFrame(None, 'App')
 frame.Show(True)
 self.SetTopWindow(frame)
 return True
 
 app = MyApp(True)
 app.MainLoop()
 В ручную добавил событие.    Code import wx  import wx.calendar
 
 class MyFrame(wx.Frame):
 def __init__(self, parent, title):
 wx.Frame.__init__(self, parent, -1, 'Proverka', wx.DefaultPosition, (414, 312), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
 self.panel = wx.Panel(self, -1)
 
 self.button = wx.Button(self.panel, -1, 'Proverka', (128,120), (172, 56))
 
 self.Bind(wx.EVT_BUTTON, self.Proverka, id=self.button.GetId())
 
 def Proverka(self, event):
 wx.MessageBox('proverka')
 
 #------------------------------------------------- --------------------------
 class MyApp(wx.App):
 def OnInit(self):
 frame = MyFrame(None, 'App')
 frame.Show(True)
 self.SetTopWindow(frame)
 return True
 app = MyApp(True)
 app.MainLoop()
 ООП  -
   
 
 Сообщение отредактировал serg-kkz - Пятница, 13.05.2011, 10:04 |  |  |  |  | 
| 
| ninth | Дата: Пятница, 13.05.2011, 13:32 | Сообщение # 4 |  |  Admin Группа: Администраторы Сообщений: 1582 Награды: 5 Репутация: 46 Статус: Offline | Я под линуксом проверял, так что кодировка - это потенциальная проблема ) Суть не в размещении окна вместе/отдельно, а в том, что тебе нужно одновременно выполнять два цикла - один пандовский, другой - wx. Т.е. вызывать обработку и для того и для того. Надо либо объединять циклы вручную либо запускать их в отдельных потоках чтобы они выполнялись одновременно.
  З.Ы. для отдельного окна можно было бы и встроенный tk использовать, тем более, что в панде под tk уже есть готовые компоненты для некоторых вещей - например браузер объектов, выбор цвета, ещё что-то вроде... |  |  |  |  | 
| 
| ninth | Дата: Пятница, 13.05.2011, 13:43 | Сообщение # 5 |  |  Admin Группа: Администраторы Сообщений: 1582 Награды: 5 Репутация: 46 Статус: Offline | А под виндой действительно работает. Хотя каким образом - не пойму. Похоже при создании wx.PySimpleApp() под виндой он автоматом стартует в параллельном потоке... Другой вариант - под линуксом затыкается по ошибке, надо будет внимательнее глянуть.
 |  |  |  |  | 
| 
| serg-kkz | Дата: Суббота, 14.05.2011, 22:26 | Сообщение # 6 |  |  Генерал-полковник Группа: Модераторы Сообщений: 803 Награды: 3 Репутация: 18 Статус: Offline | ninth ну работает же и в одном цикле, хотя я не программист но предположу что Panda и wxPython это модули верно… то почему под другие импортированные не надо вызывать обработку индивидуально или запускать их в отдельных потоках . Например я для сохранения карт в редакторе буду использовать elementtree – это чтоб в xml сохранять. Ну почему я её просто импортировал и пользуюсь? WINDOWS! Ну ладно. Я сегодня обнаружил баг – подтверждение в редакторе, надо открыть любой диалог выбора пути или файла, но не выбирать а кликнуть мышью в окно панды и закрыть диалог. И вдуматься. Каждый модуль работает отдельно сам по себе только задачи разные по очереди или параллельно. А вообще параллельно не возможно чтоб что-то работало в Windows ведь процессор и ядро одно (у меня) , может линуксе… эх наверное в ней и за зависшей программы остальное откликается в не зависимости приоритета.  По первому замечанию вроде исправил, в Notepad++ кодировку поставил нужную. По второму добавил строку app.MainLoop() может в линуксе заработает.
 Обновил: архив в первом посте.
  а tk я видел, а тебе от того что он есть легче работать с пандой? 
 ООП  -
   
 
 Сообщение отредактировал serg-kkz - Суббота, 14.05.2011, 22:27 |  |  |  |  | 
| 
| dis_node | Дата: Суббота, 14.05.2011, 22:29 | Сообщение # 7 |  | Лейтенант Группа: Пользователи Сообщений: 56 Награды: 0 Репутация: 2 Статус: Offline | Лично я ориентируюсь максимально использовать универсальные средства (Maya, Blender и как следствие экспорт/импорт, через тэг привязывается любая инфа и модули). XML у каждого свой, а EGG у всех один - Пандюковский, я за унификацию. |  |  |  |  | 
| 
| serg-kkz | Дата: Воскресенье, 15.05.2011, 09:24 | Сообщение # 8 |  |  Генерал-полковник Группа: Модераторы Сообщений: 803 Награды: 3 Репутация: 18 Статус: Offline | Обновил редактор: теперь можно сохранять. Но загрузки карт нет, пока... Для запуска нужна elementtree-1.2.6-20050316.win32, есть в архиве. Это
 для винды. У кого линукс, может глянуть здесь, хотя там я не видел.
  http://effbot.org/downloads Добавлено (14.05.2011, 22:36)---------------------------------------------
 
 Quote (dis_node) EGG у всех один - Пандюковский Гы. У меня два...и свои. Добавлено (15.05.2011, 09:24)---------------------------------------------
 Мне кажеться в винде панда его тянет, wx как бы в нутри её цикла.
 
 ООП  -
   |  |  |  |  | 
| 
| dis_node | Дата: Воскресенье, 15.05.2011, 14:29 | Сообщение # 9 |  | Лейтенант Группа: Пользователи Сообщений: 56 Награды: 0 Репутация: 2 Статус: Offline | Quote (serg-kkz) Гы. У меня два...и свои.А по-подробней? Ты пересочинил стандартный loader ?
 
 
 Сообщение отредактировал dis_node - Воскресенье, 15.05.2011, 14:30 |  |  |  |  | 
| 
| serg-kkz | Дата: Воскресенье, 15.05.2011, 14:40 | Сообщение # 10 |  |  Генерал-полковник Группа: Модераторы Сообщений: 803 Награды: 3 Репутация: 18 Статус: Offline | egg - яйцо, ещё подробней? 
 ООП  -
   |  |  |  |  | 
| 
| ninth | Дата: Понедельник, 16.05.2011, 16:37 | Сообщение # 11 |  |  Admin Группа: Администраторы Сообщений: 1582 Награды: 5 Репутация: 46 Статус: Offline | Да вроде разработчики предпринимали какие-то шаги в сторону официального прикручивания wx - может в том и дело.  Tk - полезно ) |  |  |  |  | 
| 
| serg-kkz | Дата: Понедельник, 20.06.2011, 16:46 | Сообщение # 12 |  |  Генерал-полковник Группа: Модераторы Сообщений: 803 Награды: 3 Репутация: 18 Статус: Offline | Обновил редактор. ninth чтоб увидить проблему выдели обьект и установи камеру со стороны красной стрелки прям возле кончика(оси X) и попробуй подвигать ось Z, будет сильно откликаться на горезонтальные движения мыши. Управление камерой надо зажать правою кнопку мыши. W S A D. 
 P.S.
 Кстати спародировал часть кода из демки wx - panda, в Ленуксе не заработало?
 
 ООП  -
   
 
 Сообщение отредактировал serg-kkz - Понедельник, 20.06.2011, 17:09 |  |  |  |  |