zbysheck Opublikowano 13 Lipca 2008 Udostępnij Opublikowano 13 Lipca 2008 Chodzi mi o to czy mozna odczytac z obrazka kolory powiedzmy trzeciej kolumny pixeli i zapisać to w formie ciągu danych? I drugie pytanie, troche nna inny temat, ale nie chciałem tworzyć kilku wątków. mamy takie coś: 0001100011111001000 więc mamy tu trzy grupy jedynek a grupy mają kolejno 2, 5 i 1 jedynkę. Jak zrobić żeby pierwszy ciąg znaków [czyli 0001100011111001000] przekształcał się na drugi [czyli 251]? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 13 Lipca 2008 Udostępnij Opublikowano 13 Lipca 2008 czyli chcesz zliczać wszystkie "1" aż do momętu kiedy wpadnie na "0" Do tego będzie potrzeba pętla i zabawa z funkcjami stringów. EDIT: może coś wymyśle. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zbysheck Opublikowano 13 Lipca 2008 Autor Udostępnij Opublikowano 13 Lipca 2008 jakis malutki przykładzik może? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 13 Lipca 2008 Udostępnij Opublikowano 13 Lipca 2008 Już zrobiłem zaraz ci dam EDIT: https://gmclan.org/up539_11_strings.html spacją podliczasz i się wynik wyświetla. Zmienna wynik jest stringiem nie realem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 13 Lipca 2008 Udostępnij Opublikowano 13 Lipca 2008 Malutkie błędy, łącząc twój przykład z moim powstało takie coś :) : GML _s = get_string( "Podaj ciąg jedynek i zer:", "1000110001110001111" ); _g = ""; _c = 0; for( _i = 0; _i < string_length( _s ); _i += 1; ) { _char = string_char_at( _s, _i + 1 ); if ( real( _char ) ) { _c += 1; if ( !real( string_char_at( _s, _i + 2 ) ) ) { _g += string( _c ); _c = 0; } } } show_message( "Wynik: " + _g ); Idea twa, moje wykonanie :P . Mały opis: GML // pobieranie ciagu znakow _s = get_string( "Podaj ciąg jedynek i zer:", "1000110001110001111" ); // wynik _g = ""; // aktualna liczba, zerowana podczas napotkania zera. _c = 0; // petla po kazdym znaku for( _i = 0; _i < string_length( _s ); _i += 1; ) { // znak _char = string_char_at( _s, _i + 1 ); // jesli jest inny od zera ( jedynka ) if ( real( _char ) ) { // dodajemy do zmiennej jeden _c += 1; // jesli nastepna liczba to zero: if ( !real( string_char_at( _s, _i + 2 ) ) ) { // dodajemy do wyniku aktualna wartosc zmiennej _g += string( _c ); // zerowanie zmiennej _c = 0; } } } // wiadomosc show_message( "Wynik: " + _g ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zbysheck Opublikowano 13 Lipca 2008 Autor Udostępnij Opublikowano 13 Lipca 2008 Dzięki wam bardzo, przestudiuję to i postaram się sam zrobić od nowa. =] a wie ktoś coś na temat pierwszego pytanka? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 13 Lipca 2008 Udostępnij Opublikowano 13 Lipca 2008 Niedawno baca dał wyśmienity przykład operacji na plikach, w tym też graficznych. Poszukaj ;) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zbysheck Opublikowano 13 Lipca 2008 Autor Udostępnij Opublikowano 13 Lipca 2008 ok wyruszam na łowy jak coś znajde dam znac :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 13 Lipca 2008 Udostępnij Opublikowano 13 Lipca 2008 Zepsuję ci zabawę :D . https://forum.gmclan.org/index.php?showtopic=12613 Dla Game Makera 7.0, ale to chyba nie sprawi problemu :) . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zbysheck Opublikowano 13 Lipca 2008 Autor Udostępnij Opublikowano 13 Lipca 2008 hehe no dzięki bardzo. jak gra dojdzie do skutku [a tym razem to całkiem realne, bo projekt malutki] to macie miejsce w creditsach Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 13 Lipca 2008 Udostępnij Opublikowano 13 Lipca 2008 Jeśli chodzi o czytanie obrazkow to możesz all potraktować jako dwuwymiarową tablice. for(int i = 0; i < surfaceDesc.Height; i++) { for(int j = 0; j < surfaceDesc.Width; j++) { int index = i * lockedRect.Pitch / 4 + j; imageData[index] = 0xffff0000; } } Cała operacja wygląda mniej więcej tak, tutaj surfacedesc to informacje pobrane o teksturze(w gm wygląda to pewnie podobnie) Pitch to wielkość danego rzędu w bajtach(nie możemy użyc poprostu width ponieważ [zależnie od implementacji] Pitch może być rózny od width). W gm powinno to działać podobnie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
zbysheck Opublikowano 19 Lipca 2008 Autor Udostępnij Opublikowano 19 Lipca 2008 Próbuję na razie zrozumieć te sposoby, ale coś mi nie wychodzi =[ ściągnęłem ten przykład, ale GM7.0 upomina się o wersję pro, więc trudno cokolwiek zobaczyć, a z tłumaczenia Willa praktycznie nic nie rozumiem xD [nie martw się, to nie przez twoje niskie umijętności, tylko przez moją odpowność na naukę ;) ] Więc może jeszcze raz zadam takie pytanko: Chcę aby gra podzieliła obrazek tak jak w grze w statki (np pixel trzeciej kolumny i czwartego rzędu to C4) i odczytała wszystkie takie wartości z obrazka i powiedzmy jeśli pixel ma określony kolor, to nadała odpowiednią wartość zmiennej [powiedzmy C4=1] a jeśli nie jest danego koloru to wartość zmienne jest inna [C4=0] mam nadzieję że w miarę jasno wytłumaczyłem. 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ę