Skocz do zawartości

[GML] GM BBCode engine


Rekomendowane odpowiedzi

Jak można się tego domyślić - GM BBCode to prosty silniczek przetwarzający tekst sformatowany za pomocą BBCode. Bardzo czegoś takiego potrzebowałem, więc napisałem sobie, a potem zdecydowałem się podzielić tym z wami, może się komuś przyda ;D

 

Obsługuje tagi:

[b] [/b] - wytłuszczanie tekstu

[i] [/i] - kursywa

[u] [/u] - podkreślenie

 

[color=c_red] [/color]; [color=#AABBCC] [/color] - kolorowanie tekstu

[font=font_tahoma] [/font] - zmiana czcionki

 

Funkcje/skrypty:

 

bbcode_tokenize( Tekst, ObiektCzcionki ) - Tworzy "obiekt bbcode" (szkoda, że w GM brak OOP :() który potem jest używany do rysowania tekstu. W pierwszym argumencie podajemy tekst, który ma być przetworzony/stokenizowany, zaś w drugim podajemy "obiekt czcionki", który ma za zadanie sprecyzować standardowe atrybuty tekstu. Zwraca uchwyt do "obiektu bbcode".

 

bbcode_draw( x, y, ObiektBBCode [, Kolor] ) - Rysuje na pozycji X i Y sformatowany tekst z "obiektu BBCode", który podajemy w trzecim argumencie. Opcjonalnie można podać kolor podkreślenia w czwartym argumencie, jak nie podamy wtedy podkreślać będzie na czarno :P

 

bbcode_free( ObiektBBCode ) - Zwalnia "obiekt bbcode" z pamięci.

 

bbcode_rebuild( ObiektBBCode, Tekst, ObiektCzcionki ) - Przetwarza na nowo podane argumenty i zwraca nowy uchwyt "obiektu bbcode". Zwykłe opakowanie funkcji bbcode_tokenize i bbcode_free.

 

bbcode_font_add( Kolor, Czcionka, Czcionka, Czcionka, Czcionka ) - Tworzy "obiekt czcionki" i zwraca jego uchwyt. W 1st argumencie podajemy standardowy kolor czcionki, w 2nd argumencie podajemy czcionkę bez formatowania, w 3rd argumencie podajemy czcionkę wytłuszczoną, w 4th argumencie podajemy czcionkę z kursywą, w 5th argumencie podajemy wytłuszczoną czcionkę z kursywą :D

 

bbcode_font_free( ObiektCzcionki ) - zwalnia "obiekt czcionki" z pamięci. Nie, nie usuwa czcionek z GM podanych przy tworzeniu "obiektu czcionki".

 

Tak, więc trzeba zrobić co najmniej cztery rzeczy by wyświetlić sformatowany tekst:

- Utworzyć cztery czcionki (ten sam krój, tylko inne style [normalny, wytłuszczony, kursywa, wytłuszczony+kursywa])

- Utworzyć "obiekt czcionki" (bbcode_font_add)

- Utworzyć "obiekt bbcode" (bbcode_tokenize)

- i rysować za pomocą bbcode_draw

 

Parę słów o tagach itp:

- W tagu color kolor możemy podać w hex, czyli np. [color=#AABBCC][/color] i za pomocą kodu GML czyli np. [color=c_red][/color] i [color=make_color_rgb( 100, 100, 100 )][/color]

- W tagu font podajemy uchwyt "obiektu czcionki".

- Żeby wyświetlić znak "[" musisz wpisać "\[", to samo z "#"

 

Screenik:

bb.png

 

Download (gm6):

http://www.gmclan.org/up541_11_bbcode.html (with example! :D)

Dopiszcie mnie do credits jeśli tego użyjecie.

Odnośnik do komentarza
Udostępnij na innych stronach

mmmiodzio :) dobry przyklad, stanowcze 5 daje

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...