Skocz do zawartości

Dester

Użytkownicy
  • Postów

    316
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    2

Ostatnia wygrana Dester w dniu 27 Czerwca 2019

Użytkownicy przyznają Dester punkty reputacji!

O Dester

  • Urodziny 01.01.2000

Informacje

  • Użytkownik GameMaker Studio 2
    Nie
  • Użytkownik GameMaker Studio
    Nie
  • Użytkownik GameMaker 8
    Nie
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Użytkownik Godot
    Nie

O mnie

  • Płeć
    Nie podano

Ostatnie wizyty

19 632 wyświetleń profilu

Osiągnięcia Dester

Forum Veteran

Forum Veteran (6/13)

7

Reputacja

  1. Tytuł: nandxor Gatunek: Narzędzie Opis: nandxor to prosty program służący do symulacji układów logicznych. Zawiera podstawowe bramki logiczne. Pozwala na zapisywanie i wczytywanie projektów. Download: gmclan.org Rozmiar pliku: 2697KB Autorzy: Programowanie: Dester Grafika: Dester Screeny:
  2. Może nawet nie 60. Od początku planowałem tylko niskie częstotliwości.
  3. Tytuł: nandXor Gatunek: Narzędzie Opis: nandXor to prosty program służący do symulacji układów logicznych. Zawiera podstawowe bramki logiczne. Pozwala na zapisywanie i wczytywanie projektów. Publikuję to jako wersja demo, bo spodziewam się błędów, ale program jest już prawie ukończony (do dodania został mi tylko jeden element). Download: https://gmclan.org/up9384_3_nandxor.html Rozmiar pliku: 2695KB Autorzy: Programowanie: Dester Grafika: Dester Screeny:
  4. Nadal nie rozumiem tego problemu, ale korzystam z tego "tymczasowego" rozwiązania, które działa nie działa. // room - creation code repeat room_width/32 { repeat room_height/32 { instance_create(0, 0, obj_gate); } } with obj_gate instance_destroy(); EDIT: Ok. Teraz połączyłem tą metodę z wczytywaniem każdego pliku kilkakrotnie. Wygląda na to, że działa. Nevermind, nie działa. EDIT: Zamiast korzystać z wbudowanej zmiennej id postanowiłem nadawać własne id obiektom. Jak na razie wszystko działa.
  5. Spróbowałem teraz z Linux Live USB Creator. Bez zmian. Boot menu puste
  6. Mam tablet Lenovo MIIX 3-830, na którym nie ma systemu operacyjnego. Oryginalnie miał Windows. Przy uruchomieniu odpala się BIOS. Mogę wybierać opcje przyciskami od głośności, ale potwierdzanie przyciskiem zasilania nie działa, więc podłączam klawiaturę przez usb. W menu głównym mam następujące opcje: [Normal startup]: czasami mignie ekranem na czarno i wróci do menu, czasami wyświetli jeden znak _ na czarnym tle i przestanie reagować. [Boot menu]: puste w środku. Wkładałem kartę SD z obrazem jakiejś dystrybucji Linuxa ale jej nie widział. [System recovery]: nie reaguje. [BIOS Setup]: po otwarciu tego mogę używać dotyku. Information Configuration: - System time - System date - BIOS Back Flash (on/off) - Set Administrator Password - Secure Boot (on/off) - Reset to Setup Mode - Restore Factory Keys Exit - Save - Discard - Load Default Settings Czy istnieje jeszcze szansa na uratowanie tego tabletu?
  7. ///event naciśnięcia S (zapis) if keyboard_check(vk_control) and not saveload { saveload = true; // poproś o plik filename = get_save_filename("project file|*.ini", filename); if filename == "" { show_message_async("Saving canceled."); saveload = false; exit; } // usuń stare dane savefile = ini_open(filename); sectionNum = 0; while ini_section_exists(sectionNum) { ini_section_delete(sectionNum); sectionNum++; } ini_close(); // zapisz nowe dane sectionNum = 0; with obj_gate { savefile = ini_open(other.filename); ini_write_real(other.sectionNum, "x", x); ini_write_real(other.sectionNum, "y", y); ini_write_real(other.sectionNum, "o", output); ini_write_real(other.sectionNum, "d", dualInput); ini_write_real(other.sectionNum, "a", inputA); ini_write_real(other.sectionNum, "b", inputB); ini_write_real(other.sectionNum, "s", sprite_index); ini_write_real(other.sectionNum, "i", id); ini_write_real(other.sectionNum, "t", type); ini_close(); other.sectionNum++; } show_message_async("Project saved."); saveload = false; } ///event naciśnięcia L(odczyt) if keyboard_check(vk_control) and not saveload { saveload = true; // poproś o plik filename = get_open_filename("project file|*.ini", filename); if filename == "" { show_message_async("Loading canceled."); saveload = false; exit; } // wyczyść room with obj_gate instance_destroy(); //wczytaj dane ini_open(filename); sectionNum = 0; while ini_section_exists(sectionNum) { var loadGate = instance_create(0, 0, obj_gate); loadGate.x = ini_read_real(sectionNum, "x", -1); loadGate.y = ini_read_real(sectionNum, "y", -1); loadGate.output = ini_read_real(sectionNum, "o", -1); loadGate.inputA = ini_read_real(sectionNum, "a", -1); loadGate.inputB = ini_read_real(sectionNum, "b", -1); loadGate.sprite_index = ini_read_real(sectionNum, "s", -1); loadGate.oldId = ini_read_real(sectionNum , "i", -1); loadGate.dualInput = ini_read_real(sectionNum, "d", -1); loadGate.type = ini_read_real(sectionNum, "t", -1); sectionNum++; } ini_close(); // skonfiguruj bramki (zmienna id jest tylko do odczytu, dlatego taki workaround) with obj_gate { with obj_gate { if oldId == other.inputA { other.inputA = self; } else if oldId == other.inputB { other.inputB = self; } } } show_message_async("Project loaded."); saveload = false; } Zapisuję dane o wszystkich instancjach obiektu obj_gate do pliku ini, a potem je wczytuję. Wszystko działa poprawnie, oprócz pierwszego odczytu od uruchomienia gry. Zgadzają się pozycje bramek, ale zmienne inputA i inputB wariują. Kilkakrotne wczytanie od nowa rozwiązuje problem. Jeśli w roomie przed wczytaniem ustawię więcej bramek niż jest zapisanych w pliku, błąd nie wysętpuje.
  8. Nie znam się na tym zbytnio, ale wydaje mi się, że A* mógłby wypaść gorzej od mojego tylko na mapie, gdzie była by mała ilość niezbyt skomplikowanych przeszkód. Myślę, że wtedy A* sprawdzał by nieportzebnie dużą ilość pól, w przeciwieństwie do mojego, który poleciałby prosto do celu. Ale to tylko spekulacja. "Kursor" z dotykających jego pola nie użytych wcześniej wolnych pól wybiera to najbliższe do celu i przechodzi do niego. Jeśli nie znajdzie wolnych pól to odrzuca pola i cofa się aż będzie miał możliwość ruchu. Żeby rozwiązać ten problem z długością drogi widoczny w moim ostatnim poście dodałem jeszcze to: Jeśli pola o różnicy indeksów (chodzi o kolejność) większej od 1 się stykają, to odrzuci wszystko pomiędzy nimi i je połączy. Przykład. Czerwone pola są odrzucone, zielone to rozwiązanie, fioletowe to kursor. Porównanie rozwiązań (zielone to nowe): Nowe rozwiązanie sprawdziło tyle samo pól, ale ostateczna trasa jest wyraźnie krótsza.
  9. Programuję pathfinding od zera. Najpierw w Pythonie, potem spróbuję to przełożyć na GML. Tutaj przykładowe rozwiązanie wymyślone przez prototyp:
  10. 1.1 bardziej intuicyjny interface poprawione, zbalansowane fale i zmiany poziomu trudności poprawione bronie więcej efektów, poprawki w grafice zmiany w przeciwnikach i ich zachowaniu link do pobrania zaktualizowany w poście na górze ^
  11. Tytuł: spaceWaveCombat Gatunek: Zręcznościowa Opis: 100 fal przeciwników o zwiększającej się trudności. Automatycznie i losowo zmieniająca się broń. Kolorowy styl retro(?). Download: gmclan.org Rozmiar pliku: 10 KB Autorzy: Programowanie: Dester Fabuła: - Grafika: Dester Muzyka: Waterflame Screeny:
×
×
  • Dodaj nową pozycję...