Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > Полезные функции

Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново...

Ответ
 
Опции темы
Старый 10.10.2015, 20:01   #1
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Сообщение Прозрачный прямоугольник с краем

Прямоугольник с изменяемой прозрачностью в пределах от 0 до 255.
Так же есть возможность отрисовки полупрозрачного борта .
Код функции под спойлером :
;===============================================
;
;    Transparent Rect , alpha% = ( from 0 to 255 )
;   
;
;===============================================

Function AlphaRect(Point_X# = 0 ,Point_Y# = 0 ,width ,height ,R = 255 ,G = 255 ,B = 255 ,A% = 255 ,border = False)

If A <= 0 And border = False
    Return
ElseIf (A <= 0 And border = True ) Or (A > 0 And border = False ) Or (A > 0 And border = True )

    Buffer = BackBuffer()
    LockBuffer Buffer
    RGB =  255 Shl 24 Or R Shl 16 Or G Shl 8 Or B ;
    For localY# = Point_Y To  Point_Y + height -1
    For localX# = Point_X To Point_X + width -1
        If localX > 0 And localX < GraphicsWidth() And localY > 0 And localY < GraphicsHeight()
        bgRGB = ReadPixelFast (localX ,localY ,Buffer )

        WritePixelFast localX ,localY , GetPixelForOpacity( bgRGB , RGB , A),Buffer
        
        If border
            NewRGB =(255-RGB *(A-((255-RGB )*(255-bgRGB  ) Shr 8)-A) Shr 8)
            WritePixelFast localX ,Point_Y , NewRGB ,Buffer
            WritePixelFast localX ,Point_Y+ height , NewRGB , Buffer
            WritePixelFast Point_X ,localY, NewRGB ,Buffer
            WritePixelFast Point_X + width ,localY, NewRGB , Buffer
        EndIf
        End If

    Next : Next
    UnlockBuffer Buffer
End If
End Function 

Function GetPixelForOpacity( pixelBackground, pixelForeground, pixelAlpha)
    If pixelForeground = $ff000000 Then pixelForeground = pixelBackground
        bgsourceR = ((pixelForeground And $00FF0000) Shr 16);
        bgsourceG = ((pixelForeground And $0000FF00) Shr 8);
        bgsourceB = ((pixelForeground And $000000FF));

        sourceR = ((pixelBackground And $00FF0000) Shr 16);
        sourceG = ((pixelBackground And $0000FF00) Shr 8);
        sourceB = ((pixelBackground And $000000FF));

        newR = sourceR * pixelAlpha/255 + bgsourceR * ( 255-pixelAlpha)/255;
        newG = sourceG * pixelAlpha/255 + bgsourceG * (255- pixelAlpha)/255;
        newB = sourceB * pixelAlpha/255 + bgsourceB * (255- pixelAlpha)/255;

        Return (255 Shl 24 Or newR Shl 16 Or newG Shl 8 Or newB);
End Function


P.S. Думаю тут и без скриншота всё понятно .
__________________
Мой проект здесь

Последний раз редактировалось polopok, 14.10.2015 в 08:47.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо polopok за это полезное сообщение:
impersonalis (11.10.2015), St_AnGer (13.10.2015)
Старый 11.10.2015, 17:00   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Прозрачный прямоугольник с краем

Это конечно круто, но что мешает выводить так любую картинку?
Попиксельные операции дают полную свободу действий, однако производительность страдает, для того и есть фрагментные шейдеры.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (11.10.2015)
Старый 11.10.2015, 19:23   #3
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от SBJoker Посмотреть сообщение
Это конечно круто, но что мешает выводить так любую картинку?
Попиксельные операции дают полную свободу действий, однако производительность страдает, для того и есть фрагментные шейдеры.
По поводу прозрачности картинки уже писал в этом http://forum.boolean.name/showthread.php?t=17431 посте.
Эффективность можно повысить если изображение загрузить в банк памяти и соответственно буфер представить банком памяти , остаётся лишь проход по значениям обоих банков с выводом результата в банк буфера
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 12.10.2015, 02:42   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Прозрачный прямоугольник с краем

Зачем?
Не лучше ли заняться реальной разработкой игр или приложений, исползуя современные и развитые платформы и библиотеки?
Зачем заниматься некро-кодингом?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (13.10.2015)
Старый 12.10.2015, 04:23   #5
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от moka Посмотреть сообщение
Зачем?
Не лучше ли заняться реальной разработкой игр или приложений, исползуя современные и развитые платформы и библиотеки?
Зачем заниматься некро-кодингом?
А никто ни кого ни к чему не принуждает ...
P.S.Каждый ***чит ,как ,где и чем хочет.
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо polopok за это полезное сообщение:
Артем Валерьевич (12.10.2015), Gector (13.10.2015), L.D.M.T. (12.10.2015)
Старый 13.10.2015, 02:46   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от polopok Посмотреть сообщение
А никто ни кого ни к чему не принуждает ...
P.S.Каждый ***чит ,как ,где и чем хочет.
При чем тут принуждение?
Вот, залайкавший L.D.M.T. некро-кодил, и за столько лет ничему не научился, даже примитивную html форму по работе не может сделать, готов заплатить другим.

Заачем?
Разве нету желания создавать что-то крутое и интересное, что люди смогут попробовать и использовать?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (19.10.2015)
Старый 13.10.2015, 03:19   #7
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: Прозрачный прямоугольник с краем

По моему переходим к трёпу
Для меня программирование просто хобби ,а блитз ностальгия ,хотя и сейчас думаю многие кодят на нём.
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
L.D.M.T. (13.10.2015)
Старый 13.10.2015, 11:36   #8
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Прозрачный прямоугольник с краем

moka - ты сублимируешь латентную религиозность в кодовых холиварах. Надоел уже с этой темой хуже фанатиков. В каждом треде (хоть про цпп, хоть про б3д) вспыхивает один и тот же флейм, а ведь ворчание стариков опрокинуло blitz.pp в своё время. Ведёшь себя как член комиссии, выделяющей грант на мильон евро за вышеприведённый код. Тыжнормальный - лучше запили нам демку какую, или про эвент какой расскажи.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Arton (13.10.2015), L.D.M.T. (13.10.2015), polopok (13.10.2015), St_AnGer (13.10.2015)
Старый 13.10.2015, 13:55   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от impersonalis Посмотреть сообщение
moka - ты сублимируешь латентную религиозность в кодовых холиварах. Надоел уже с этой темой хуже фанатиков. В каждом треде (хоть про цпп, хоть про б3д) вспыхивает один и тот же флейм, а ведь ворчание стариков опрокинуло blitz.pp в своё время. Ведёшь себя как член комиссии, выделяющей грант на мильон евро за вышеприведённый код. Тыжнормальный - лучше запили нам демку какую, или про эвент какой расскажи.
Ничего против CPP не имею. Язык может и работу дать, только если опять же, не манчкинством заниматься, а делом.

На демки времени нету совсем, работа-работа-рабство.
Евенты, когда пройдут, расскажу.

Причины по которым я негодую, это то что почти все кто тут сидит с давних времен, пересели с б3д на что-то более дельное, и чем раньше это сделали, тем лучше.
Посмотри на HolyDel, PAX, Mr_F, ARENSHI, да почти все наши старожилы на что-то дельное перешли, и все пробиваются, все двигаются вперед, получают свои деньги за свои творения, или хотя бы реальные проекты, с реальными пользователями.
А не код, который максимум 3 человека скопи-пастят, и больше никто не увидит. Хотя бы на JS'е писал тоже самое, так хоть побольше людей увидило, и может кому-то пригодилось бы, но и это сомнительно.

Разве никто не хочет чтобы его хобби стало работой, приносящей не только фан, но и бабло?
(Offline)
 
Ответить с цитированием
Старый 13.10.2015, 14:03   #10
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от moka Посмотреть сообщение
Причины по которым я негодую, это то что почти все кто тут сидит с давних времен, пересели с б3д на что-то более дельное, и чем раньше это сделали, тем лучше.
Посмотри на HolyDel, PAX, Mr_F, ARENSHI, да почти все наши старожилы на что-то дельное перешли, и все пробиваются, все двигаются вперед, получают свои деньги за свои творения, или хотя бы реальные проекты, с реальными пользователями.
А не код, который максимум 3 человека скопи-пастят, и больше никто не увидит. Хотя бы на JS'е писал тоже самое, так хоть побольше людей увидило, и может кому-то пригодилось бы, но и это сомнительно.

Разве никто не хочет чтобы его хобби стало работой, приносящей не только фан, но и бабло?
Интересно, что за таракан в твоей голове заставляет писать это.
Тебе важно что бы каждое действие имело конечную цель и обязательно полезную/продуктивную.
Пишешь что не надо навязывать мнение другим и сам отчаянно навязываешь своё.
Почему же ты так беспокоишься за других.

(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
Gector (13.10.2015), L.D.M.T. (13.10.2015), moka (13.10.2015), polopok (13.10.2015), St_AnGer (13.10.2015)
Старый 13.10.2015, 14:15   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от Arton Посмотреть сообщение

Интересно, что за таракан в твоей голове заставляет писать это.
Тебе важно что бы каждое действие имело конечную цель и обязательно полезную/продуктивную.
Пишешь что не надо навязывать мнение другим и сам отчаянно навязываешь.
Почему же ты так беспокоишься за других.

Картинка иллюстрирует твою сторону взгляда, т.к. тебе не ясна моя мотивация.
Мотивация простая, такая же как у любого другого человека который стремиться чего-то добиваться в жизни, и желает того же другим.
Я чему-то вроди научился, и начинал с б3д, много общего со многими на булке.
И выбравшись до какого-то уровня, вижу свои и чужие "ошибки", или скорее "погрехи", которые если увидеть чутка раньше, можно лучше и дальше уйти вперед в итоге.
Разве это не круто видеть как народ развивается, и достигает успехов? По мне так это отлично.
Я лично имею список людей, которые кто-то также начинал на булке, а кто-то еще где-то. Мне удалось в ранее время их немного направить, советом или объяснив там что-то по коду. И сейчас они весьма в хорошем положении. Я не приписываю себе ничего, т.к. каждая мелкая деталь важна, и в итоге - это они делают, не я за них. И когда видишь такой рост и развитие. Чертовски приятно, и радостно за людей.

Желаю просто всем чтобы двигались, и развивались. Всего-то.
Порой слышу отмазы, которые звучат для меня как "он тупой, и ему нравится быть тупым, оставь его в покое, не мешай ему тупить". От таких отмаз, мне становится грустно.

Думаю мотивация теперь ясна?
(Offline)
 
Ответить с цитированием
Старый 13.10.2015, 14:57   #12
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от moka Посмотреть сообщение
Картинка иллюстрирует твою сторону взгляда, т.к. тебе не ясна моя мотивация...
С чего ты это взял? Мне понятна твоя мотивация, хотя и не ясны причины, а вот ты меня похоже не понял, или не хочешь.
Когда человек действительно понимает (осознаёт), он перестаёт повторять одно и тоже.

Объяснять что-либо тебе я не собираюсь, вдруг обидишься ты сам в состояние разобраться.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 500 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

P. S. Больше не отвечай пожалуйста, как правило ты стараешься оставить последнее слово за собой, и споры часто становятся бессмысленным словоблудием.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
L.D.M.T. (13.10.2015)
Старый 13.10.2015, 15:01   #13
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от moka Посмотреть сообщение
Желаю просто всем чтобы двигались, и развивались. Всего-то.
Порой слышу отмазы, которые звучат для меня как "он тупой, и ему нравится быть тупым, оставь его в покое, не мешай ему тупить". От таких отмаз, мне становится грустно.
Фанатики рассуждают точно также. Основная проблема - система ценностей: кто-то хочет поиграться с алгоритмами, кто-то заняться ненормальным программированием, кто-то тихонько ковыряется в свободное время (как хобби, которое не умерщвляется, став работой), кто-то изобретает велосипед, т.к. для него это лучший подход к пониманию материала и т.п.
Разумеется, стоит прокомментировать, на случай если человек действительно не понимает, что занят не совсем тем, на что рассчитывает (возможно, даже перенести тему из данного раздела в какие-нибудь "примеры кода"). Но не одним и тем же людям по n-ому разу.
Большинство фанатиков свято верят, что несут свет знаний тёмным дикарям. Тех, кто лишь прикрывается личной миссионера - не так много.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
L.D.M.T. (13.10.2015), polopok (13.10.2015)
Старый 13.10.2015, 15:16   #14
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: Прозрачный прямоугольник с краем

Мда ... Все ,вы ,правы и даже я .
moka , я очень признателен за попытки мотивировать меня ,так же рад тому ,что на этом голубом ,овалообразном шарике земли таки есть люди не равнодушные к другим человек'ам ,ведь одно понимание собственной необходимости повышает стремление к познанию и расширения мира.
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо polopok за это полезное сообщение:
Gector (13.10.2015), moka (13.10.2015)
Старый 13.10.2015, 16:49   #15
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Прозрачный прямоугольник с краем

Сообщение от impersonalis Посмотреть сообщение
Фанатики рассуждают точно также. Основная проблема - система ценностей: кто-то хочет поиграться с алгоритмами, кто-то заняться ненормальным программированием, кто-то тихонько ковыряется в свободное время (как хобби, которое не умерщвляется, став работой), кто-то изобретает велосипед, т.к. для него это лучший подход к пониманию материала и т.п.
Разумеется, стоит прокомментировать, на случай если человек действительно не понимает, что занят не совсем тем, на что рассчитывает (возможно, даже перенести тему из данного раздела в какие-нибудь "примеры кода"). Но не одним и тем же людям по n-ому разу.
Большинство фанатиков свято верят, что несут свет знаний тёмным дикарям. Тех, кто лишь прикрывается личной миссионера - не так много.
Это все очевидные вещи, и мне известно то что ты здесь пишешь.
Я еще не подрос чтобы мириться с окружением, и принимать его как есть. У меня все еще подростковый максимализм где-то, частично остался. И желание "бежать" вперед есть. Время прийдет, и я угомонюсь. А пока, с осознанием того что ты и остальные пишут, я буду гнуть свою палку.

Вреда в моих текстах не вижу, и это важно. Тем более каждый имеет право не читать.

Arton, причины такие же как у любого ученого стремление к познанию, или ребенка попробовать все на вкус, любопытство и не усидчивость - причина которая ведет к мотивации описанной выше.
Я все же не удержался и ответил.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:02.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com