Skocz do zawartości

Muchaszewski

Użytkownicy
  • Postów

    235
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Muchaszewski

  1. Witam. Mam pytanie czysto teoretyczne. Mamy zmienną "global.przyklad" i 2 obiekty. W roomie 1 ma ID 100001 a drugi 100002 (To raczej oczywiste :jezor: ). Obiekt 1 potrzebuje zmiennej z obiektu 2. W pierwszym obiekcie kod sprawdzający ma się odbywać A: W Create B: W Room Start C: Żadne A drugi obiekt ma stworzyć tą zmienną w: A: W Create B: W Room Start C: Żadne :boxed: :blink: Co zrobić żeby nie było błędu. Może zrobić to innym wywoływaczem. Step, Begin Step, End Step, Alarm... i inne trwające nie wchodzą w grę. A i Game Start też nie.
  2. Hehe chciałem zobaczyć co to jest i po ustawieniu czegoś i usunięciu błąd xD GML ERROR in action number 1 of Step Event for object Real_wire: Error in code at line 3: xx1=start_line.x at position 17: Unknown variable x _____________________________ ERROR in action number 1 of Step Event for object Gate_Square_Root: Error in code at line 26: in01=in01_id.out01; at position 15: Unknown variable out01 Zrób coś z tym ;D E; Ale tak to fajne xD
  3. Tymon twój przykład to nie było to o co mi w 100% chodziło ale wpadłem na pomysł i sam sobie poradziłem. GML if line_count = 250 {for (l=0;l<50;l+=1) {line_count = 50 line_x[line_count - l] = line_x[250 - l] line_y[line_count - l] = line_y[250 - l]}} U ciebie to by trochę inaczej wyglądało, ale no cóż xD Dzięki wam wszystkim :thumbsup: Zamykam
  4. Link do tego co chcę. Już przerobiony. https://gmclan.org/up4308_12_linie.html I jeszcze coś. Porównałem oba przykłady Tymona i Marka. Twój Tymon jest strasznie pamięcio-żerny. Dlatego też go nie użyję. Szczegóły niżej. I co do tego linku. Jak usunąć będące w tabeli wartości. Mamy w tabeli z 1600 wartości, z czego tylko 50-300 jest używane. Co można zrobić żeby nie używał tych wcześniejszych. Może nie jest to trochę po polsku dlatego pokaże na przykładzie. GML line[0] = 10 line[1] = 13 line[2] = 4 line[3] = 5 W roomie wiać tylko wartości (line[2] = 4 line[3] = 5), reszta wartości jest używana, lecz do czegoś czego gracz nie widzi. Co zrobić z tymi 2 pierwszymi wartościami żeby ich nie używał, nie przechowywał w pamięci itd!!! Tymon: U ciebie po naciśnięciu przycisku obiekt tworzy nowy punkt i kolejny i kolejny. Jeżeli polatamy w górę i w dół i tak z 30s będziemy mieli 900 punktów i z 10 linii. Dużo zmiennych, a tego chcę uniknąć.
  5. No... Tak. Trochę przerobiłem to i teraz linia zamiast lecieć, to jej główny punt stoi w miejscu, ew. poruszanie przez gracza, a reszta lini, dalsze punkty "uciekają" poza room. Chodzi mi o to aby te linie które są poza tym roomem "nie istniały". Nie przyjmowały żadnej wartości, gdyż ich i tak nie widać a tylko zajmują miejsce w pamięci komputera.
  6. Oczywiście te które są najdalej, nie widać ich w roomie E: Nie obraź się Tymon korzystam z przykładu Marka.S GML if line_count =50 {line_count = 1 line_x[ line_count ] = line_x[ 50 ]; line_y[ line_count ] = line_y[ 50 ]; Przy takim czymś linia wyprostowuje się. Jej wszystkie poprzednie wartości wracają do początkowej. Nie powinny poprzednie zachować kształtu?
  7. Teraz też jest dobry. Zasada działania dokładnie ta sama. Czemu ja na to nie wpadłem xD Mam jeszcze jedno pytanie. Jeżeli tak ta linia leci i zrobiłem ok. 800pkt to zaczyna się przywieszać(Mam słaby komp). Dlatego co zrobić żeby usunąć wartości z tabeli. Jeżeli zmieniam ją na 0 to do chodzę do 1200 pkt i lagi. Myślałem żeby zaczął używać ponownie tych samych pkt, lecz wtedy może wystąpić błąd taki jak nagłe znikanie lin z planszy.
  8. Twój przykład wygląda ciekawie ale nie oto mi chodziło xD Musiał bym się bardziej wgłębić w twój przykład żeby wiedzieć co tam narobiłeś i usunąć niepożądane efekty. Natomiast twój jest idealny w działaniu. Jeszcze przejże twój kod w dokończeniu do i dopasowaniu, lecz jest idealny do moich potrzeb. Wielkie dzięki wszystkim zaangażowanym w pomoc mi xD
  9. Dobra to mnie zaskoczyło, dlatego nasuwa się kolejne moje pytanie DLACZEGO TO DZIAŁA?!?! Myślałem że będzie błąd a tu nie, czemu. Ktoś może mi to wyjaśnić.
  10. Nie może a na pewno. Włącz jedną z przykładowych gier.
  11. Witam. Jak zrobić żeby w grze po naciśnięciu znaku tyldy coś się działo. Próbowałem kilku sposobów ale nic nie działa. Nie ma błędu, lecz akcja dzieje się natychmiast, jakby warunku nie było. GML if keyboard_check('`') //Reszta kodu if keyboard_check(chr(126)) //ASCII na ~ if keyboard_check(chr(96)) //ASCII na ` if keyboard_check(ord(`)) //...</span> Co zrobić???
  12. Pewnie w tym przykładzie był skrypt który nazywał się "get_resource" i jako argument trzeba wpisać nazwę dźwięku. Rozwiązaniem będzie skopiowanie tego skryput.
  13. Fajny kod poruszania w tym przykładzie xD Cały kod od poruszania dajesz w gigantyczną klamrę, i dodajesz tam warunek if woda=0{WIELKI KOD} a później go kopiujesz i wpisujesz do następnej klamry if woda = 1. Nie daje tu else bo możesz coś wymyślić że będziesz pływał w lawie czy coś xD. W tym 2 zmieniasz co tam chcesz i git majonez. Powinno działać, ale jeszcze sprawdzę. EDIT: Dobra poddaje się. Ten kod jest jak na mnie zbyt rozbudowany. Będzie ciężko. W tym przykładzie on zawsze wykrywa wodę, lecz kod jest tak rozpisany że sam musisz stwierdzić co się zmieni podczas wejścia do wody a co nie. W Create jest masa rzeczy które trzeba by było zmienić podczas wlotu do wody. W step możesz dopisać if woda = 1 && [To co niżej] {Ponowna deklaracja wszystkich rzeczy które mają się zmieniać.} if woda = 1 && [Jedna z zmiennych aby nie powtarzał tego co nie miara] {Ponowna deklaracja wszystkich rzeczy które mają się zmieniać.}. Chcesz więcej pomocy w tym temacie. Niestety musisz poradzić sobie sam. Ten kod powyżej działa. Miłego myślenia.
  14. Musiał byś każdej zaznaczonej jednostce przekazać o ile więcej ma się przesunąć. Jeżeli są to te same jednostki to nie ma problemu jeżeli inne to masz dużo roboty. E: Tego że jednostki się usuwają to nie wiem.
  15. Maska kolizji znajduje się w oknie tworzenia obrazku, tam gdzie masz opcje wczytaj, edytuj itd. Jeżeli masz GM8 te opcje są w Modyfi Mask, a jeżeli 7.1 i starszą to od razu w tamtym oknie. Tam poszukaj Bounding Box. W tym są opcje Automatic, Manual, i Full image. Jeżeli masz Automatycznie to maska kolizji znajduje się automatycznie na całym obrazku gdzie coś narysowałeś, a ona odpowiada za to w którym miejscu pixelu po zderzeniu będzie się działa instrukcje kolizji. Załapałeś?? Dobrze jest wiedzieć, ale to sprawdzenie to będzie dokładnie to samo co to: GML //W kolizji woda = 1 //W draw draw_text(10,10,string(woda)) Jeżeli woda = 1 to maska kolizji jet dobrze ustawiona. Jeżeli za dużo dla ciebie dawać cz. projektu to daj kod od samego sterowania graczem i kolizji z "oWoda" Ale duży ten temat xD
  16. Intel Pentium Dual Core E2140 1.6 Ghz Wydaje mi się że to jest 3.2 Ghz ale może być tak że samo słowo Dual wiele daje. 2GB RAM, 256MB karty graficznej. Co prawda jak patrze za daleko w "kosmos" :D to mam z 30/10 xD
  17. Mam ciekawy problem: Jak usunąć windowsa xD A tu się zacznie wyzwanie mam 3 te same windowsy na 1 partycji, partycji mam aż... 1 ;D Google są puste w tej sprawie. Pomocy!!!! Tymi windowsami są Win. Xp Professional. Odpowiadam odrazu na bezsensowne pytania: Omg czemu 3??? - Bo na 1 mam strasznego wirusa. Naprawa i kopia nie pomogła. Na 2 nic mi nie chce działać pewnie dlatego że folder główny ma nazwę WINDOWS1. A 3 jest dobry dlatego chcę usunąć pozostałe 2. Pewnie będzie więcej ale na razie mi nic nie przychodzi do głowy.
  18. Mi na podobnym sprzęcie chodzi. Co prawda na najniższych z niższych ale na 100 FPS.
  19. Tak naprawdę można wywalić cały kod xD Ale na co ci to. W tym kodzie ważne jest tylko sprawdzanie czy woda wynosi 1, czy 0. Żadnej wielkiej filozofii. Dobrze by było żebyś pokazał kod, albo wywalił to co nie potrzebne i dał byś linka. W twoim kodzie możliwe jest że zmieniłeś np: friction i speed. GML if woda = 0 { friction = 0.5 speed = 0.7 //Kod trochę bez sensu ale pokazuje zasadę. } if woda = 1 { friction = 0.7 speed = 0.9 } Obiekt będzie się poruszał tak samo, ale to chyba oczywiste, a ponieważ nie widzimy kodu ciężko będzie pomóc. E: A możliwe jest że twoja woda nie ma maski kolizji :o Teraz pewnie pyt. "Co to jest" xD Daj linka.
  20. Za 10 min napiszę przykład jak to powinno wyglądać. Poczekaj xD Edit: https://gmclan.org/up4308_12_O_to_ci_chodzilo.html
  21. Robisz coś w stylu że po kolizją z wodą zmienia się jakiś parametr np: global.woda . W opcjach sterowania wpisujesz 2 rodzaje chodzenia. GML if global.woda = 1 {/*zwykłe chodzenie, skakanie etc.*/} if global.woda = 2 {/*to co chcesz żeby było w wodzie.*/} Raczej wszystkie komendy od tych rzeczy powinny być ci znane xD Edit: Jeszcze coś żebyś pamiętał że po wyjściu z wody gracz chce chodzić normalnie xD GML if !place_metting(x,y,obj_woda) {global.woda = 1} Edit2: Jeszcze coś do pierwszego pytania. Jeżeli ustawiłeś w obj_gracz zmienną globalną i ma z niej korzystać a później w roomie ustawiłeś objekt który ma go tworzyć to powstanie błąd!!! Dlaczego??? Ponieważ kompilator najpierw stworzy obiekt gracza który będzie w swoich zasobach szukał zmiennej globalnej, ale jej tam jeszcze nie ma ponieważ obiekt kontroler stworzy w tej samej klatce, lecz po wykonaniu wszystkich instrukcji dla obiektu gracz. Ten błąd można wyeliminować stosując opcje Room Start/Game Start zamiast Create. Instrukcje tam wykona zanim jeszcze utworzy obiekt gracz, i inne w roomie. Istnieje jeszcze 2 możliwość. Próbę wykonania instrukcji po utworzeniu wszystkich zmiennych, zazwyczaj po 1 klatce.
  22. Jest. Tworzysz obiekt i nazywasz go na "Parent". Ten obiekt zostawiasz pusty. Włączasz obiekt który chcesz aby go używał. Jest taka opcja gdzieś tam po prawej stronie i nazywa się parent. Ustawiasz ten obiekt w tej opcji. Teraz w kolizji dasz coś w stylu if(position_meeting(x,y,Parent)). I po kolizji z obiektem "Dzieckiem" które ma parenta będzie się coś tam działo.
  23. Bo kompilator niema kompletnie pojęcia czym jest other w tym przypadku. Dlatego musisz go o tym poinformować, dlatego też daj to w opcji kolizji obiektu, ale wtedy kod nie ma najmniejszego sensu xD Najlepiej nie kombinować i dać po prostu to if(position_meeting(x,y,obj_asdasdas)) Tak jest prościej i wiadomo o co chodzi.
  24. Ja raczej online ale ostatnio grałem w Disciples II. Fajna gierka zwłaszcza jak się gra na najmniejszej plany w 3. Same bitwy xD
×
×
  • Dodaj nową pozycję...