Skocz do zawartości

Muchaszewski

Użytkownicy
  • Postów

    235
  • Dołączył

  • Ostatnia wizyta

O Muchaszewski

  • Urodziny 24.12.1994

O mnie

Osiągnięcia Muchaszewski

Major User

Major User (5/13)

0

Reputacja

  1. ODŚWIEŻAM TEMAT! Zadziałało :S??? Wymyśliłem dobry sposób, ale nie wiem czemu nie działa :( GML for (i=3;i<8;i+=1) { for (p=3;p<8;p+=1) { if global.tab[i,p] = 11 { nr+=1 if global.tab[i+1,p] = 11 { nr += 1 if global.tab[i+2,p] = 11 { nr += 1 if global.tab[i+3,p] = 11 {nr += 1} if global.tab[i+2,p+1] = 11 {nr += 1} if global.tab[i+2,p-1] = 11 {nr += 1} } if global.tab[i+1,p+1] = 11 {nr += 1} if global.tab[i+1,p-1] = 11 {nr += 1} } //Reszta wygląda tak samo tylko z innymi wartościami if global.tab[i,p+1] = 11 { nr += 1 if global.tab[i-1,p+1] = 11 {nr += 1} if global.tab[i,p+2] = 11 { nr += 1 if global.tab[i,p+3] = 11 {nr += 1} if global.tab[i-1,p+2] = 11 {nr += 1} if global.tab[i+1,p+2] = 11 {nr += 1} } if global.tab[i+1,p+1] = 11 {nr += 1} } if global.tab[i-1,p] = 11 { nr += 1 if global.tab[i-2,p] = 11 { nr += 1 if global.tab[i-3,p] = 11 {nr += 1} if global.tab[i-2,p+1] = 11 {nr += 1} if global.tab[i-2,p-1] = 11 {nr += 1} } if global.tab[i-1,p+1] = 11 {nr += 1} if global.tab[i-1,p-1] = 11 {nr += 1} } if global.tab[i,p-1] = 11 { nr += 1 if global.tab[i-1,p-1] = 11 {nr += 1} if global.tab[i,p-2] = 11 { nr += 1 if global.tab[i,p-3] = 11 {nr += 1} if global.tab[i-1,p-2] = 11 {nr += 1} if global.tab[i+1,p-2] = 11 {nr += 1} } if global.tab[i+1,p-1] = 11 {nr += 1} } if nr <= 3 { global.tab[i,p] = 1 } } show_message(string(nr)+" "+string(i)+","+string(p)) nr=0; } } Nie wiem czemu nie sprawdza mi wszystkich kombinacji jakie ustaliłem, a czasami nawet za dużo :( Głównie ma problemy z tymi kombinacjami w lewo. Proszę o pomoc. Zadziałało?? Nie wiem dlaczego, podczas pokazywania wiadomości nie uwzględnia wszystkiego... A po wykonaniu wszystkiego wartości układają się dobrze... EDIT: A jednak. Większość kombinacji działa dobrze, ale 70% poprawności to nie jest to o co mi chodzi.. ;( EDIT2: Wszystko jasne, za mało argumentów. Wszystko będzie grać jak dopisze więcej :) Napiszę jak to wygląda pod koniec xD
  2. Takie rozwiązanie mnie nie interesuje. Pomysł dobry, ale nie znajdzie wszystkich możliwych kombinacji. To po pierwsze, a po drugie nie poprawnie zlicza ilość liczb połączonych ze sobą :(
  3. Może jednak to źle opisałem xD W tym przykładzie są tylko np: kołka - 0 i krzyżyki 1. Pogrubione krzyżyki są to te same krzyżyki co nie pogrubione. Ja po prostu poszukuję tych pogrubionych. Poszukuję łańcucha tej samej zmiennej, gdzie każda kolejna wartość musi przylegać w tej tablicy tylko poziomo lub pionowo. Jako że poszukuję tylko tych łańcuchów gdzie ich liczba jest większa niż 4 zaznaczyłem je, dla przejrzystości całego przykładu.
  4. Witam. Posiadam tabelę 5x5. Przypisane są do niej liczby z przedziału 1-10. Poszukuję najprostszego sposobu na sprawdzenie ile liczb takich samych obok siebie. Może pokaże na przykładzie kółek i krzyżyków. _____ |XOXO| |XXOX| |XOXX| |XXOO| Wyraźnie widać tutaj że pogrubiłem 6 krzyżyków. Chciałbym sprawdzić w najprostszy sposób ile ich jest i w na jakich pozycjach. Może podkreślę tutaj że potrzebuję wyświetlić wynik tylko dla tych których łączna liczba jest większa od 4, ale to z pewnością nie będzie problemem po rozwiązaniu tego powyżej. Mam nadzieję że wszystko jasno objaśniłem. Proszę o pomoc.
  5. Nie wiem jak point direction miał by mi pomóc. Zastanawiam się już od dłuższej chwili nad tym i nic nie przychodzi mi do głowy. Point_direction zwraca kierunek pomiędzy 2 punktami ale jakie te punkty bym miał użyć?? Nie mogę znaleźć tego przykładu, ale wydaje mi się że mam już coś wystarczająco zoptymalizowanego. Zjada tylko 50fps przy 400 początkowych więc rezultat jest zadowalający przy mapce 10000x10000 :P Ale skrypt i tak się przyda. EDIT: Drobne sprostowanie co do wydajności. Coś zrobiłem i wydajność mi spadła masakryczne. 5fps jeśli obiekt jest blisko a 40 jeśli jest daleko. :( Muszę napisać wszystko od początku, bo backupa nie mam.
  6. Hmm źle się zrozumieliśmy, albo źle napisałem ;p Jeśli strzelimy do płaskiej ściany laserem pod kątem 90 stopni to co się stanie?? Wróci tą samą drogą więc będzie mieć również 90 stopni (Kąt ten jest oczywiście względem ściany). Chyba że... a zresztą. Ja się nie znam. A co do wszystkich funkcji collision coś mi nie działało więc chciałem zobaczyć co zwraca ta funkcja :P Wszystkie te funkcje zwracają id obiektu który stoi im na drodze jako pierwszy :P To rozwiązuje wszystkie moje problemy, ale i tak skorzystam z wyliczania dokładnej pozycji "namierzania" :P
  7. To akurat wiedziałem że kąt odbicia zależy od kąta padania i tu raczej nie mam problemu... (dobra z fizyki jestem cienki ;p) Właśnie myśląc nad tym zdałem sobie sprawę że be funkcji trygonometrycznych się to nie obejdzie a kt1117 źle zrozumiałem :P Ale ciężko mi wymyślić jakieś rozwiązanie. Myślę nad tym aby kąt zewnętrzny pomiędzy przeszkodą, a laserem podzielić na 2, a wynik będzie kątem odbicia względem przeszkody, ale coś mi się wydaje że źle myślę. )Jeszcze zanim to napisałem znalazłem błąd :P jeśli kąt pomiędzy przeszkodą a laserem wynosie 90 stopni z każdej strony?) Jak czasami widzę te wszystkie wzory na Wikipedii to mnie krew zalewa, więc prosiłbym o jakąś uproszczoną wersję, bądź realny pomysł. EDIT: Ta funkcja zwraca tylko 2 wartości true i false. Więc niestety nie Właśnie o to mi chodziło, ale zapomniałem dodać :P
  8. Dzięki ;P Będąc na "przechadzce" wpadłem na bardzo podobny pomysł xD Mój "pomysł" będzie szukał najpierw przeszkody co 100 kratek jeśli nie znajdzie przeszuka w kolejnych 100 kratkach, a następnie będzie dzielił to 100 na mniejsze części. Wydaje mi się to bardziej zoptymalizowane biorąc pod uwagę krótkie odległości, gdyż w wyszukiwaniu binarnym Platyna sugeruje podanie od razu maksymalnej odległości strzału. Jest to dobry pomysł, ale trudny do realizacji. Z matmy jestem prawdopodobnie "dobry" :P Ale nie wyobrażam sobie jak by można poprowadzić te 2 linie od gracza i przeszkody. A tak w sumie poco sobie utrudniać. To też nie ma sensu. Prościej jest stworzyć jak najbardziej standardowe przeszkody, do których się wpisze kierunek, a następnie do tego kierunku się odwołać :P Problemem przy moim pomyśle i kt1117 są wszelkiego rodzaju kule, i obszary koliste, ponieważ ciężko będzie określić dokładnie w jakim kierunku mój laser miał by się "odbić". Ale i tak dzięki. Mam jeszcze jedno pytanie co do tego. Znalazłem dokładne położenie przeszkody, ale mam problem. Teraz po prostu nie wiem jak można było by się do niej odwołać. Korzystam z instance_nearest(...) ale nie jest to najlepszy pomysł, zwłaszcza przy ciasno upakowanych obiektach. Czy jest jakaś funkcja (jest na pewno, ale zapomniałem jaka ;p) która pozwoli mi się odwołać do obiektu w danym miejscu. Wystarczy id obiektu xD
  9. Witam. Robię grę TPS (na razie w 2D). Mam problem. Chciałem zrobić w mojej grze strzelanie laserem. Nie było by problemu gdyby nie to że nie znam wystarczająco zoptymalizowanego kodu(zwłaszcza na dużych planszach). Chciałem napisać funkcję która sprawdzała by odległość od gracza do przeszkody po linii prostej, i zwracała by odległość, albo miejsce x,y do tej że przeszkody, a także kąt pod jakim jest gracz względem tej że przeszkody. Mój kod opiera się na szukaniu przeszkody przez funkcję collision_check_point kolejnego piksela do gracza w kierunku, w którym jest obrócony. Następnie sprawdza tą że pozycje pod kątem znajdującej się instancji i zwraca jej obrót. Wszystko ładnie, ale jeśli odległość od przeszkody jest większa niż 100 kratek to zaczyna się problem, a mam w planach aby laser ten odbijał się od pewnego rodzaju bloków i ponownie leciał dalej. Proszę o napisanie mi wystarczająco zoptymalizowanego kodu, abym nie musiał czekać paru sekund na strzał. Jakoś przeżyję zmniejszenie FPS!
  10. Lechu4444@ Kolizja jako taka nie nastąpi, ale jeśli wartości dla obu się pokryją to bezstronny obiekt może o tym poinformować i dokładnie wyliczyć miejsce kolizji tych dwóch drawów :P Ale jak ja do tego doszedłem w moim kodzie (320 lini :D) T nie wiem.
  11. Witam. Mam pytanie, jak wykryć kolizję dwóch obiektów które nie posiadają żadnego sprita, są rysowane wyłącznie przez draw, a wymiary tego drawa się zmieniają. Również jego pozycja. Górny lewy róg mam opisany zmiennymi x1,y1 i dolny prawy x2,y2. Jeszcze jedno pytanie, jak wykryć jeszcze gdzie się nie zderzają. Proszę o pomoc. Edit: Sam znalazłem odpowiedź pomimo tego iż nie wiem co zrobiłem :P Wystarczy że działa mi poprawnie. Jeśli ktoś wpadnie na pomysł jak ja to zrobiłem może się podzielić tą wiedzą, może się kiedyś komuś przyda.
  12. Znacznie, ale nadal jest błąd. Ustaw sobie dwie kolki ;P w jednym kolorze w dwóch rzędach. Jedną komunę pomiędzy zostaw wolną. Następnie spuść ten kolor pomiędzy. Co się stanie?? Zniknie pierwszy rząd, czyli zanim doleci do końca planszy. Ale za sam przykład dam 4/5
  13. Witam. Przedstawiam coś oryginalnego, coś czego jeszcze nie było. Przykład okien z prosto z Windowsa XP. Jest to BETA przykładu więc nie spodziewajcie się za wiele. Tytuł: GM Windows Make BETA Opis: Jest to program/gra która może ulepszyć wygląd menu, różnego rodzaju gier itd. Na razie program ten posiada możliwość otwarcia kilku folderów na raz (z drobnymi błędami), coś w stylu notatnika w tym folderze i samo nie zbyt rozbudowane okno. Przykład godny obejrzenia :P Download: adres z plikiem gry Rozmiar pliku: 29kb W przypadku dostrzeżenia błędów i odnalezienia sposobu naprawy proszę o wiadomości na PW, bądź pod postem. Wiadomość powinna zawierać co jest nie tak, gdzie wpisać dany kod i oczywiście jaki. Miłego testowania, życzy Muchaszewski :D Edit: Ależ to dziwne. Taką nazwę mojego programu powyżej "wymyśliłem" jeszcze we wrześniu kiedy to zacząłem. Przed chwilą popatrzałem sobie trochę na forum a tu BUUMMMM... Niestety nie byłem pierwszy z nazwą i pomysłem, ale z tego co się orientuje moja wersja nie wymaga pro i GM6 (niestety to przeżytek). Napisałem to żeby nie było że plagiat!
  14. Właśnie znalazłem o co chodzi. Chciałem ustawić aby podczas budowy Elektrowni pokazywał się pod nią gotowy rysunek z odpowiednią przeźroczystością. Więc zrobiłem nowy obiekt, a tam zamiast pozycji tego obiektu wpisałem mouse_x. Nie dosyć że to to jeszcze tam ustawiłem "bełkot" w kolorze. GML draw_sprite_ext(oElektrownia,0,mouse_x,568+120,1,1,0,0,0.6) A po parametrze color ustawiony na czarny można się wszystkiego spodziewać :blink: Dzięki wam wszystkim. Sam bym do tego nie doszedł :P
×
×
  • Dodaj nową pozycję...