Проект: Змия - въпроси

  1. Давайте тук да задаваме въпроси за Змията, ако имате такива.

    Ето и моят първи въпрос: 1) Как да засичаме, че клавиш от клавиетурата е бил натиснат? Някоя буква или стрелки, например. Трябва ми нещо мултиплатформено, т.е. да бачка и под Windows, и под Linux и под какво ли още не.

    Примерно curses ще работи под Linux, но за Windows не става, а msvcrt, където има getch(), въобще не съм сигурен дали става за нещо различно от Windows.

    И още един въпрос: 2) Да препоръчате някое лесно за използване и бързо за учене Пайтъснко GUI и рисуване (основно на квадратчета с лепнати картинки отгоре)? Трябва ми колкото да направя графичната част на играта. А и дори без графична част (т.е. да се използва само текст за визуализация, вероятно пак ще ми трябва GUI-то).

    Публикувано преди
  2. ??? Мартине, какво имаше в предвид със стринга '...'?

    Публикувано преди
  3. Евгений, разгледай Pygame и PyQt. Разгледай темата относно проектите като цяло, вътре са споменати няколко фреймуърка за правене на GUI. Успех.

    Публикувано преди
  4. Доколкото си спомням PyGame е за по-старата версия на Python - 2.нещо-си. И е за 32 бит. компютър, а аз съм на 64 (и съответно моят Python сигурно е същият).

    PyQt явно поддържа 3.x, така че него ще използвам. Поне това видях в темата за курсовите проекти (в момента я чета).

    P.S. Поправете ме, ако някъде греша.

    Публикувано преди
  5. PyGame 1.9.2a0 има почти пълен support за Python3.2 До тука съм доволен, въпреки, че не съм се гмурнал много дълбоко във SDL света, че да намеря какво липсва точно и защо е тъжно, че липсва. За Windows има msi инсталатор в сайта на PyGame, ако си с Linux това е много простичко обяснение. :) Подозирам, че с малко модификации последното може да бъде ползвано и на MAC OS.

    Публикувано преди
  6. @ Евгений
    Pygame е лесна за ползване библиотечка. Ако си запознат с SDL - pygame е SDL библиотека за python.
    PyGame е съвместим с Python 3.2
    линк към сайта
    http://pygame.org/download.shtml pygame-1.9.2a0.win32-py3.2.msi
    и това за проблема с 64bit OS
    "windows 64bit users note: use the 32bit python with this 32bit pygame."


    P.S. закъснях малко с отговора, но какво пък :)

    Публикувано преди
  7. За windows, който е x64 лесно може да се оправи проблема, като просто се компилира на място. Сваляш си zip-а с windows source-а и python3 setup.py върши магията. Проблемът е може би с SDL библиотеките, които ти трябват, май в windows е малко по-сложно, но не е нещо, което да не се решава с половин час четене :)

    Публикувано преди
  8. Ще използвам темата,за да попитам хората,които правят змията с GUI,какъв подход смятате да приложите при писането на тестовете?

    Публикувано преди
  9. Хубав въпрос. Моята идея е да направя специална карта, след това теста да подава серия от специални указания на методите/функциите (например накъде да завие) на змията (през определено време) и като знаеш къде трябва да отиде змията и какво да се случи да видиш дали резултата ще е същия.

    Например, отляво на змията има ябълка, отдясно стена. Ако завиеш наляво - взимаш ябълката, токчите се увличават и на следващият ход змията трябва да е малко по-дълга. Ако завиеш надясно - умираш. Ако това не се случи - пиеш една студена вода и почваш да си тръсиш грешката (или -ите, както е в повечето случаи). С други думи - тестваш това, което може да се случи на змията през нейния кратък живот - т.е. каквото може да подаде потребителя.

    P.S. Един съвет от мен (но сигурно си се сетил за това) - вгради картата в кода, а не в отделен файл и особено - НЕ го генерирай. В първия случай рискуваш да го забравиш и да не го вземеш на изпита или някой да го делне случайно, а във втория пък не знаеш какъв ще е крайният резултат - пред теб може да има стена или ябълка, или опашката на змията - невъзможно е да се напишат тестове.

    P.S.2: Благодаря на всички, които ми отговориха на въпросите.

    Публикувано преди
  10. Здрасти! Направих тестов файл, който да тества правенето на background карта от tiles (взима ги от images/ и ги разполага из картата - в момента произволно, но не за дълго: в момента правя парсер за нива). Всичко е добре, fps-а ми удря няколко хиляди, тъй като картата се прави преди running цикъла, но някои от тези tiles трябва да могат да си сменят картинките от време на време - например водата. И тук перформенса ми удря в земята и при това се държи странно: един път е около 55-60, друг път пък е между 20 и 30.

    Тъй като играта е базирана на фреймове, това си е чист удар под пояса. Пък и като падне fps-а от няколко хиляди до 20-30 и имаш само чист фон - това не е особено окуражаващо: на по-слаб компютър може въобще да е 1-2 кадъра в секунда.

    Така че, може ли да ми помогнете да реша проблема със скачащият performance и да ми помогнете с оптимизацията, че още поне змиите трябва да сложа като движещи се обекти, user input, колизии и т.н. и fps ще падне още повече.

    Тест-файла в Github: git clone git://gist.github.com/1157904.git gist-1157904

    P.S. Има и картинки - как да ги ви ги пратя?

    Публикувано преди

Трябва да сте влезли в системата, за да може да отговаряте на теми.