Skocz do zawartości

ereg

Użytkownicy
  • Postów

    253
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez ereg

  1. jesli nadal nierozumies, to inny problem.

    moze w tej chwili to dla ciebie inna liga :)

    jezeli niewiesz co jest event a podobne, masz duzo czytania przed sobo.

     

    i jak cos dalej nierozumiesz formuluj pytanie tak, by bylo poznac co konkretnie niejasne.

     

    BTW: casch za pisanie na foru tez mi nikt nieprzysyla, niestety ;-) bys mnie niepodejrzewal

  2. chyba robisz przez ikony, tak?

     

    bo ediepl radzil ci drugi sposob 3,

    3, w objektu stworka, eventu draw robisz v action ikone execute code

    do niej dasz

    GML
    draw_rectangle( x-50, y-60, x-50+100*(hp/maxhp), y-40, 0 );
    co robi kazdy parametr doctyzas sie v help(F1)

    x, y so zmienne ustalajoce pozycje objektu

    hp, maxhp so twe zmienne ktore dasz kazdemu stworkowi zapisujoc w create a zmienajoc w innych eventach(step, collision itp.)

    draw automatycnie pak rysuje na screenu kazdy cykl pasek hp

    dotego mozna bawic sie z colorowym rysovaniem a nawet mozna rysowac wiecej paskow prez siebie by uzyskac fajne efekty

     

    tak mozna latwo zrobic ladniejsze rzeczy nic tylko ikonami :)

     

    rep+ niejestem pewny o co ci chodzi.

    jest

    GML
    repeat(5) {komenda1, komenda2};
    ktory 5x zrobi vwzystko co jest w { ... }
  3. 1, mozesz sprobowac z surface by niebylo trzeba rysowac kazdy cykl kazdy object. bo co sie niezmienia to moze byc na surface

     

    2, wyjotkowo mozna by uzyc

    set_automatic_draw(value) Indicates whether to automatically redraw the room (true, default) or not (false).

    screen_redraw() Redraws the room by calling all draw events.

    screen_refresh() Refreshes the screen using the current room image (not performing drawing events).

    pozwolic redraw tylko co x cykli. ale jesli to jest dobry pomysl zalezy od animacji gry

  4. ds_.._write jesce niemialem potrzebe uzyc :)

     

    prawdopodobnie 1024/8=128 ale for zaczyna sie od 0 co daje 129cykli

     

    uzycie file_bin_seek jest konieczne? mozna by tez tak

    GML
    // w create _s=""; _array_object[0 az 255]= id objektow; max_x=128

    _file=file_bin_open("map", 0); //0= reading

    // wczytanie z bin do stringu

    for(iti=0; iti<file_bin_size(_file); iti+=1){_s+=chr(file_bin_read_byte(_file)); };

     

    // wypelnienie roomu instancjami

    var _obj;

    for(ity=0; ity<1024-8; ity+=8){

    for(itx=0; itx<1024-8; itx+=8){

    // pobiera z stringu na odpowiednie

    _obj=ord(string_char_at(_s, ity/8*max_x+ itx/8))

    if (_obj>0 ) {instance_create(itx, ity, _array_object[_obj]); };

    };

    };

    file_bin_close(_file);;

  5. dokladnie tak, nieodpowiadalem bo mialem nadzieje, ze tylko ja nierozumiem :)

     

    jak bawisz sie maskami to domyslanie jest duzo wiecej komplikowane, najlepsiej daj przyklad by moc sprawdzic co trza do odpowiedzi.

     

    z obrazku wynika, ze laser ma kontakt z zwierciadlem w zlym miescu, tak?

    to kdzie jest ta rakietka?

    albo te trojkoty to majo byc rakietky?

    to kdzie so zwierciadla?

    po co rakietka ma odbijac laser?

    dlaczego uzywa hspeed i vspeed zamiast speed+direction?

    ... i dalsze glupie pytania mnie nawiedzajo jak patrze na 1. post :)

  6. slabe opisanie nowego problemu.

     

    jesli samochod nasladuje przewodnika i w czasie kolizji kreci sie na miejscu, to zrob przewodnika wiszialnego jesli sie nastalo niezatrzymal.

    bo w tym przypadku samochud poprostu dojechal do przevodnika i kreci sie wokol niego :)

     

    zatem trza poprostu naprawic przewodnika.

     

    jesli tez samochod robi zakrety na miejscu, to polecam poprawic mechanike jazdy samego samochodu.

    by jazda byla realniesza.

     

    podsumuje:

    - przewodnik zna trase z ktorej niemoze zboczyc, moze tylko zaczekac na samochod, by ten niestaral sie po kolizji jechac mimo trase(vielki zakret) przez domy itp.

    - samochod moze zboczyc z trasy(przewaznie po kolizji, lub zle dobranej trasie kiedy trasa jest dla samochod zbyt trudna ), ale zawsze sie kieruje na prewodnika by powrocic na trase

    - jak bys robil gta i byla trasa kreta mozna sobie skomplikwac prace prewodnikiem2 do prewodnika1, kotry w najbarzdiej kreconych uliczkach doprowadzi samochod do przewodnika1 kalkulujoc trase ingame wedlog nastalych okolicznosci :)

     

    HuderLord: dzieki :)

  7. instalka w sanboxu po odinstalowaniu pozostawila na PC 18files / 19 folders / 1MB

    raczej wole miec wszystko w jednym folderze a mazac za jedynym zamachiem :)

     

    co do gry:

    - czasami niemialem czym strzelac

    - moze przyspeszyc namierzanie meteoru a pozvolic meteorom spadac czesciej?

    - wymysl cos co doda grze powod do myslenia. teraz tylko liczy sie 1. chvila kdy jak namierzysz chvilke pozniej to niema szans

    - jedno trafienie i budynek jest odpisany a jest dom i flaga, czy to nie troche zamalo?

    - mogla by to byc fajna gra, ale tak jak jest teraz, to jest nudna. ale jako demko czemu nie?

  8. @I am vader: dlatego poradzilem punkt 1, :)

    i tak... kod moze byc prawidlowy, ale poprostu my sie mamy domyslic wszystkiego bez pokazania definicji zmiennych

     

    jak pisze Amaterasu czesto jest najprostsze sprawdzac stan gry w czasie rzeczywystym, ale show message w draw/step niejest dobry pomysl :) dlatego polecilem draw text.

    navet dawniej napisalem funkje krota zapisuje argumenty do file a potem mozna analyzowac file by sprawdzic rozwoj zapisanych zmiennych

    show_message jest dobre dla eventow ktore sie niepowtarzajo za czesto.

    gm:s ma navet show_message_async

  9. so rozne sytuacje

    1, sprawdz:

    - nazwy objektow, zmiennych

    - kolizjie imon Check resource name

    2, czasami jest situacja kiedy zmienne w instancji powinny istniec o cykl wczesniej niz so odczytywane inno onstancjo

    byto sprawdzic zapewnij egzystencje o_controler wczesniej niz o_pokaz.

    naprzyklad sproboj stworzyc o_control persistent v w innym roomu startowym a potem prejsc do roomu gry

     

    3, mozes dla testu dodac przed if w draw kod ktory otestuje egzystencje o_controller a naprzyklad przez draw_text poda wynik testu na ekran

  10. jesli chodzi o twary niezmieniajoce sie( plynaca barwa), mozna je przy stworzeniu gry/instance zapisac do ds_grid

    - nietrzeba ani get_pixel, ale moglo by starczyc ustawienie maski i collision_point + zapisanie kazdego kolizijnego pixela do ds_grid

    - tak masz w ds_grid maske ktoro da sie szybko przenosic do innych ds_grid dzeiki ds_grid_..._region

    - maske robisz tylko raz dla kazdego kszaltu

    - nierozwazalem tymczasowo mixowanie kolorow, ale chyba cos bedzie mozliwe. decydujo zasady mixowania a ty nieznam.

     

    moge sie mylic, ale dawac duzo surface na androida niejest najlepszy pomysl :(

    wnioskuje z netbokow a na tabletach/fonach chyba duzo lepiej niebedzie, dlatego ted przyklad ktory podalem wyzej moze niebyc najlepszy do przerobki na androida.

    ALE surface w nim uzywany jest wylocnie do rysowania objektow, z ds_grid wiecej niema spolnego.

    ogolnie mozna rysowac swym sposobem a ds_grid uzyc tylko do liczenia kolorow :)

  11. nadal nie aplikuje sie do sytuacji, gdzie rysujemy scene, jednoczesnie zapisujac dane do kontenera - tego nie da sie zrobic, aby bylo choc odrobine szybkie.

    ...

    moze niecalkiem cie zrozumialem, ale wystarczylo dodac rysowanie instancji do surface 800x600 i sprawdzic wyniki.

    na mym starym PC byly:

    dla 1x1pix draw_rectangle, grid zapis 1x1, 1400 instancji rysujocych = zawse>30fps

    dla sprite 32x32 , grid zapis 32x32 , 1400 instancji = zawsze>30fps

    taki sobie sredni PC chyba :)

     

    ale w sumie to teraz juz niewazne, bo LionX Dagger juz zdecydowal jak woli to robic :)

  12. ja mialem na mysli cos w tym rodzaju

     

    pisane raczej szybko, niedoskonale i niekomentowalem kodu :)

     

    - grid jest jak screen 800x600

    - rozmiary so sterowane sheel up/down

    - aqua kwadrat jest sterowany mouse

    - jest tez z startu 1 black quadrat nisterowany, a bardzo maly. tez zmienia swo wielkosc

    - RMB dodaje 1 black kwadrat na pozycje myszy

    - MMB dodaj kazdy cykl(room_speed) 1 black kwadrat

    - up/down ustawia szybkosc kazdego black kwadrata

    - R resetuje demo

    - nierobilem rysowanie z ds_grid na screen, bo chodzilo wylocnie o zapisiywanie do ds_grid a liczenie kolorow

    (teraz tylko z black kwadratow + aqua kwadratu. Aqua kw. jest defakto black, ale kirowany myszo)

     

    na gorze ekranu jest licznik obarwionych cell z ds_grid, zatem latwo polyczycz sibie ile jest % obarwione z screenu.

     

    w sumie przyklad robi swe prosto i zsybko, bo nietrzeba robic z calym room, ale tylko z czescioma kdze so objekty rysujoce.

    tak jak juz z Jaklub pisalismy

×
×
  • Dodaj nową pozycję...