Skocz do zawartości

Choosen

Użytkownicy
  • Postów

    196
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Choosen

  1. Ok... id to zmienna systemowa, wszystko jasne. Tak czy inaczej bugów jest więcej niż kiedyś :-) sorry za temat, można usunąć

     

    Chciałbym się upewnić... czy tylko mi się wydaje, że nowe Game Maker Studio ma mnóstwo bugów ? Co chwila wychodzą łatki ale w tym samym tempie pojawiają się nowe bugi...

    Może to dlatego, że już dawno nie pracowałem w starszych wersjach GM ale mam wrażenie, że kiedyś było to nieco bardziej stabilne środowisko.

     

    Ale do rzeczy:

    Poniższy kod, który akurat u mnie powinien zwrócić pewne wyniki (zbiór wyników nie jest pusty ) z uwagi na to, że instancje obj_Floor są obecne w momencie wywołania, powinien zadziałać również w przypadku, kiedy instancje obj_Floor nie są obecne. W żadnym wypadku nie powinien jednak wyrzucać błędu, który zacytowałem poniżej kodu.

    Żeby było śmieszniej, kod działa prawidłowo po skompilowaniu do html5 jednak kończy się błędem po uruchomieniu jako exe.

     

    Czy jest to bug czy może nie dostrzegam czegoś logicznego w poniższym zapisie ?

    Jeśli to bug to wiecie może czy ktoś już to zgłosił ?

    Dzięki!

     

    GML
    var i;

     

    for (i = 0; i <= instance_number(obj_Floor); i += 1)

    {

    id = instance_find(obj_Floor,i);

    }

    VMError!! Occurred - Pop :: Execution Error - Variable set problem id

    at gml_Object_obj_btn_podlogi_Mouse_4 (line 3) - for (i = 0; i <= instance_number(obj_Floor); i += 1)

  2. 1) Tworzysz statek, który podąża za kursorem myszy. ( Np w dziale step if (x>mouse_x) x-=statek_speed; ... )

    2) Przy starcie gry inicjujesz alarm[0] ( alarm[0] = room_speed * 10; )

    3) Kiedy alarm[0] osiągnie wartość 0 wykonujesz sekwencję poleceń:

    - losujesz jedną z dostępnych przeszkód

    - tworzysz przeszkodę na środku ekranu

    - resetujesz wartość alarm[0] by za jakiś czas sekwencja się powtórzyła

    4) W obiekcie przeszkoda dodajesz kod, który co step zwiększa skalę aż do momentu kiedy zniknie ( np jeśli skala przekroczy zadaną wartość lub upłynie jakiś stały czas od stworzenia obiektu). Na chwilę przed zniknięciem sprawdzasz kolizję ze statkiem i dodajesz punkty lub odejmujesz hp statku.

     

    To tak w skrócie cała gra.. powodzenia :thumbsup:

  3. Tam w ogóle nie ma 3d. To tylko skalowane sprity 2D. I właśnie skalowanie jest tu kluczem.

    Sam "tunel" składa się z sekwensji spritów, które tworzone są w środku ekranu i skalowane w góre do pewnego poziomu a potem znikają. Jeśli przy skali maksymalnej ( gdzie statek powinien przelatywać przez daną przeszkodę ) występuje kolicja spritu ze statkiem to gracz "uderza" w przeszkode, jeśli nie to dostaje punkty i leci dalej... i tak w kółko.

  4. Witam.

    Wydaje mi się, że kiedyś to działało domyślnie ale teraz w nowej wersji game maker studio mam z tym problem...

     

    Otóż staram się wykonać pewną sekwencję kodu po kliknięciu myszą na jeden z obiektów. Obiekty, używają grafiki rombu (a zatem część prostokątnego sprite'a jest przezroczysta).

    Mój problem polega na tym, że kod wykonuje się nawet wówczas gdy użytkownik kliknie w przezroczystą część sprite'a i chciałbym to zmienić. Próbowałem ustawić maskę na diament lub precyzyjną ale mimo, że maska nakłada się prawidłowo nadal mogę kliknąć w przezroczysty fragment.

     

    Czy jest na to jakiś sposób czy będę to musiał jakoś obejść ? Wydaje mi się, że w wersji GM5 lub 6 domyślnie w podobnym przypadku kod wykonywał się tylko po kliknięciu w nieprzezroczystą część. A może po prostu coś źle ustawiłem ?

     

    Z góry dziękuję za rady

  5. może lepiej

    <script>
    $(document).ready(function()
    {
       $("#show").fadeIn("slow");
    }
    );
    
    function runIt()
    {
    $("#show").fadeOut("slow");
    }
    
    setTimeout("runIt();",1500);
    
    </script>

     

     

    Hmm... no lepiej na pewno nie ale może tak zadziała. Nie jestem zwolennikiem kombinowania a to na pewno nie jest sposób jaki przewidzieli do tego typu operacji twórcy programu ;) Tym razem jednak nie specjalnie mam wybór... Zaadaptuję do swoich potrzeb i sprawdzę jak wyszło po powrocie do domu. Dzięki Gnysek. Fajnie byłoby gdybyś jeszcze zerknął na PM'a ode mnie :thumbsup:

     

    Pozdrawiam...

  6. Witam.

    Szukam kogoś z kim mógłbym pogadać o problemie jaki napotkałem używając biblioteki jQuery.

     

    Chodzi mianowicie o efekt FadeIn / FadeOut.

    Użyta przeze mnie funkcja nie jest może niczym odkrywczym ale i sama biblioteka nie wymaga od użytkownika wiele kodu:

    <script>
    $(document).ready(function(){
       function runIt() { $("#show").fadeIn("slow").fadeOut("slow", runIt); };
       runIt();
    });
    </script>

     

    Warstwa "show" jest w istocie logiem, które ma się pojawiać i znikać w nieskonczoność. Wszyskie przeglądarki radzą sobie z zadaniem doskonale a problem dotyczy jedynie IE, ktora nie wiedzieć czemu nie czeka aż "animacja" się zakończy i nieustannie ZACZYNA się pojawiać i znikać przez co w rezultacie w ogóle nic nie widać...

     

    Ktoś ma pomysł gdzie leży problem ?

  7. Coz.. całe zamieszanie wynikło niepotrzebnie bo stworzylem temat zanim sprawdzilem na czym to dezaktywowanie wlasciwie polega.. założyłem, że obiekty są rysowane ale statyczne. Okazuje się, że one nawet nie rysują swoich spritów a co za tym idzie cała operacja traci dla mnie sens :-) Mimo wszystko dziękuję za pomoc

  8. Samo wykonanie algorytmu nie stanowi dla mnie problemu.. miałem tylko nadzieję, że da się uniknąć nadmiarowości danych bo przecież taka zmienna na 100% istnieje tylko mark jej nie udostępnił. Skąd to przypuszczenie ? No przecież on na takiej samej podstawie stwierdza czy dany obiekt ma wykonywać swoje zaplanowane akcje czy też nie... Trudno, jak słusznie zasugerował Serge przyjdzie mi stworzyć własną zmienną w kilku tysiącach kopii :-/

  9. Przypuśćmy, że chciałbym napisać skrypt, który jako parametr przyjmowałby nazwę zmiennej, którą ma modyfikować. Czy jest sposób aby przekazać nazwę takiej zmiennej w parametrze?

     

    Przypisz_wartosc(zmienna1,10); <-- chodzi o coś takiego

     

    Jakieś pomysły?

     

    Hmm.. po dłuższej chwili przyszło mi do głowy ze idealnym rozwiązaniem byłby wskaznik... czy GM ma zaimplementowane wskazniki ?

  10. Tak.. "dałoby radę"

     

    Zapewne chodzi Ci o to jak to zrobic.. Coż najprosciej będzie poprostu nakazać obiektowi podążać za kursorem

     

    W dziale step mlotka:

    {

    x=mouse_x;

    y=mouse_y;

    }

     

    Gdybyś chciał aby młotek realistycznie "podskakiwał" za kursorem jak gdyby był zawieszony na lince musisz powtórzyć wiadomości z fizyki. Prędkość kursora obliczasz na zasadzie zapamiętywania aktualnej i poprzedniej pozycji. Następnie znając czas i odległosc między punktami ( działania na wektorach ) obliczasz predkosc. Kierunek pozyskujesz za pomocą funkcji GMa która wylicza kierunek mięczy dwoma punktami w przestrzeni ( point_direction(x1,y1,x2,y2) o ile mnie pamiec nie myli )

  11. No... to nie do konca zwróci kąt nachylenia ściany. Raczej kąt przy którym nastąpiła pierwsza kolizja co nie zawsze jest równoznaczne z tym o co cekol pyta

     

    Do tego nie dawałbym tego kodu w step. 180 operacji w kazdym cyklu zegarowym znacząco obciązy procesor. Postaraj się to umieścic w innym evencie np tym który odpowiada za poruszanie się postaci ( stojąca postac nie musi pewnie znac nachylenia terenu ) Ograniczylbym tez ilosc sprawdzanych pozycji ze 180 do np 36 ( sprawdzaj co 5 stopni ) Chociaz sam kod prawdopodobnie nie będzie działał poprawnie w kilku przypadkach ukształtowania terenu.

  12. Funkcja draw odpowiada za rysowanie. Tak długo jak nic tam nie wstawisz Game Maker zastępuje ją własną domyślną funkcją która rysuje sprite obiektu. Jeśli dodasz w tym dziale własną funkcję, która coś rysuje automatycznie anulowana zostaje funkcja domyślna a co za tym idzie sam musisz zadbać o narysowanie sprite'a.

  13. Cóż.. nikłe masz szanse na zrobienie profesjonalnego edytora ale jeśli lubisz to robić to może ma to sens... Ja bym dodał przesuwanie obiektów za pomocą myszki. Nieustanne wpisywanie wartości liczbowych z czasem staje się męczące a do tego nie każdy wie o ile chce przesunąć dany obiekt. Program nie umożliwia też edycji na poziomie poligonów co owocuje sporą nadmiarowością danych w przypadku kiedy 2 lub więcej figur łączy się ze sobą

×
×
  • Dodaj nową pozycję...