Skocz do zawartości

Cała aktywność

Kanał aktualizowany automatycznie     

  1. Wczoraj
  2. Dzięki, brakowało mi czegoś do tego typu gierki, było zwyczajnie "za sterylnie" i chciałem dodać kilka efektów, cieszę się, że się spodobało
  3. Piąteczka za zajebisty pomysł na spięcie efektów gwiazdy z dźwiękiem
  4. Ostatni tydzień
  5. Nad czym aktualnie pracujesz?

    obecnie wygląda to tak: @gnysek: A co już można robić w tym? Takie typowe HM czy bardziej jakieś nowoczesne?
  6. Tytuł: Neutron Star Gatunek: Gra akcji (?) Opis: Misją gracza jest obronienie swojej gwiazdy neutronowej przed atakiem kosmitów. Strzelamy do przeciwników wciskając klawisze A B X P które pojawiają się na ekranie (w dowolnej kolejności) Gra jest krótka i wystarczy na ok. 3 min grania, ale z racji, że klawisze są dość tęgo rozłożone to potrzeba trochę czasu pograć żeby dojść do wprawy. Taki układ przycisków był wymuszony przez zasady udziału w dżemie Mini Jam #74. Download: https://lethiandev.itch.io/neutron-star (grywalna w przeglądarce) Rozmiar pliku: Jakieś 8MB gzipped Autorzy: Programowanie i grafika: Ja Muzyka: Aim To Head - Artemis Screeny:
  7. Nad czym aktualnie pracujesz?

    Sporo grafiki to wciaż robota odręczna, na szybko, lub nawet w paincie (budynek gorących źródeł), ale na razie skupiam się na działaniu silnika i żebym po prostu widział, czy coś działa czy nie, a dopasowywaniem i faktyczym wyglądaniem zajmę się, jak całość będzie działać (a silnika mam już tak z 50-60%). Do końca marca chciałbym już móc wypełniać grę prawdziwym contentem, zamiast jedynie generować zapchajdziury w ramach testów
  8. Nad czym aktualnie pracujesz?

    Ten wybuch z granatu miodzio, tylko brakuje takiej mocy jakiejś w nim, może potrząśnięcie ekranem, albo jeszcze taki błysk po ścianie, żeby na chwilę rozświetlał pomieszczenie. Sam nie wiem, graficznie wygląda to bardzo spójnie. Edit: Pewnie dźwięk też dużo by podbił, dźwięk rzutu, uderzenia w ściane i wybchu
  9. Nad czym aktualnie pracujesz?

    Ostatnio oglądałem na YT jakiś materiał o Doomie z 93 i pomyślałem, że spróbuję napisać jakiś raycast na miarę moich możliwości.
  10. Wcześniej
  11. Temat zbiorczy na drobnostki

    Dokładnie tak. A przed chwilą próbowałeś pod jedną wartością mieć dwie zmienne - i liczbę i tablicę jednocześnie. Tablica w tablicy to generalnie stara tablica 2D, jedyna różnica teraz, to że za każdym razem możesz mieć inną ilość elementów jeśli chcesz, ale jak się pilnujesz, to używasz je tak samo (i nawet zapis grid[1, 2] powinien działać).
  12. Temat zbiorczy na drobnostki

    Generalnie sam już nie pamiętam co miałem wczoraj na myśli. Coś kojarzę, że w gm teraz nie ma tablic dwuwymiarowych tylko są zagnieżdżenia, a nie miałem z tym nigdy styczności. Dlatego chciałem zrobić tak jakby tablice jedno i dwuwymiarową pod jedną zmienną. Czyli jakbym chciał się odwołać do pierwszej tablicy to wpisywałbym grid[ i ], a jak do zagnieżdżonej drugiej tablicy (coś na styl dwuwymiarowej) to grid[ i ][ i ]. Generalnie błąd rozwiązałem tym, że mam grid[ 0 ] [ i ] - jakby do 1D grid[ i ] [ i ] - jakby do 2D ... właśnie pisząc to zauważyłem, że mogę zrobić grid[ 0 ][ i ] grid[ 1 ][ i ] i traktować to jak dawne tablice dwuwymiarowe
  13. Temat zbiorczy na drobnostki

    Ja nie bardzo rozumiem co tu się dzieje, ale: jeśli napiszesz grid[0][0] = 1, to tak samo jakby napisać grid[0] = [1]; jeśli dodasz grid[0][1] = 2, to mamy grid[0] = [1, 2]; Mam wrażenie, że kasujesz sobie tablicę 2D.
  14. Blokowanie klawiszy

    kod jest poprawny, ale chyba mój problem jest bardziej złożony . Dziękuję za odpowiedź
  15. Blokowanie klawiszy

    Racja..dwóch Jestem amatorem i opieram się na gotowcu z przykładów https://www.gmclan.org/index.php?sciagnijplik=181 a tak mi idzie
  16. Temat zbiorczy na drobnostki

    Witam, Natknąłem się na taki błąd i nie mam pojęcia czego on wynika. Ktoś ma jakiś pomysł? Create: for(var i=0; i < 64; i++) //64 - tyle jest promieni { grid[i] = -1; //ray type grid[i][i] = -1; //ray length } Draw: for(var i=0; i < 64; i++) //64 - tyle jest promieni { draw_text(400, 5 + (i*10), grid[5]); } wynik: [0,0,0,0,0,-1] <-- zależnie co wpiszę w index tablicy, tyle jest zer np. grid[3] = [0,0,0,-1] grid[6] = [0,0,0,0,0,0,-1] jak wpiszę grid[ i ][ i ] to jest ok. ale przy jednym grid[ i ] to już nie :/ Przy zmianie zmiennej grid, jest to samo. Uruchomienie ponownie kompa, to samo.
  17. Blokowanie klawiszy

    dwóch* Próbowałeś po prostu czegoś takiego? if keyboard_check(ord("A")) && !keyboard_check(ord("D")){ //idzie w lewo }else if !keyboard_check(ord("A")) && keyboard_check(ord("D")){ //idzie w prawo }else{ //zatrzymuje się } W ogóle to najlepiej pokaż swój kod na poruszanie
  18. Witam, tworzę grę platformową. Chciałbym aby nie można było wcisnąć na klawiaturze na raz dwóch przeciwstawnych kierunków. Gdy np. trzymamy kierunek w prawo to w tym momencie przycisk w lewo jest deaktywowany. I tak samo w przypadku góra dół. Jak to zrobić prostym kodem?
  19. Nad czym aktualnie pracujesz?

    Fajne to, mega mi się podobają te twoje kolejne usprawnienia, wszystkie są takie elastyczne. W ogóle masz twittera? Takie rzeczy zgarniają sporo atencji Tymczasem porównanie beczki zwykłej i płaskiej @EDIT: wybuch granatu nowa wersja inspirowany dymem z Akiry
  20. Temat zbiorczy na drobnostki

    Cześć chłopaki..Potrzebuje pomocy..Nie mogę sobie poradzić z blokiem kodu...Już tłumaczę o co chodzi..Mam trzy bloki takie same kodu w zdarzeniu step bohatera no i tak.. 1 blok jest to atak bohatera który strzela podczas stania i podczas biegania.. 2.blok kodu to atak bohatera który strzela podczas skoku 3 blok kodu to atak bohatera który strzela kiedy znajduje się na drabinie.. Chciałbym wrzucić te trzy same bloki kodu w jeden blok uwzględniając zmiany spritów i warunki,że jeśli jest na drabinie to używa tego sprita,że jeśli strzela podczas skoku to używa tego sprita..że jeśli strzela podczas stania i biegu używa tego sprita.. Tak wyglądają moje bloki kodu. Proszę wybaczcie,że wkleiłem aż trzy bloki kodu Siedzę nad tym i nie mogę to dobrze ze sobą poskładać.. Mógłbym prosić o pomoc? Bardzo dziękuje z góry za każdą pomoc //bohater strzela podczas stania i biegu var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(vk_control) && czasAtaku <= 0 && wPowietrzu=false && (global.wep[cur,e_wep.ammo] > 0 || global.wep[cur,e_wep.ammo] == -1) { czasAtaku = global.wep[cur,e_wep.firerate]; czasAtaku = _attackTime; czasBierzacy =1; with instance_create(x,y,attack) { sprite_index = spr_bohater_strzela; image_xscale = other.image_xscale; } var box, ins; if image_xscale == -1 box = bbox_left; else box = bbox_right; if (global.wep[cur,e_wep.ammo] >= 1) // jeśli nie nieskończona amunicja { global.wep[cur,e_wep.ammo]-=1; } var ins = instance_create(box+image_xscale*42, y-17,global.wep[cur,e_wep.ammo_type] ); ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); ins.sprite_index = paintballs[paintball_color++]; //nowa linijka do wyboru kolorow kulki paintball_color &= 3; audio_play_sound(global.wep[cur,e_wep.ammo_sound],10,false) } //bohater strzela podczas skoku i skoku var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(vk_control) and keyboard_check(vk_space) && czasAtaku <= 0 && (global.wep[cur,e_wep.ammo] > 0 || global.wep[cur,e_wep.ammo] == -1){ czasAtaku = global.wep[cur,e_wep.firerate]; czasAtaku = (_attackTime * 0.5); czasBierzacy =1; with instance_create(x,y,attack) { sprite_index = spr_bohater_strzelawskoku; image_xscale = other.image_xscale; } var box, ins; if image_xscale == -1 box = bbox_left; else box = bbox_right; if (global.wep[cur,e_wep.ammo] >= 1) // jeśli nie nieskończona amunicja { global.wep[cur,e_wep.ammo]-=1; } var ins = instance_create(box+image_xscale*50, y-25,global.wep[cur,e_wep.ammo_type] ); ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); ins.sprite_index = paintballs[paintball_color++]; //nowa linijka do wyboru kolorow kulki paintball_color &= 3; audio_play_sound(global.wep[cur,e_wep.ammo_sound],10,false) } //bohater strzela kiedy znajduje się na drabinie var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(vk_control) and keyboard_check(vk_space) && czasAtaku <= 0 && drabina==true && place_meeting(x,y,obj_drabina) && (global.wep[cur,e_wep.ammo] > 0 || global.wep[cur,e_wep.ammo] == -1){ czasAtaku = global.wep[cur,e_wep.firerate]; czasAtaku = (_attackTime * 0.5); czasBierzacy =1; with instance_create(x,y,attack) { sprite_index = spr_bohater_strzelanadrabinie; image_xscale = other.image_xscale; } var box, ins; if image_xscale == -1 box = bbox_left; else box = bbox_right; if (global.wep[cur,e_wep.ammo] >= 1) // jeśli nie nieskończona amunicja { global.wep[cur,e_wep.ammo]-=1; } var ins = instance_create(box+image_xscale*50, y-25,global.wep[cur,e_wep.ammo_type] ); ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); ins.sprite_index = paintballs[paintball_color++]; //nowa linijka do wyboru kolorow kulki paintball_color &= 3; audio_play_sound(global.wep[cur,e_wep.ammo_sound],10,false) }
  21. O UDP mówią, że jest jak krzyczenie na ulicy. Wiesz, że krzyknąłeś, ale nie wiesz, czy ktoś słyszał NIe bawiłem się w obecny gmowy networking, ale wątpię, żeby pakiety były łączone - wtedy byśmy je nazwali buforem, a nie pakietami. Kiedyś obieraliśmy wersję, że pozycję można wysyłać przez UDP, bo utracenie pakietu niewiele zmieni, natomiast itemy, czy fakt np. użycia umiejętności wysyła się TCP. Możesz połączyć pomysły i np. wysyłać pozycję + jakiś zakres danych które nie muszą być tak często odświeżane (np. jakąś strefę mapy widocznej przez gracza), zapewne jeśli jest tam sporo nieruchomych przedmiotów, to nawet wysłanie raz na 1-3 sekundy synchronizacji skrawka mapy nie będzie powodować po stronie gracza jakichś zauważalnych problemów. Można też wtedy ustawić, że jak przez np. 5 sekund nie przyszły dane, to się dana rzecz sama usunie. Zawsze jednak wszystko wychodzi dopiero w praniu i przy obciążeniu, więc testy to najlepsze rozwiązanie.
  22. W zasadzie to tylko drobnostka, ale taka tu cisza, że nowy temat nie zaszkodzi. Któryś już raz podchodzę do networkingu, tylko tym razem UDP i zastanawiam się, jaką strategie wysyłania pakietów obrać? 1. Wysyłam pozycje graczy, co jakiś czas wysyłam informacje o położeniu jakichś przedmiotów, wysyłam pakiet do obliczania pingu i co nowa rzecz, to wysyłam ten pakiet niezależnie od innych. 2. Wysyłam np. co 10ms jeden wielki pakiet zawierający wszystkie informacje (a zapewne w tym również te, niekoniecznie potrzebne). Jak tak czytam w internecie czasem, to mam wrażenie, że czytam o tym 2 sposobie, ale jakoś nie wydaje mi się, żeby to tak miało wyglądać? Czy może jest tak, że GM sam łączy te małe pakiety w jeden duży, jeśli naraz jest pare wysyłanych? Mam nadzieję, że wiadomo o co mi chodzi.
  23. Nad czym aktualnie pracujesz?

    Powoli projektuję pierwszą grę od paru lat ale stanąłem na układaniu levelu ze ścian itp, więc przez ostatni miesiąc zaprogramowałem sobie generator xd
  24. Własny pasek Hp

    Bardzo dziękuję za pomoc , oczywiście miejsce w Creditsach jak najbardziej
  25. Własny pasek Hp

    // Create spriteToDraw = spr_zycie_full; //Step switch (global.zdrowie) { case 1: spriteToDraw = spr_zycie_jeden; break; case 2: spriteToDraw = spr_zycie_dwa; break; case 3: spriteToDraw = spr_zycie_trzy; break; } I rysujesz spirte ze zmiennej
  26. Witam wszystkich , mam takie pytanko otóż zrobiłem w projekcie nad którym od dłuższego czasu pracuje własny pasek Hp. Pasek ma 4 linie (jedna pod drugą) Sytuacja wygląda tak iż gdy mamy mieć pełne zdrowie to pasek ma mieć Spr_zycie_full Jeżeli dotkniemy wroga albo dostaniemy pociskiem bądź innym orężem wroga ma się zmienić na spr_zycie_trzy , później spr_zycie_dwa itd . Próbowałem tak że zrobiłem w pasku życia zmienne creste global.zdrowie=4 W step dałem global.zdrowie=3=spr_zdrowie_trzy itd Zrobiłem dla wrogów patent obj_zlo i by przy kolizji z obiektem zło global=-1 , lecz niestety to nie działa Sprite przy kolizji z wrogiem nie zmienia się , bardzo proszę o pomoc , oczywiście wzamian umieszczę w Creditsach
  27. Nad czym aktualnie pracujesz?

    @Wojzax Świetnie to wygląda!:P Gdybyś potrzebował testerów to chętnie zagram :3
  28. Problemy z rozmiarem GUI

    Ale jak uniesz tą linijkę, to sie nie wykonuje reszta kodu. Zatem display_set_gui_maximize nie musisz uzywać, tak by wychodziło. Co do application_surface i viewów... no to tak jak sobie chcesz zrobić, tak musisz to ustawić, ja nie będę za Ciebie zgadywał. Musisz sam ustalić, czy na pełnym ekranie gra ma być powiększona czy 1:1, tak samo w trybie okienkowym. I samemu przeskalować to, przeliczyć proporcje itd. Nie jestem wróżką, żeby wiedzieć co chcesz osiągnąć, a application_surface, viewy i gui to trzy różne warstwy które mogą mieć różne rozmiary. Do tego application surface samemu powinno sie w jakimś post_draw rysować i wtedy też można to robić z innym rozmiarem niż 1:1, więc za dużo tu jest czynników i trzeba pod siebie wszystko ustawić po prostu, spokojnie to rozrysowując i przeliczając na kartce papieru.
  1. Pokaż więcej aktywności
×