Russian Qt Forum

Qt => Общие вопросы => Тема начата: darkmacho от Ноябрь 05, 2008, 14:54



Название: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 05, 2008, 14:54
А можно ли с помощью qt писать 2d игры.Можно ли например для png формата сделать двойную буферизацию?Главное что меня привлекает это работа с множеством форматов изображений.


Название: Re: Создание игр ,анимация
Отправлено: Detonator от Ноябрь 05, 2008, 15:37
Можно, только причем здесь png формат?
В памяти все операции происходят над разжатыми данными QImage и QPixmap


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 05, 2008, 16:06
НУ напрмер если я что-нибудь нарисую в png формате.Можно ведь? если еще все эти рисунки преобразовть в mng формат ьогда можно будет выводить анимцию с прозрачностью и двойной буферизацией?


Название: Re: Создание игр ,анимация
Отправлено: spirit от Ноябрь 05, 2008, 16:26
двойная буферизация уже реализована в кьюти виджетах, вам только нужно отобразить картинку.


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 05, 2008, 16:29
а прозрачность
А то я столько мучился  с mfc достал уже там еще только bmp формат


Название: Re: Создание игр ,анимация
Отправлено: spirit от Ноябрь 05, 2008, 16:34
Цитировать
Depending on the system, QPixmap is stored using a RGB32 or a premultiplied alpha format. If the image has an alpha channel, and if the system allows, the preferred format is premultiplied alpha.
Цитировать
The QImage class supports several image formats described by the Format enum. These include monochrome, 8-bit, 32-bit and alpha-blended images which are available in all versions of Qt 4.x. In addition, QImage supports several formats that are specific to Qtopia Core.
в общем почитайте в ассистанте про QImage & QPixmap.


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 05, 2008, 16:37
2 darkmacho, прозрачность в Qt честная, по пробуй в QLable картинку засунуть с прозрачными участками, увидешь.


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 05, 2008, 16:40
Я не понял а как он распознает прозрачные участки.
В mfc я указывал прозрачные цвета а здесь как?


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 05, 2008, 17:15
просто есть такой "цвет": прозрачный, альфа-канал называется. Но если хочешь по старинке, то есть и такие методы, где задаешь цвет который будет считаться прозрачным.

П.С. Пользуйся вменяемым графическим редактором, вместо паинтов всяких, которые отрадясь незнают, что такое альфа-канал.


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 05, 2008, 17:17
Пример png-файла с прозрачностью и тестовый пример
Код:
#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

QPixmap px("./circle.png");
QLabel lbl;
lbl.setPixmap(px);
lbl.show();

    return a.exec();
}


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 05, 2008, 17:31
т.е. здесь прозрачный это цвет фона за кружочком да?(синевато-серый)


А не подскажете какие редакторы могут мне в этом помочь не такие как фотошоп или кореал драй а более простые


Название: Re: Создание игр ,анимация
Отправлено: Hort от Ноябрь 05, 2008, 18:21
в примерах Qt есть тетрис -
examples/widgets/tetrix
посмотри как они там его делают - думаю будет полезно


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 05, 2008, 19:18
т.е. здесь прозрачный это цвет фона за кружочком да?(синевато-серый)
А ты пример скомпиль, и к бинарю этот рисунок положи, сразу станет все понятно. У альфа-канала, в редакторе, можно еще глубину менять, т.е. делать полупрозрачность
А не подскажете какие редакторы могут мне в этом помочь не такие как фотошоп или кореал драй а более простые
я купил IconLover (http://iconutils.com/rus/iconlover/index.htm) за 225руб. - не жалею.


Название: Re: Создание игр ,анимация
Отправлено: chipset от Ноябрь 07, 2008, 00:42
Реальная весчь!!!!
http://labs.trolltech.com/blogs/2008/11/05/qt-animation-framework/
http://trolltech.com/products/appdev/add-on-products/catalog/4/Utilities/qtanimationframework/


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 07, 2008, 11:53
жалко что не на русском, но все равно спасибо


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 07, 2008, 18:04
Не можете подсказать что не так
#include<qapplication>
#include<qlabel>
#include<qpixmap>
#include <QtGui>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

   
   QLabel   lbl;
QMovie mov("e.gif");

   lbl.setMovie(&mov);
   lbl.show();
   mov.start();
    return a.exec();
}


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 07, 2008, 18:51
2 darkmacho, А что не так?


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 07, 2008, 19:06
Это debug версия
Когда компилирую сначала ничего не выходит.Потом повторяю действия и выводит:

1>------ Build started: Project: qtgames, Configuration: Debug Win32 ------
1>Linking...
1>LINK : fatal error LNK1104: cannot open file 'debug\qtgames.exe'
1>Build log was saved at "file://c:\qtgames\debug\BuildLog.htm"
1>qtgames - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Пытаюсь удалить qtgames.exe не удаляется.
Потом перезагружаю комп.И все повторяется.


Название: Re: Создание игр ,анимация
Отправлено: spirit от Ноябрь 07, 2008, 19:39
попробуйте перегенерить и пересобрать проект.


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 07, 2008, 19:46
посмотри в диспетчере задачь, не висит ли твое приложение в нем, похоже что оно запускается но его не видно, когда ты пытаешся копилить по новой линкер не может перезаписать файл, т.к. он запущен.


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 07, 2008, 20:02
поставь метод show() после mov.start();
и еще привыкни делать так: если метод принимает указатель то и создавай указатель:
Код:
	QLabel label;
QMovie *movie = new QMovie("./e.gif");

label.setMovie(movie);

movie->start();
label.show();
  
и путь к файлу полный, хоть и относительный


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 07, 2008, 20:05
Пересобрал проект получилось спасибо


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 07, 2008, 20:58
Столкнулся с еще одной проблемой. Когда например gif анимация циклически повторяется.Между новым прогирыванием и старым все равно мерцает , от этого можно избавится?
Пример прикреплен если что


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 07, 2008, 22:38
и многие ли смогут твоим примером воспользоватся?

P.S. прикрепляй проект? а не бинарь неизвестно каким компиллером собраный


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 08, 2008, 11:42
Проект тот же

#include<qapplication>
#include<qlabel>
#include<qpixmap>
#include <QtGui>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

   
   QLabel   lbl;
QMovie mov("e.gif");

   lbl.setMovie(&mov);
   lbl.show();
   mov.start();
    return a.exec();
}



Название: Re: Создание игр ,анимация
Отправлено: ритт от Ноябрь 08, 2008, 12:25
в твоей e.gif первый кадр пустой!


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 08, 2008, 12:26
это не проект а файл main.cpp, выкладывай гиф свой, скорее всего в нем касяк, я на своем аватаре проверял, все путем никакого мерцания.


Название: Re: Создание игр ,анимация
Отправлено: ритт от Ноябрь 08, 2008, 12:31
lit-uriy, я тоже сначала на твоей аватарке проверил :)
его гифка в зипке выше - говорю ж, первый кадр пустой...


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 08, 2008, 12:40
ДА! бинарь у меня не пускается, а ума проверить гиф у меня нехватило :)

2 darkmacho, во вложении гиф с удаленным первым кадром.


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 08, 2008, 12:50
вот ступил!!! СПАСИБО ;D

Я просто редактор gimp скачал слишком уж непонятный кое-как сделал gif
А вот в mng не сохраняет!


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 08, 2008, 12:58
2 darkmacho, гимп вроде должен в MNG сохранять, но редактор тяжелый в освоении, на мой взгляд.
Вот тут (http://www.forum.crossplatform.ru/index.php?showtopic=984) обсуждалось про редактор, я ссылку на програмулину, вроде бесплатную, давал человеку, можешь спросить унего насчет качества (я сам не пользовался).


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 08, 2008, 14:02
там же по-моему только с иконками работает а типы файлов jpeg,bmp и т.д. gif и mng нет


Название: Re: Создание игр ,анимация
Отправлено: lit-uriy от Ноябрь 08, 2008, 15:14
2 darkmacho, скачай и проверь, или спроси у того человека, он вроде пользуется


Название: Re: Создание игр ,анимация
Отправлено: darkmacho от Ноябрь 09, 2008, 19:33
А вот смотрю смотрю а вот как рисуют графику в таких играх как морхухн.С помощью планшета?


Название: Re: Создание игр ,анимация
Отправлено: miha-ha от Ноябрь 13, 2008, 16:04
Есть такое понятие как спрайт-анимация... туда нужно тебе смотреть, а не использовать гифки...