
Pental Stary
Zbanowani-
Postów
354 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Pental Stary
-
Pobieranie danych z pliku
Pental Stary odpowiedział(a) na Markuz temat w HTML, PHP, mySQL, JavaScript
Proszę, o to kod mojego "file explorera". Wszystkie pliki (oprócz tego pliku) muszą być w folderze Files :P . Ale: jest mało optymalny, mógłbym użyć funkcji ew. dodatkowej zmiennej, ale nie chce mi się. "Powrót" to tak na prawdę "wstecz", tak więc niekoniecznie niezawodne :P , oraz da się zajrzeć do folderu wstecz, wystarczy twojastrona.pl?dir=/.. <html> <head> <title>Starocie</title> <style type="text/css"> body { background-color: rgb( 255, 255, 220 ); } hr { height: 1px; color: black; width: 520px; text-align: left; } #all { padding: 10px; text-align: center; width: 520px; background-color: rgb( 255, 255, 190 ); font-family: Courier New; font-size: 13; } a, a:visited { font-weight: none; color: black; text-decoration: none; } a:hover { text-decoration: underline; } img { border: 0; } </style> </head> <body> <div id="all"> <div style="text-align: left;"> <?php // wyswietlanie plikow $d = "files" . $_GET["dir"]; $files = scandir( $d, 0 ); echo "Folder: " . $d . " (Plików i folderów: " . ( sizeof( $files ) - 2 ) . ")\n<br>"; for( $i = 1; $i < sizeof( $files ); $i++ ) { if( $files[$i] != "." && $files[$i] != "..") { $p = pathinfo( $files[$i] ); if ( $p["extension"] == "" ) echo "<a href=\"http://calante.ugu.pl/?dir=" . $_GET["dir"] . "/" . $files[$i] . "\"><img src=\"dir.bmp\" style=\"margin-right: 10px;\">" . $files[$i] . "</a>"; elseif ( $p["extension"] == "exe" ) echo "<a href=\"http://calante.ugu.pl/" . $d . "/" . $files[$i] . "\"><img src=\"app.bmp\" style=\"margin-right: 12px; margin-left: 2px;\">" . $files[$i] . "</a>"; elseif ( $p["extension"] == "txt" ) echo "<a href=\"http://calante.ugu.pl/" . $d . "/" . $files[$i] . "\"><img src=\"text.bmp\" style=\"margin-right: 14px;\">" . $files[$i] . "</a>"; elseif ( $p["extension"] == "png" || $p["extension"] == "bmp" || $p["extension"] == "gif" || $p["extension"] == "jpg" ) echo "<a href=\"http://calante.ugu.pl/" . $d . "/" . $files[$i] . "\"><img src=\"img.bmp\" style=\"margin-right: 14px;\">" . $files[$i] . "</a>"; else echo "<a href=\"http://calante.ugu.pl/" . $d . "/" . $files[$i] . "\"><img src=\"file.bmp\" style=\"margin-right: 14px;\">" . $files[$i] . "</a>"; echo "<br>\n"; } } if ( $_GET["dir"] != "" ) echo "<a href=\"java script: history.go( -1 );\"> <img src=\"go.bmp\" style=\"margin-right: 10px;\">Powrót</a>"; ?> </div> </div> </body> </html> Może ci się przyda :) . Wygląda to tak: http://calante.ugu.pl/ :P . Aha, spacja robi się pomiędzy java a script, usuń ją, i powinno działać jak należy :) . -
Praktyczne zastosowanie spektrum
Pental Stary odpowiedział(a) na Jakim temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Bardzo dobre, może mi się przyda :) . -
Odczyt poziomów z pliku
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Konrad, łał, zaszpanowałeś swoją wiedzą, ale samo odnoszenie się do dll'a wcale nie jest szybsze. No i skąd wziąć id obrazka :] ? Trzeba by było napisać od razu całą funkcję do odczytu obrazka z zewnątrz i w programie używać gotowych tablic. A to, może, by już było dobrym rozwiązaniem. -
Odczyt poziomów z pliku
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Ej, no :( . Sam przeczytaj, zwróciłeś się do cytatu: "to nie prawda", a jeśli nie, to co ma piernik do wiatraka? A tobie polecam przeczytać pierwszego posta, jeśli to zrobiłeś to wywnioskuj coś z niego :P . -
Odczyt poziomów z pliku
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
1024x768? Jeden piksel to nie jeden piksel rooma :D . Ten kod jest dla obiektów statycznych raczej :P ... -
Odczyt poziomów z pliku
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Aha, 5 - latek tak nie rozumuje :unsure: . Masz rację, gra ładuje się szybciej i exe'k mniej waży, jeśli zamiast jednego rooma, będzie dużo roomów... Człowieku zastanów się co piszesz! Jeśli ładujemy zasoby z zewnętrznych plików exe'k zawsze będzie mniejszy :o . A teraz napiszesz coś innego, proszę, nie rób ze mnie idioty, myśleć chyba umiem i wiem, że a - b, zakładając że b jest większe niż zero, zawsze będzie mniejsze od a :/ . A z dllem byłoby wolniej, gdyż samo odwołanie się do niego obciąża komputer. -
If zmienna= text lub text różniący się 1 lub 2 słowami
Pental Stary odpowiedział(a) na level123 temat w Pytania początkujących
Zaraz ci to zrobię, ale najpierw objaśnienie: __l = ds_list_create(); // tworzy liste wyrazow __s = get_string( 'Podaj stringa:', '' ); __a = ''; // to aktualny wyraz, na razie pusty for( __i = 0; __i < string_length( __s ); __i += 1; ) // przejezdza po kazdym znaku string_length( __s ) <- dlugosc tekstu ktory podales { __c = string_char_at( __s, __i + 1 ); // aktualny znak if ( __c == ' ' ) // jesli to spacja, znaczy ze wyraz poprzedni sie skonczyl wiec dodajemy wyraz do listy a aktualny nadal jest pusty { ds_list_add( __l, __a ); // dodajemy ten wyraz __a = ''; // aktualny jest znowu pusty } else // a jesli nie ma spacji { __a += __c; // aktualny wyraz zwieksza sie o aktualna literke if ( __i == string_length( __s ) - 1 ) // jesli to koniec zdania { ds_list_add( __l, __a ); // dodajemy ostatni wyraz } } } for( __i = 0; __i < ds_list_size( __l ); __i += 1; ) // tyle ile jest wyrazow tyle wyswietlamy :) show_message( 'Wyraz nr ' + string( __i + 1 ) + ': ' + ds_list_find_value( __l, __i ) ); -
Odczyt poziomów z pliku
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Saus, ty chyba nie wiesz, co to jest dzisiejszy komputer xD . Zauważ, że tam jest jeszcze jedna pętla :) . HuderLord, e tam, wiele gier mają w "nie-skompresowanych" plikach tekstowych bardzo ważne zasoby i co z tego :P ? Konrad, użycie dll'a wiele lepszym rozwiązaniem by nie było. -
Odczyt poziomów z pliku
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Właśnie, to co napisaliście to prawda. Do większości plansz się nie nadaje, chyba, że do gier pacmano-podobnych. Ew. po kilku zmianach miałoby to zastosowanie, w tworzeniu otoczenia :P . Swoją drogą - jest to także niewydajne, o tyle, że aby pobrać kolor danego piksela, grafika zostaje wyświetlona na tymczasowej powierzchni. Ale to już wina braku funkcji sprite_getpixel() :confused: . -
Odczyt poziomów z pliku
Pental Stary opublikował(a) temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Odczyt poziomów z pliku mówi samo za siebie, w tym jednak przykładzie zamiast odczytywać poziom z pliku tekstowego, poziom odczytujemy z grafiki, np. bitmapy, gifa itp. Jakie to ma zalety? Hmm... jedyne co to daje, to zmniejsza rozmiar exe'ka i gra szybciej się ładuje, większego sensu raczej to nie ma, no ale kit z tym :P . Jak wygląda taka grafika? Ano, załóżmy, że tak :) : Została powiększona ośmiokrotnie jakby co. Do odczytu takiego poziomu, wystarczy prosty skrypt load_map: /* load_map( sciezka, lista1, lista2 ) sciezka - sciezka do pliku mapy, np. 'mapa.gif' lista1 - lista z kolorami lista2 - lista z obiektami funkcja nie dziala poprawnie w evencie Draw! */ _dir = argument[0]; _col = argument[1]; _obj = argument[2]; var __temp, __s; __s = sprite_add( _dir, 0, 0, 0, 0, 0, 0, 0 ); __w = sprite_get_width( __s ); __h = sprite_get_height( __s ); __temp = surface_create( __w, __h ); surface_set_target( __temp ); draw_sprite( __s, 0, 0, 0 ); surface_reset_target(); for( _i = 0; _i < __w; _i += 1; ) for( _j = 0; _j < __h; _j += 1; ) { __c = surface_getpixel( __temp, _i, _j ); __x = _i * ( room_width / __w ); __y = _j * ( room_height / __h ); for( i = 0; i < ds_list_size( _col ); i += 1; ) { if ( ds_list_find_value( _col, i ) == __c ) { instance_create( __x, __y, ds_list_find_value( _obj, i ) ); break; } } } surface_free( __temp ); Nie będę objaśniał tego kodu, bo sensu by to nie miało. Jak odczytać planszę? Wystarczy stworzyć dwie listy - jedna z kolorami, druga z obiektami. Wyglądać to może tak: global._list_col = ds_list_create(); global._list_obj = ds_list_create(); Dodawanie jednak na przemian wartości do pierwszej i drugiej listy byłoby może nieco niewygodne, dlatego też można napisać sobie prostą funkcję ułatwiającą życie o nazwie add_color: ds_list_add( global._list_col, argument[0] ); ds_list_add( global._list_obj, argument[1] ); Funkcje już mamy, teraz do dzieła. Pamiętaj, że: -kolor zielony (make_color_rgb( 0, 255, 0 )) to obiekt Point -kolor czerwony (c_red) to obiekt Hero -zaś kolor czarny (c_black, ew. 0) to obiekt Block Teraz przygotowujemy obydwie listy do użycia: load_map( 'mapa.gif', global._list_col, global._list_obj ); Gotowe :) . Jeszcze jedna uwaga: ponieważ grafika ma wymiary 10 x 10, to by uzyskać odpowiedni efekt należy zapamiętać tę o to zasadę: szerokosc rooma = szerokosc grafiki * szerokosc innych sprite'ow wysokosc rooma = wysokosc grafiki * wysokosc innych sprite'ow Czyli w tym wypadku rozmiar rooma, zakładają, że grafiki mają wymiary 32 x 32, to 320 x 320 :) . Tyle ode mnie. Mogę także zarzucić przykładem z dwoma planszami: https://gmclan.org/up4218_4_Mapy.html Pozdrawiam, Pental. -
Hmm... Coś znalazłem ;) ! Tablice prosto mówiąc to są indeksowane zmienne. Potrzebę używania tablic łatwo jest zauważyć kiedy przyjdzie nam na nie zapotrzebowanie. Na przykład, chcielibyśmy aby możliwe było w łatwy sposób wyzerować wartość zmiennej a z liczbą na końcu 2, czyli a2. Wydaje to się banalne, i tak w rzeczywistości jest. a2 = 0; Jak widać żadnych problemów nie ma. A gdybyśmy chcieli zmienną a2, a3 itd. ... a99, a100? Akurat wtedy zauważyć by można zbędne występowanie 100 linijek kodu. Dlatego prostszym rozwiązaniem było by w jakiś sposób jednak indeksować te zmienne. Czy GML pozwala na to? Oczywiście, GML jak większość język programowania bądź skryptowych oferuje tablice (w niektórych językach występują tablice asocyjne, tzn. o indeksie w postaci łańcucha znaków, ale to tylko ciekawostka). Jak wygląda składnia nadania wartości tablicy? Przyjrzyj się dokładnie: tablica[indeks] = <wartosc>; Generalnie wygląda to całkiem łatwo. Jak to wygląda w praktyce? Przykład, który mogę zaoferować to program do wyliczania średni arytmetycznej spośród podanych przez nas liczb. Kod będzie banalnie prosty: maxValues = 0; do { value[maxValues] = get_integer( "Podaj liczbę, lub wpisz zero.", 0 ); maxValues += 1; // powiekszanie indeksu kolejnej tablicy, wydaje sie logiczne, gdyz co chwile bedziemy tworzyc nowa zmienna } until( !value[maxValues - 1] ) // koniec petli, gdy podamy liczbe 0 divAll = 0; // znane z obliczania sredniej ocen, dodajemy wszystkie liczby for( i = 0; i < maxValues - 1; i += 1; ) divAll += value[i]; divAll /= maxValues - 1; // a potem dzielimy przez maksymalna wartosc show_message( "Średnia tych liczb to: " + string( divAll ) ); game_end(); Przykład może wydawać się trudny. Przeanalizujmy go. Można napisać w punktach proces obliczania średniej w tym przykładzie. 1. Deklarujemy zmienną odpowiedzialną za maksymalną ilość liczb 2. Zaczyna sie pętla. Jeśli Podamy zero, następuje koniec i przechodzimy do następnego punktu. W przeciwnym wypadku wszystko się zapętla. Pętla ta odpowiedzialna jest za tworzenie tablicy o coraz większym indeksie, gdyż indeksem jej jest ciągle powiększająca się zmienna maxValues. 3. Teraz pętlą for dzięki iteratorowi (i += 1) będziemy "przechodzili" kolejno po wszystkich tablicach i sumowali je, tzn. wartość wszystkich liczb będzie znajdywała się w zmiennej divAll. 4. Teraz znanym nam sposobem, osiągniętą sumę dzielimy operatorem dzielenia przez największy indeks tablicy value (czyt. przez ilość liczb). 5. Na końcu wyświetlamy wartość średniej i kończymy program. Wydaje się trudne, ale w ten sposób łatwo będzie ci wszystko przychodzić. Pozostaje jeszcze jedno zagadnienie, mianowicie tablice dwuwymiarowe. Tego już nie będę szczegółowo omawiał, powiem tylko, iż są to tablice z dwoma indeksami. Oddzielamy je przecinkami. Tak jak poprzednio, potrzebne nam to będzie tylko wtedy, gdy będzie nam brakowało pomysłów na stworzenie odpowiedniego elementu gry. Np. taki ekwipunek, łatwo byłoby go "wykonać" na tablicach dwuwymiarowych. Wtedy tworzymy stałą, nazywamy ją FLD_EMPTY i nadajemy jej wartość -1. W zdarzeniu Create można stworzyć ekwipunek w taki sposób: for( i = 0; i < 10; i += 1; ) { for( j = 0; j < 10; j += 1; ) { inv[i,j] = FLD_EMPTY; // 10 x 10 = 100 pol wolnych } } Możemy sobie napisać funkcję dodającą przedmiot do plecaka, potrzebne będzie jednak stworzenie stałej FLD_ITEM. Teraz łatwo będzie napisać tę funkcję. for( i = 0; i < 10; i += 1; ) { for( j = 0; j < 10; j += 1; ) { if ( inv[i,j] == FLD_EMPTY ) { inv[i,j] = FLD_ITEM; return true; } } } Dodatkowo będzie ona nam zwracała wartość 1, jeśli w plecaku będzie miejsce na rzecz, lub 0, jeśli miejsca zabraknie. Wyświetlania go już nie na piszę, bo nie o tym mowa i szkoda na to czasu. Mam jednak nadzieję, że zrozumiałeś do czego służą tego typu zmienne. Miłej nauki biggrin.gif ! By Misztrzunio :) . Przerobiłem lekko, bo wersja Misztrzunia miała błędy :P .
-
If zmienna= text lub text różniący się 1 lub 2 słowami
Pental Stary odpowiedział(a) na level123 temat w Pytania początkujących
Aha, miło. Kod na oddzielanie wyrazów: __l = ds_list_create(); __s = get_string( 'Podaj stringa:', '' ); __a = ''; for( __i = 0; __i < string_length( __s ); __i += 1; ) { __c = string_char_at( __s, __i + 1 ); if ( __c == ' ' ) { ds_list_add( __l, __a ); __a = ''; } else { __a += __c; if ( __i == string_length( __s ) - 1 ) { ds_list_add( __l, __a ); } } } for( __i = 0; __i < ds_list_size( __l ); __i += 1; ) show_message( 'Wyraz nr ' + string( __i + 1 ) + ': ' + ds_list_find_value( __l, __i ) ); Reszty ci nie zrobię, póki nie wytłumaczysz... -
If zmienna= text lub text różniący się 1 lub 2 słowami
Pental Stary odpowiedział(a) na level123 temat w Pytania początkujących
No właśnie, jak nie potrafisz dobrze wytłumaczyć, to dopiero co ja mam powiedzieć. Czekaj chwilkę, zaraz edit :) . -
If zmienna= text lub text różniący się 1 lub 2 słowami
Pental Stary odpowiedział(a) na level123 temat w Pytania początkujących
Boże, odpowiedz na moje pytanie -.-' ... -
If zmienna= text lub text różniący się 1 lub 2 słowami
Pental Stary odpowiedział(a) na level123 temat w Pytania początkujących
Oj tam, powiedz jak to ma działać. Że "tekst tekst" jest równy np. "tekst tekst lol" ? -
Heh, fajne, Yoda :thumbsup: !
-
Biegi, obrotomierz, prędkościomierz
Pental Stary odpowiedział(a) na m@rcixxx temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Co do punktu 3 Tymon, może go źle zrozumiałeś :P ? A przedrostki śmierdzą, duża litera załatwi sprawę :) . A przykład mi się podoba. Chciałem jeszcze powiedzieć, że sam listing kodu w C++ odpowiedzialny za coś takiego byłby podobny. Funkcje takie, jak te z GMa oferuje każda dobra biblioteka za to odpowiedzialna :) . -
Że gra nie działa. To jacyś idioci, którzy myślą, że jak dadzą 1 będą fajni, ech.. W grę jeszcze nie grałem, jednak mam zamiar, bo zapowiada się wyśmienicie :) .
-
[Delphi] Sekundy na minuty, godziny i dni
Pental Stary odpowiedział(a) na Luksor temat w Pascal, Delphi
To także podstawy. Aby to osiągnąć musisz znać resztę z dzielenia i tyle. -
PoKeMoN sTyle.
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
No czasem mogą być problemy, nawet przy tym kodzie. Jeśli warunki są różne, switch odpada. -
PoKeMoN sTyle.
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Aha, to tylko GML :) . No fakt, ale kod w switchu jest nie przyszłościowy, i wcale nie czytelny. A co do krótkiego kodu, masz rację. Lepsza kilkuminutowa bajka od jakiegoś dobrego długiego horroru :) . -
PoKeMoN sTyle.
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Jej, lamusku Harvie, wyjdź :> . Zaczynając od twojej niewiedzy -> w case'ach może być tylko liczba całkowita, tak więc good bye. Kod jest najlepszy, jeśli chodzi o łatwe edytowanie, mógłbym dać kolejną funkcję, ale wtedy taki Harv by nie zrozumiał, więc zuy pomysł :) . -
PoKeMoN sTyle.
Pental Stary odpowiedział(a) na Pental Stary temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Aha ok, załóżmy, że coś z waszych wypowiedzi rozumiem :o . No to moje uwagi: -w switchu wyglądało to by bardziej fatalnie -kod może mógłby być nieco bardziej "krótszy", jednak mógłby być cięższy do przeanalizowania -to co podał marek, to nie to, co chciał mieć mój kuzyn, tak więc wypad :) -czy ja się chwalę :confused: Na podstawie tego tematu wywnioskowałem, że lepiej dać gotowy przykład, wtedy nikt nie zajrzy do kodu i nie zobaczy jego "słabych stron" xD . -
PoKeMoN sTyle.
Pental Stary opublikował(a) temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Pisałem program dla kuzyna - zamieszczam kod źródłowy skryptu: GML _text = get_string( "Podaj tekst:", "Siemka misiu masz zajefajne foteczki jestes boski chce cie przeleciec i w ogole zaraz dostane orgazmu jak nie zamkne twojego profilu" ); _result = ''; for( _i = 1; _i <= string_length( _text ); _i += 1; ) { _char = string_upper( string_char_at( _text, _i ) ); _char2 = string_upper( string_char_at( _text, _i + 1 ) ); if ( _char == "Z" && string_upper( string_char_at( _text, _i - 1 ) ) == "S" ) { continue; } else if ( _char == "S" && _char2 == "Z" && round( random( 1 ) ) ) { _result += choose( "sH", "Sh", "SH", "sh" ); continue; } else if ( _char == "Ż" || _char == "ż" && round( random( 1 ) ) ) { _result += choose( "sH", "Sh", "SH", "sh" ); continue; } else if ( _char == "O" && ( round( random( 1 ) ) ) ) { _result += "0"; continue; } else if ( _char == "I" && ( round( random( 1 ) ) ) ) { _result += "1"; continue; } else if ( _char == "A" && ( round( random( 1 ) ) ) ) { _result += "4"; continue; } else if ( _char == "E" && ( round( random( 1 ) ) ) ) { _result += "3"; continue; } else if ( _i mod 2 ) _result += string_upper( _char ); else _result += string_lower( _char ); } clipboard_set_text( _result ); show_message( "Tekst skopiowany do schowka!" ); Pozdrawiam! -
Tworzenie katalogów
Pental Stary odpowiedział(a) na GMTraker temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
To użycie jednej funkcji, nie no brawo :D !