Skocz do zawartości

3r3se7ven

Użytkownicy
  • Postów

    154
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez 3r3se7ven

  1. W tych co zaznaczyłem na początku na zielono? Noooo... tam był... Tylko w zamyśle autora jedno było (0,200] a drugie (200,n) więc logicznie wymyślił że oba na raz nie mają prawa się wykonać. A jak wyciągnął problem przed nawias do jednego wykonania to zebrało tylko jedną wartość i ją wykonało. Piszę Ci Threef popróbuj. Trochę mi zajęło dawno temu zrobienie kasownika gliczu zanim mnie oświecono, iż owszem miało działać synchro ale wynikły obeiktywne trudności związane z użytkowaniem room_speed i rzeczywistym room_speed.
  2. Synchro urządzenia, w każdym odwołaniu do myszy były nieco inne parametry i robił się kaszan. Dlatego dobrze jest ustawić bardzo wysoki room speed (powiedzmy 60 czy 100 zależnie w co celujemy na końcu). I zebrać stan maszyny przed wykonywaniem. Przy niskich room speed daje to efekt rzucania kontrolerem (a to się pojawia w takim stanie a to w innym). Dlatego warto dać wysokie. Tak żebyś miał własną "wirtualną maszynę", a nie ufał funkcjom. Threef... skąd wziąłeś informację że cokolwiek z kontrolerów i/o w GMS jest synchronizowane z room speed? Threef.think() Co sądzimy na temat programów które robią hijack kontrolerów? W jaki sposób winda miałaby obsługiwać funkcyjne? Jak byś zwinął program do paska albo przeszedł na inny monitor myszą, jak masz kilka? Threef.think() Jak zrobisz synchronizację do programu działającego w oknie? Przecież to naprawdę wystarczy ustawić room_speed na 1, i spróbować użyć alt tab, alt f4, wyjechać myszą poza okno programu... Weź sobie przylep postit na monitor, z warnem, że od jutra im wolniej jedziesz tym samochód wolniej skręca kołami w rezultacie użycia kierownicy :) Wybaczam Ci bo pewnie byłeś w gimnazjum. Ustrój winny.
  3. Ustaw sobie room speed na 1 to zobaczysz synchronizację. Jak pociągniesz to będziesz miał obiekt z każdego warunku aż do zamulenia. Zrób coś - i wróć do tematu z wiedzą praktyczną. Zbliżonym kodem robiłem kiedyś pozycjonowanie i też się dziwiłem. Przecież powinno działać inaczej, a jednak działa jak widać. //a już tak w kwestii praktycznej - ładuję dane z i/o do zmiennych na początku pętli aby było tak jak piszesz, bo inaczej nie jest :) Przypominam że dyskutujemy o GMSie, w którym ostatnio poprawka popsuła floor(), no to już jest osiągnięcie w tworzeniu nowej algebry.
  4. To wygląda na wartości z antycznego, NESowego tutka, tam się używa wartości arctan z pi/32
  5. Tak się pytam bo to są elementy które mnie kręcą, fabuła i rozgrywka jest mi dość obca i niezrozumiała. Mnie ciekawi czy kamienie z góry na dół lecą, czy przez mur można przejść czy na niego wejść i takie tam. To ja wracam na math.planetę :)
  6. Skąd bierzesz wejściowe x/y Jaki ma sens ten przypadek? Przeciągnięcie przed puszczeniem klawisza? Mysz jest niesynchronizowana do room_speed, mogą się wykonać oba kody jednocześnie, jeśli przesuniesz myszą. Wq przypadek przy stawianiu punktów to_go w rtsie, mnożą się wtedy jak króliki. Wyciągnij ten point direction x/y>>mysza do zmiennej lokalnej, jest rekurentny. Chcesz powiedzieć, że klikasz myszą na punkt poza pierścieniem r200 i rzuca Cię nei tam gdzie chciałeś? Czy wewnątrz pierścienia r200?
  7. A własna mechanika kolizji z tym terenem? Tangent postaci do terenu? Cokolwiek robiłeś?
  8. Znaj pana, uprawniam Cię do ich ignorowania. Bo zdaje się odczuwasz nieodparty przymus czytania.
  9. I bardzo dobrze bo tam uczą myśleć logicznie. A na gamedev uczą wykorzystywać to co ktoś wymyślił logicznie, często w sposób obrażający uczucia logiczne twórców.
  10. 3r3se7ven

    Free Tinzen

    Przysłali mi nowy numer seryjny do GMS żebym się odczepił i wszystko działa :) //edit Istnieje też license recovery form, którym można odświeżyć licencję i klucze :)
  11. 3r3se7ven

    Free Tinzen

    No bo jest za darmo odpłatnie. Od Szkotów, to niby czego się koledzy spodziewali?
  12. 3r3se7ven

    Free Tinzen

    GM jest ze Szkocji. Zrobili go Szkoci. Czy masz jakieś zapytania do pazerności Szkotów i czy za darmo znaczy u nich bezpłatnie?
  13. Bo każdy zaczyna od abs(x-xpos) <distance id to samo y, potem sine, potem lengthdir, potem point distance, potem... przynależność do struktury. Threef ma skuteczny sposób, ważne aby problem był rozwiązany a potem się to zoptymalizuje. Point distance jest najszybszy bo ma oszukaną matematykę, jak większość obliczeń na tabelach. Co do optymalizacji to zacząłbym od nieużywania obiektów. Więc czy to zrobisz tak czy siak to jest tylko kwestia liczby zapytań, bo i tak odwołasz się potem dość ciężkim ty_tam.zmienna Jak rozwiązania Threefa zacznisz używać do mapowania przestrzeni i szukania drogi z użyciem greed i A* to dopiero wtedy liczba kroków robi kaszan, że można iść na kawę zanim ai się zdecyduje na jakiś plan. O ile w ogóle podejmie jakąś decyzję, a nie będzie się bawiła w przerysowywanie kropek donikąd na mapie :)
  14. Point distance Bardzo słuszna koncepcja Tak to się właśnie najszybciej robi. Lista pozycji oWarior zawiera pewne punkty w przestrzeni i raczej nie będzie to długa lista. Jeśli point distance (nawet 3d jak masz taką potrzebę) do próbkowania linii jest mniejszy niż - masz rezultat.
  15. if (place_meeting(x+32,y+3,obj_niewidzialny) || place_meeting(x-32,y-3,obj_niewidzialny)) && image_xscale = 1 { image_xscale = -abs(image_xscale); } else if (place_meeting(x+32,y+3,obj_niewidzialny) || place_meeting(x-32,y-3,obj_niewidzialny)) && image_xscale = -1 { image_xscale = abs(image_xscale); } A lub B i C to nie to samo co (A i C) lub (B i C) czyli (A lub B ) i C //robię warunki animacji w podobny sposób, więc też mi się czasem myli i później szukam gdzie podziałem nawiasy, w jedną stronę działa a w drugą się telepie.
  16. A to prawidłowo, to już dzieje się to co chcesz. W dół bohater spadając musi rozpoznać drabinę samemu wyręczając Cię w klikaniu klawisza (na przykład keyboard_key_press(key); w spadaniu na początek). Animacji istotnie jest od groma, zawsze. Dlatego gry najlepiej tworzyć zespołowo. Skoro podłoga na razie w górę drabiny jakkolwiek działa, to tak to zostaw, z pewnością natkniesz się na podobny problem w dalszym tworzeniu fizyki i rozwiążesz je wspólnym mianownikiem. Jedną funkcją czepiania się bliskiej podłogi.
  17. Na tym etapie ludzie już raczej nie stresują się shaderami przynajmniej nie fragment shaderem. Trzeba uważać bo 0,0 do końca to dla ludzi co dopiero zaczynają przygodę jest jak granat bez zawleczki. Potrafią ręcznie nadłubać cały level do super mario, bo nie wiedzą, że to się ekranami ładuje :) Dawaj ludziom zawleczki do kodów :) Kopiują, wklejają i bum :) Zależy od urządzenia, jeśli możesz ładować do bufora wyświetlacza (screen buffer) to może mieć sens, ale aby utrzymać w kupie szerokość do wysokości trzeba rozgryźć każdy wyświetlacz z osobna. Tyle że wyłączanie tej opcji to początek drogi do usunięcia większej części funkcjonalności OS jako zbędnych przeszkadzajek w graniu. Uprzedzam że wymaga to wiedzy, i praktyki, wymaganej do odpalenia gry na wyświetlaczu pralki, bo też się da.
  18. lewy górny wyznaczamy z pozycji, a prawy dolny z dodania: display_get_width(), display_get_height(); lub view_wview[0],view_hview[0] <<ten view działa nawet jak nie korzystasz z view i je odznaczysz. Chciał nie chciał, musiał. Przemalować cały room to hardcore, ludzie miewają rozmach przy kreacji ^^
  19. Wartość R = G = B Polecam przypisanie min lub max(R,G,B) dla każdego pixela. Ale bez shadera to jest bardzo ciężkie dla draw event. Chociaż wyjaśnia jak działa shader. Pobierasz to co koledzy mierzyli w poprzedniej dyskusji (pod tym hasłem w manualu masz kod jak to wymacać: application_get_position();) To Ci powie ile pixeli trzeba zbadać na ile. Ten Surface z default działa nawet jak go nie odpalasz, jego rezultat wchodzi do karty graficznej jako wsadowy 3x8bit colour codde. Tym ten_kolor = surface_getpixel(index, x, y); Macasz pixel po pixelu jaki ma kolor i przygotowujesz data structure (ds_cokolwiek dobierz sobie pod gust) z pobranych danych colour_get_ przejrzyj listę w manualu (rgb,hsv) i dalej korzystasz z jakiejś z wersji (pod guścik): Wartość R = G = B Polecam przypisanie min lub max(R,G,B) dla każdego pixela. I zapisujesz w strukturze danych. po make_colour(z czego tam chcesz) W draw event korzystając z draw_point_colour malujesz to do surface i jest szaro. Tak wyglądały shadery przed powstaniem do nich bibliotek, które to prostują to do pewnych szybkich przekształceń. Jest to nieoptymalizowana droga, i bardzo niewydajna, spodziewaj się prędkości wyświetlania klasy pocztówek z wojny. Warto przeskalować rozdzielczość na ten numer surface_resize(index, w, h); Bo inaczej emo i paczka żyletek. Oczywiście całość możesz spakować do jednej linijki jak już zrozumiesz co i jak po kolei ma być wykonane.
  20. To nie jest surface, to jest już back buffer. //o się wyedytowałeś, słusznie, też dostawałem nad tym piany kilka lat temu, chciałem zrobić grę w grayscale na ośmiu bitach plus osiem alpha, g... mogę sobie chcieć i tak zajmie 64 Oczywiście większość jest nadpisane jedynkami lub zerami póki nie odpalisz trybów mieszania do zapisania w surface Gdybyś próbował zgrać to 32 bitowym graberem do filmu o tym co się dzieje w full screen będzie kilka klatek, a później czarno.
  21. Dziękuję. Interrupt obsługiwany przez gameplay. Bo character raczej coś tam animowany trochę jest, grawitacja na niego działa, ma wartość, zwrot, coś tam go zjeść może. Czyli opisujesz sobie (w głowie lub na kartce) jaki jest warunek rozpoznania że drabina jest a jaki że jej nie ma. Odradzam warunek że jak nie drabina to na pewno podłoga, postać być może skacze, być może łazi po czymś jeszcze. Jeśli jest to jaki warunek jest rozpoczęcia włażenia, a jaki że nie włazić <<to zrobiłeś z pewnością dotąd. Jak już włazić to jak daleko iść i na jaki rozkaz od gracza czekać << to jest ruch góra dół który zrobiłeś Czy badać czy podłoga jest na dole, czy jest na górze, czy z boków (platforma) <<tu masz pierwszy zgrzyt - nie szuka podłogi na górze Jeśli podłoga jest to z automatu się tam przemieścić (wkurzające - postać będzie się przestawiać z drabiny na mijane platformy i sama złazić na podłogę jak szybko nie dasz ku górze). Czy też na komendę? Czy bezwarunkowo dokonywać skakania z drabiny? Czy strzelanie sprawdza kontakt z podłogą i grawitację? Jeśli tak to strzelanie z drabiny nie jest zdarzeniem tym samym co strzelanie na podłodze. Musisz te warunki badać i jakoś obsłużyć. Albo badać i zabronić. Koniec drabiny proponuję wtedy zrobić tak - jeśli w zasięgu obiektu kończącego drabinę u góry, i poprzedni krok "był na drabinie i szedł do góry" i kontroler gracza wskazuje "do góry" (wczytane z klawiatury/pada/joysticka) >> przemieść na pozycję obiektu końca drabiny i ustaw postać w pozycji "stoi" albo "idzie". Czerwony warunek jest istotny, ponieważ w przypadku potworów łażących po platformie gracz może zechcieć wrócić, a nie z musu wyjść z drabiny prosto na wroga i kląć na sterowanie. Co jeśli postać ginie? Trup położy się na płasko w miejscu gdzie postać zginęła w powietrzu? Czy trup obsługuje grawitację? Czy ewentualnie jest animacja "trup na drabinie"? Generalnie drabiny są wkurzające, dlatego leniwi twórcy zrobili wall jump i wall slide oraz kominowe lokacje do włażenia w ten sposób ^^
  22. Bardzo interesujące jak na 64 bitowy typ danych. A jak to sprawdziłeś? Zapisałeś do 32 bitowego pliku? A jakbyś zapisał do 8 bitowego to zajmowałyby jeden bajt? A informacje o mapie bump, normal, alpha, glow reflex, height co tam chcesz trzymane są na Księżycu? No to jak ktoś nie wierzy to niech sobie zmierzy, a nie mi o ego wypisuje... Odpalamy d3d wrzucamy boxa, i przypisujemy mu teksturę o nazwie 1, z pustym assetem tekstur (czyli nie ładujemy żadnej). I co widać i w ilu bajtach to leży? Masz z tym problem, że wymyślacie tu sobie nieistniejące typy danych i algebrę której nie ma? Ty Vader zdaje się jesteś specjalistą od wczytywania raw data z klawiatury, przetestować Twoją grę na szwedzkiej czy arabskiej klawiaturze IBM? I wypisać Ci że mapowanie nie działa i sterować się nie da? Pierdoły czasem tu wypisujecie jakbyście byli na poziomie pierwszych tutków, a przecież część z Was to poważni ludzie, którzy powinni już co nieco wiedzieć z tym choćby w jakim formacie są przechowywane assety i dlaczego w takim. Jak w surface są 4x8 to zrób push i wywal alphę jako czerwony. Tylko się nie zdziw jak zobaczysz co innego niż alphę.
  23. A tymczasem w pamięci zajęte jest osiem bajtów... Wpisz sobie warna na postit. I oderwij od monitora jak się dowiesz dlaczego tyle i co tam jeszcze jest zapisane i jak, oraz co tam Ty możesz wpisać. //ninjad... " No tak, zapomniałem dodać. Zedytuje w poście. Windows 7 Home Premium 64-bit( <== ale wątpię aby ten szczegół miał znaczenie)" No to już oderwij to post it :) Właśnie dlatego mb_mode i shadery się sr.. na androidach.
×
×
  • Dodaj nową pozycję...