Exigo Opublikowano 17 Czerwca 2012 Udostępnij Opublikowano 17 Czerwca 2012 Hej, Tworzę dynamicznie sprite, korzystając ze źródła będącego surfacem. Sprite taki posiada jedną klatkę (ind. 0). Teraz pytanie: Jak "dołożyć" następną klatkę (tzn. o indeksie 1, 2, 3, etc.)? Używany w tym przypadku sprite_create_from_surface nie posiada argumentu odpowiedzialnego za wymagany indeks (przykładowo, w przeciwieństwie do sprite_add który go ma, ale sposób wczytywania bitmapy jest z góry zarzucony w formie zewnętrznego pliku (nie da się po prostu wpisać tam identyfikatora surface)). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 17 Czerwca 2012 Udostępnij Opublikowano 17 Czerwca 2012 Jeśli się nie myle są dwie funkcje sprite add from surface i sprite create from surface, ta pierwsza dodaje do istniejącego sprita subimage. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 18 Czerwca 2012 Udostępnij Opublikowano 18 Czerwca 2012 Albo przechowywać utworzone klatki w tablicy czy jak ci tam wygodnie i po kolei rysować. Może być niezbyt wydajnie ale będziesz mieć większą kontrole nad wyświetlaniem, na przykład różne czasy przejścia między klatkami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 18 Czerwca 2012 Autor Udostępnij Opublikowano 18 Czerwca 2012 I tak zrobiłem. Ogólne zamierzenie było takie, że wczytywałem teksturę-atlas znakami ascii, po czym poszczególne komórki w tablicy nadpisywałem spritami. Fakt, jest większa kontrola, ale prościej będzie jeśli przerobię to na gmowego fonta z całą jego funkcjonalnością. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 20 Czerwca 2012 Autor Udostępnij Opublikowano 20 Czerwca 2012 Bump, Mam trochę wolnego czasu więc wracam do problemu. ; ) (i sry za double, ale był koniecznością) Tak więc sprostowanie: obydwie wymienione przez was funkcje Nie posiadają argumentu odpowiedzialnego za subimage. Może napiszę co chce uzyskać, gwoli ścisłości, w jednym zdaniu: Mam zewnętrzny plik graficzny, który jest atlasem, zawierającym 256 znaków. Celem jest wczytanie tego, i przerobienie na fonta. Odległości są mniejszym problemem, z tym sobie poradzę. Jakieś pomysły? ^^ A, i najważniejsze: Makary napisał o tablicy. To akurat chcę ominąć, ze względu na potrzebę funkcjonalności oferowanej przez gmowe fonty. ; ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 20 Czerwca 2012 Udostępnij Opublikowano 20 Czerwca 2012 najpierw tym robisz nowego sprita z 1 klatką sprite_create_from_surface(id,x,y,w,h,removeback,smooth,xorig,yorig) Creates a sprite by copying the given area from the surface with the given id. removeback indicates whether to make all pixels with the background color (left-bottom pixel) transparent. smooth indicates whether to smooth the boundaries. This makes it possible to create any sprite you want. Draw the image on the surface using the drawing functions and next create a sprite from it. The function returns the index of the new sprite. Note that alpha values are maintained in the sprite. potem tym dodajesz kolejne klatki sprite_add_from_surface(ind,id,x,y,w,h,removeback,smooth) Adds an area of the surface id as a next subimage to the sprite with index ind. potem tym przerabiasz sprita na fonta font_add_sprite(spr,first,prop,sep) Adds a new font and returns its index. The font is created from a sprite. The sprite should contain a subimage for each character. first indicate the index of the first character in the sprite. For example, use ord('0') if your sprite only contains the digits. prop indicates whether the font is proportional. In a proportional font, for each character the width of the bounding box is used as the character width. Finally, sep indicates the amount of white space that must separate the characters horizontally. A typical value would lie between 2 and 8 depending on the font size. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 20 Czerwca 2012 Autor Udostępnij Opublikowano 20 Czerwca 2012 Ahh, już wszystko wiadomo, Adds an area of the surface id as a next subimage to the sprite with index ind. Dzięki. ; ) Edit: A jak się ma sprawa z określaniem szerokości znaku? Nie globalnie, ale każdy o osobnej, określonej przeze mnie wartości? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę