roboforum.ru

Технический форум по робототехнике.

Игрушка: КПК

Игрушка: КПК

MiBBiM » 26 июн 2009, 20:59

Игрушка: Начало
Мой первый опыт с C#)). Переписал игрушку на [Framework 2.0], так что теперь её можно запускать с кпк))
23.07.png

Функциональность и элементы управления никоим образом не изменились, описание здесь.
Драйвер можно скачать на странице производителя, вот прямой линк на дрова для Windows Mobile 5. Для тех кто ещё не в курсе: дрова создают виртуальный компорт, который и надо скормить программе.
В этой реализации есть проблема с анимацией (если знаете как её решить, пожалуйста, не стесняйтесь)) )
P.S. КПК должен иметь usb-host обязательно!
Вложения
MBGame.rar
(6.64 КиБ) Скачиваний: 18
source.rar
(19.79 КиБ) Скачиваний: 22
Последний раз редактировалось MiBBiM 23 июл 2009, 20:58, всего редактировалось 4 раз(а).

Re: Игрушка: КПК

Snable » 12 июл 2009, 00:05

И пересобралось? С МинГВ? И с ним же не хочет прогу компилировать? Странно, если так...
Попробуй просто либу Qt скачать, MinGW отдельно последнюю версию и поставь какой-нить NetBeans или Eclipse - там тоже есть поддержка Qt - надо будет только пути прописать и компильнуть собственно... Можно даже в МС Студии, но там все как-то уныло... :crazy:
Не могу сейчас думать, если честно... Слово компилятор меня сейчас просто из колеи выбивает... Уже неделю пытаюсь изучить PHP, JavaScript, MySQL, XHTML и CSS (решил все одних махом изучить...) - о компиляторах трудно думается :pardon:

Re: Игрушка: КПК

MiBBiM » 12 июл 2009, 15:25

пробовал, отдельно mingw ставил, несколько раз пересобирал qt, на разные диски ставил, пути перепрописывал и т.д.
а оказалось что cmd.exe глючит, чтоп его через ногу, два дня убил впустую.
поставил MSYS и все как часики заработало. надеюсь с qtopia таких проблем не будет :%)
может с html начнешь? :D

Re: Игрушка: КПК

Snable » 12 июл 2009, 16:31

Мда... Винда, конечно, рулит :crazy: :crazy: :crazy:
Сейчас вроде как Qtopia не существует... В смысле новые версии Qt\Extended называются, хотя могу ошибаться - не интересовался этим вопросом.
html - это не серьезно))) К тому же, у меня цель скорее не изучить это все, а изучить примерный синтаксис и техники современных веб-технологий. Чтобы потом уже конкретно выбрать что изучать глубже... Просто эту кучку изучаю в первую очередь, поскольку основная масса веб-страничек на "этом" написана... А вообще, планируется еще изучение Python, Perl, Tcl, Java, Jython, JQuery, ... и может быть... технологий .NET , но это вряд ли :crazy: Планы Наполеоновские, конечно, но это только в ознакомительных целях. На уровне чтения кода, скажем так.

Re: Игрушка: КПК

MiBBiM » 13 июл 2009, 00:10

кажется так:
Qt/Embedded -> Qtopia -> Qt Extended -> Qt, т.е. Qt Extended убили (првд вроде умельцами поддерживается где-то ветка).
так что делаю теневую сборку (или как это по-русски :pardon: ) qt, и вполне вероятно, что получится подружить её с creator'ом, благо гугл ещё работает и находит кучу мануалов :D
P.S. но не нравится что придется поставлять с проектом либы мегов под 5 :cry:

Добавлено спустя 6 минут 54 секунды:
хотя, может стоит сделать интеграцию с msvs. вобщем что получится то и будет :ROFL:

Re: Игрушка: КПК

Snable » 13 июл 2009, 00:29

Если делать версию под линукс или гугло- (нокия- се- моторолло-) фоны то поставлять не придется - там оно уже есть. А вообще можно вроде собрать все так, что не придется либы поставлять (правда насчет законности этого не уверен). Opera, например - живое тому доказательство.

Re: Игрушка: КПК

Vooon » 13 июл 2009, 02:04

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

Re: Игрушка: КПК

MiBBiM » 14 июл 2009, 09:20

нда, сдк для винмобайл без студии не ставится :D причем express версии не прокатывают. мелкомягкие сами себя загоняют, не распространяя бесплатные средства разработки...
вот скомпилировал примеры, использующие стандартную рисовалку, скоростью не порадовали; может opengl будет быстрее :unknown:
Последний раз редактировалось MiBBiM 19 июл 2009, 19:15, всего редактировалось 1 раз.

Re: Игрушка: КПК

MiBBiM » 19 июл 2009, 19:17

никак не могу найти дистриб opengl es. то не под ту винь, то просто не компилируется :%) может завалялся у кого?

Re: Игрушка: КПК

Grem » 19 июл 2009, 20:58

с сайта разработчиков, не?

Re: Игрушка: КПК

MiBBiM » 19 июл 2009, 21:07

дай прямой ссыль на скачку :)

Re: Игрушка: КПК

Grem » 19 июл 2009, 21:29

специально прямую не дам, ищи сам лентяй :P http://www.khronos.org

Re: Игрушка: КПК

MiBBiM » 19 июл 2009, 21:37

а ты и не нашел бы :D это сайт производителя спецификаций, но не реализаций. есть там ссылки првд, но что-то все не то

Re: Игрушка: КПК

Grem » 19 июл 2009, 21:59

а если я покажу ссылку там, что тогда? даже я, не знающий английский, нашел ее :D

Re: Игрушка: КПК

MiBBiM » 19 июл 2009, 22:09

два шанса: откроешь Америку, и тогда я наконец-то допишу игрушку, либо ты дашь ссыль на то, что я уже видел, например, на этой странице.
в любом случае я в выигрыше :D

Re: Игрушка: КПК

MiBBiM » 23 июл 2009, 14:08

Решил проблему, используя .NET. Оказывается для прорисовки остальных контролов надо было вызвать метод base.OnPaint(), а вместо вызова тяжелого Refresh(), вызывать invalidate(). Эти модификации вкупе с самодельной двойной буферизацией обеспечивают быструю прорисовку без косяков.
Код: Выделить всёРазвернуть
        // pb - PictureBox
        private void pb_Paint(object sender, PaintEventArgs e) // обновление картинки
        {
            base.OnPaint(e);
            Graphics g = Graphics.FromImage(bmp);  //bmp - буфер-пикча
            draw_Back(g);
            draw_Cursor(g, pen_Cursor);
            g.Dispose();
            pb.Image = bmp;         
        }

        private void pb_MouseUp(object sender, MouseEventArgs e)
        {// пример вызова отрисовки
            need_stop = true;
            mouse_down = false;
            stb.Text = "";          // по таймеру текст статус бара изменится на приемлимый
            pb.Invalidate();        // вызов отрисовки
        }



Добавлено спустя 23 минуты 37 секунд:
хм, рано радовался. при таком методе on_paint таймер не работает :crazy:

Добавлено спустя 1 час 34 минуты 46 секунд:
похоже проблема в методе invalidate(). на форумах встречал информацию о том, что он вначале очищает холст, и уж потом вызывает Paint(), что естественно приводит к мельканию.
попробовал вызвать on_paint() напрямую:
Код: Выделить всёРазвернуть
pb.OnPaint()

получил ошибку
Доступ к защищенному члену "System.Windows.Forms.Control.OnPaint(System.Windows.Forms.PaintEventArgs)" через квалификатор типа "System.Windows.Forms.PictureBox" невозможен; квалификатор должен иметь тип "MBGame.frmMain" (или производный от него тип)

можно как-то это обойти?


Rambler\'s Top100 Mail.ru counter