Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [GML] GM BBCode engine
GMCLAN Forum > Game Maker > Skrypty, przykłady, dodatki, silniki 3D dla GM
Snake
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 sad.gif) 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 tongue2.gif

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ą biggrin.gif

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:


Download (gm6):
http://www.gmclan.org/up541_11_bbcode.html (with example! biggrin.gif)
Dopiszcie mnie do credits jeśli tego użyjecie.
ΨΧΞ
mmmiodzio smile.gif dobry przyklad, stanowcze 5 daje
Misiek999
świetny przykład, kiedyś załatwiałem takie rzeczy draw_set_font i trzeba było osobne stringi robić teraz będzie o wiele wygodniej no i jest podkreślenie biggrin.gif 5/5.
Jaklub
Dobre i użyteczne. Trochę mało tagów, ale to jest zwykłe czepialstwo. Masz 5/5.
Globi
Snake - zrób intemplentacje curla w gamemakerze ;p
Hunter
Naprawde niezłe, na pewno sie komus przyda. Dla mnie bomba 5/5 .
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2010 Invision Power Services, Inc.