Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> прозрачность и фильтры, как реализовать 
:(
    Опции темы
powerfox
  Дата 16.12.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 97



В SDL усть ф-я set Alpha, которая устанавливает прозрачность поверхности. Мне нужно, чтобы одна и таже картинка меняла свой цвет(сиреневая, синяя).Можно накладывать полупрозрачные "маски", но здесь возникает вопрос, а почему бы промто тогда не менять картинку, а это неинтересно. Может менять значение RGB картинки на равые int?
Заранее благодарю за любую помощь.


--------------------
user posted image
PM WWW   Вверх
Гость_Юрий
Дата 17.12.2005, 15:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











да, можно менять определённый один цвет на другой во всей картинки - по пиксельно!
  Вверх
powerfox
Дата 17.12.2005, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Я пока не нашел ф-ю досьупа к пикселам(но и времени не было)


--------------------
user posted image
PM WWW   Вверх
Mayk
Дата 17.12.2005, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 1
Всего: 134



Цитата(powerfox @ 17.12.2005, 23:58)
Я пока не нашел ф-ю досьупа к пикселам(но и времени не было)

Попиксельное обращение есть в примерах к SDL. Поgrepай putpixel.
Добавлено @ 20:06
Цитата
да, можно менять определённый один цвет на другой во всей картинки - по пиксельно!

Кстати, а если использовать 8 бит на surface и SDL_SetPalette, то тогда смена вообще в лёт произойдет smile

Это сообщение отредактировал(а) Mayk - 17.12.2005, 20:07


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
powerfox
Дата 17.12.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Цитата(Mayk @ 17.12.2005, 20:04)
Кстати, а если использовать 8 бит на surface и SDL_SetPalette, то тогда смена вообще в лёт произойдет smile

Это как? Ведь surface - указатель или грузить картинку в 8 битном режиме?
Добавлено @ 20:37
Нашёл документацию, спасибо.


--------------------
user posted image
PM WWW   Вверх
powerfox
Дата 17.12.2005, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 97



Втавил Palette, визуальный эффект отсутствует.
Код

SDL_RWops *rwop = SDL_RWFromFile("images/bg.png", "rb");
SDL_Surface *back = IMG_LoadPNG_RW(rwop);

SDL_Surface *image=SDL_LoadBMP("images/snake.bmp");
SDL_Surface *screen=SDL_SetVideoMode(800,600,8,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_HWPALETTE);

void initsystem()
{
    if ( SDL_Init(SDL_INIT_TIMER|SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ){ 
        printf("Unable to init SDL: %s\n", SDL_GetError()); 
        exit(1); 
    } 
 
    atexit(SDL_Quit);
    if (!back || !image || !screen ){
        printf("error while loading images, check SnakeDir/bmp\n");
        exit(1);
    }  

    SDL_WM_SetCaption("Snake from Powerfox","Snake");
    SDL_WM_SetIcon(SDL_LoadBMP("images/icon.bmp"), NULL);
    

    if ( screen == NULL ){ 
        printf("Unable to set 800x600 video: %s\n", SDL_GetError()); 
        exit(1); 
    }

    
    SDL_Color colors[256];
    int i;
    /* Fill colors with color information */
for(i=0;i<256;i++){
  colors[i].r=i;
  colors[i].g=i;
  colors[i].b=i;
}
    
    
    DrawBG();
    DrawIMG(image, 180, 0);
    DrawIMG(image, 120, 0);
    DrawIMG(image, 60, 0);
    SDL_SetPalette(image, SDL_LOGPAL|SDL_PHYSPAL, colors, 0, 256);
    SDL_Flip(screen);
    makefood();
    initsound();
    //image->format=".bmp";
    int r = 249;
    int g=0;
    int b=0;
    SDL_SetColorKey(image, SDL_SRCCOLORKEY, SDL_MapRGB(image->format,r,g,b));
}



--------------------
user posted image
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.1148 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.