Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 812
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    141

Treść opublikowana przez gnysek

  1. game_end() zamyka program. Jeśli miałeś to w pierwszej linijce tego kodu, to automatycznie po śmierci zamykała się gra na koniec obecnego stepu. Co do przesuwania sie view - nie wiem jaki masz od tego kod. Jeśli masz śledzenie obiektu i po śmierci ekran się przesuwa (nie skacze), to bym winił... drugą instancję tego samego obiektu. can_finish jest po prostu flagą, czy coś już zostało zrobione czy nie.
  2. To jest porównanie. Ale widzę mój błąd. Połączyłem dwa ify w jeden, a powinienem mieć dwa. //create can_finish = false; // w alarm 0 can_finish = true; // step if (global.life = 0) { if (can_finish == false) { if (alarm[0] == -1) { // zacznij tylko gdy jeszcze się nie odlicza alarm[0] = 150; // 5 sekund } } else { if (global.pScore >= 500) //Sprawdz czy wynik nadaje sie do highscore,ale musi zostac spelniony warunek punktowy { var s = highscores[ | ds_list_size(highscores) - 1]; //Czy punkty kwalifikuja sie na top 10 if (ds_list_size(highscores) < 10 || s[ ? "score"] <= global.pScore) { room_goto(rm_save_score); exit; // zakoncz wykonywanie eventu step w tej klatce } } room_goto(rm_game_over); } } i żeby było widać, dałem teraz 5 sekund, bo 1 to może być za krótko
  3. Nie musisz ustawiać alarmu na -1, on jest tak ustawiony przez GameMakera dla każdego obiektu. I żadnego game_end() gdziekolwiek bo to wyłącza całkiem grę. //create can_finish = false; // w alarm 0 can_finish = true; // step if (global.life = 0) { if (can_finish == false and alarm[0] == -1) { alarm[0] = 30; // 1 sekunda } else { if (global.pScore >= 500) //Sprawdz czy wynik nadaje sie do highscore,ale musi zostac spelniony warunek punktowy { var s = highscores[ | ds_list_size(highscores) - 1]; //Czy punkty kwalifikuja sie na top 10 if (ds_list_size(highscores) < 10 || s[ ? "score"] <= global.pScore) { room_goto(rm_save_score); exit; // zakoncz wykonywanie eventu step w tej klatce } } room_goto(rm_game_over); } }
  4. Zanim pierwszy raz ustawisz alarm[0], to on ma już wartość -1 od początku gry, pewnie dlatego ? Zrób inaczej: // create can_finish = false; // gdzies tam gdzie konczy sie gra i ma poczekać if (<nie zyje>) { if (can_finish == false) { alarm[0] = 30; } else { room_goto(<higscore>); } } // w alarm 0 can_finish = true; Poza tym, game_end(); kończy grę, więc cały kod dalej się nie wykona.
  5. No to ja tu nie widzę alarmu nigdzie. W stepie, czyli kod co klatkę obrazu.
  6. No i co, nikt nie używa tych aktualizacji :( chyba je wyłączę.

    1. I am Lord

      I am Lord

      Bo to powinno być jakoś zintegrowane ze stroną główną, mało kto chyba wchodzi bezpośrednio na forum.  ?

    2. Chell

      Chell

      wrzucaj changelogi w newsy, nie sledze shoutboxa i nawet nie wiem co weszlo

  7. Pewnie nadal nie wywaliłeś kodu od highscore z innego obiektu.
  8. Potwierdzam. Trzeba chwilę poświecić na usunięcie tych funkcji które GM buduje jako kompatybilne (np. teraz instance_create wymaga podania layera, więc GM tworzy funkcję _instance_create() i zmienne globalne, z depthem itp.) - oczywiście można je zostawić, ale jak się usuwa jakiś obiekt to trzeba przepisywać tablicę z listą tych "starych". Nie mniej każda gra w 100% powinna działać w GMS2, a po optymalizacji na nowe funkcje śmigać jeszcze bardziej.
  9. Wszystko powinno działać, nawet tła. Zostaną skonwertowane do sprites i wstawione na layerze typu "background".
  10. Jaki przykład ? Pola X i Y - trzeba wpisać wartość i tyle:
  11. w GMS2 da sie bez problemu. W GMS 1.x możesz ustawić bodaj 8 różnych backgroundów, i podać ich X i Y, więc też da radę. w GMS2 nie będzie to obciążeniem, bo tam nie ma backgroundów tylko ustawiasz sprity na layerze sprite (bez obiektów)
  12. No jak przepisesz shader, to da radę, ale tutaj mało kto się na tym zna.
  13. To wyżej to jest Godot, a nie GMS 2.0
  14. Master? Patrz na to. 12 linijek kodu zmniejszone do 4. //zakładając, ze global.difficulty ma wartosci 0,1,2 var _hp_loose = [17, 25, 34]; if (global.zegarObrazen < 0) { global.hp -= _hp_loose[global.difficulty]; global.zegarObrazen = room_speed*2; } no i jak enum nie znasz, to mozesz: #macro d_easy 0 #macro d_medium 1 #macro d_hard 2 // potem global.difficulty = d_easy; // mozna tez bez d_, ale wtedy zablokujesz opcje nazywania tak zmiennych :P
  15. Teraz sztuczka: enum difficulty { easy = 1, medium = 2, hard = 3 }; /// gdzies tam indziej w kodzie global.hp -= 10 * global.difficulty; //10,20,30 alternatywnie enum difficulty { easy, medium, hard }; /// gdzies tam indziej w kodzie global.hp -= 10 + (15 * global.difficulty); // 10, 25, 40 dlatego poziom trudności jako string jest bez sensu
  16. Może być. Ja akurat takie zmienne definuję wcześniej, na początku gry, to wtedy można je przenosić pomiędzy poziomami.
  17. Global oznacza , że taka zmienną jest jedna współdzielona na całą grę. Jak ja dasz w przeciwnikach, to wszystkim na raz zmienisz, to bez sensu. A hspeed czy vspeed są zależne od speed i direction, więc jak zmieniasz tamte zmieniają się te (albo jak jakoś kod powoduje ich zmianę). To są współbieżne zmienne - zmiana jednych zmienia drugie i vice versa.
  18. zamiast "easy" itp. możesz też enuma zrobić. Bo potem łatwo o literówkę, a tak kompilator/sprawdzanie składni wykrywa błąd.
  19. gnysek

    Szukam programu

    Microsoft Remote Desktop 10 ? darmowy, w appstore, oficjalna apka MS.
  20. gnysek

    pytanie o prawa autorskie

    Generalnie to będzie złamanie praw autorskich, jesli będzie bardzo podobny. Pytanie, czy Nintendo na to trafi, bo ja widziałem firmy hydrauliczne które mają mario na samochodzie i nikt im nic nie zrobił - ale w sieci by już tak fajnie nie mieli. Natomiast nie powinna być problemem "parodia" postaci - czyli np. postać podobna do mario, w stylu innych postaci w grze, i nie mająca na imię mario. W żadym też wypadku z charakterystycznym "M" na głowie - Ubisoft dla Raymana czy Raving Rabbidsów z czapką Mario też pozyskiwał licencję. Dobry przykład bez licencji - Asterix i Obelix XXL:
  21. No to chyba logiczne, co robisz źle tu cyfry, tu tekst
  22. W 7:17 nie ma nic z roomem. Jeśli chodzi o speed, to jest w global game settings, a reszta powinna być w roomie normalnie.
  23. hit miesiaca, ustawiać w kodzie po kolei każdy poziom trudności tak, że ustawi się zawsze ostatni. Pomyśl na spokojnie co tam piszesz, linijka po linijce mów na głos - to jest dokładnie to co gra zrobi w jedną klatkę obrazu.
  24. ds_list to nie tablica i nie kasuje sie automatycznie, więc memory leak jak nic.
  25. Kod powinien znajdować sie tam, gdzie go potrzebujesz. Nie wiem jak tworzysz przeciwników, czy stawiasz ich w roomie, czy tworzy ich jakiś obiekt-nadzorca. Musisz sobie sam odpowiedzieć na swoje pytanie bo to Ty wiesz jak robisz grę i co w niej jest, my nie będziemy zgadywać, a ściany kodu nie pomagają. Trzeba zawsze minimalizować problem, a nie po prostu wklejać kod który nic nie mówi, albo nie jest potrzebny.
×
×
  • Dodaj nową pozycję...