Skocz do zawartości

kt1117

Użytkownicy
  • Postów

    1 103
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez kt1117

  1. Ja nie mogę, aż się zalogować musiałem. Z jakiego? Napisze z całkiem innego i nie rozwinie, co za człowiek. B)

    BTW. tak mi się coś wydaje że jest 30-2D, 60-3D, 90-Ocullus Rift

  2. Ja ostatnio oglądałem 3 całkiem fajne:

    -6 kul

    Trzyma w napięciu, jest kilka fajnych zwrotów akcji i co najważniejsze dobrze się czułem po obejrzeniu

    -memento

    Ciekawe, nie powiem nic więcej bo spojlery

    -wyspa tajemnic

    Podobne do memento, fajnie się ogląda i pozostawia trochę do myślenia

  3. Z kolizjami będzie pewnie problem, bo obraca się tylko obrazek. Jak chcesz je wykrywać to zrób drugi sprite i niech to jest sama kula tego wahadła, nadaj go obiektowi i wyłącz visible.

    I teraz:

    Step

    GML
    licznik+=0.3//Szybkość wahadła

    odchyl=22//Jak bardzo ma się odchylać

    x=lengthdir_x(długość_wachadła,sin(licznik)*odchyl)+xstart

    y=lengthdir_y(długość_wachadła,sin(licznik)*odchyl)+ystart

    Draw

    GML
    draw_sprite_ext(ten_sprite_co_teraz,xstart,ystart-długość_wachadła,/*jakieś argumenty*/,image_angle,/*jakieś inne argumenty*/)//jak to wypełnić znajdziesz w dokumentacji</span>

    To powinno już mniej więcej ogarniać kolizję.

    Nie podałem całego kodu bo nie pamiętam, a dla ciebie też lepiej bo będziesz zmuszony rozumieć co robisz.

  4. Ja też żadnej gry nie zrobiłem, zacząłem kiedyś jedną, silnik już gotowy praktycznie był ale coś się rozjechało. Sam nie potrafię nic zrobić, bo uważam wszystkie moje próby za niegrywalny crap i wywalam. Oprócz tego skończyłem bardzo dobre liceum, ale za porażkę uważam to że mimo tego nie mam nawet finalisty OI i do Warszawy bym się nie dostał na studia, także za 2 dni jadę do Gdańska. Pracy nie mam, będę chyba próbował do maka na pierwszy semestr a potem na jakiś staż do Intela albo innej Invidii.

  5. A spróbuj tego:

    GML
    var stopped;

    stopped=0;

     

    image_angle = direction;

    if distance_to_object(obj_player)<90

     

    {

    stopped=1

    if obj_player.x>x image_xscale=1;

     

    else image_xscale=-1;

     

    if( strzal )

    {

    var i;

    i = instance_create( x, y, obj_laserek );

    i.speed = 10;

    i.hspeed=image_xscale*10;

    strzal = 0;

    alarm[0]=room_speed*0.2

    }

    }

    else

    {

    if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2);

    if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_solid)) x+=image_xscale*5;

    else image_xscale*=-1;

    }

     

     

     

     

    //naprawiamy bugujacego sie wroga przy zawracaniu przeszkoda par_solid

    if (place_meeting(x+5,y,par_solid) || place_free(x+5,y+32)) && image_xscale = 1

    {

    image_xscale = -1;

    }

    if (place_meeting(x-5,y,par_solid) || place_free(x-5,y+32) && image_xscale = -1

    {

    image_xscale = 1;

    }

     

    ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid

    if !place_meeting(x+sign(image_xscale),y-2,par_solid) {

    if image_xscale > 0 {

    hspd = min(hspd+sign(image_xscale),2);

    } else if image_xscale < 0 {

    hspd = max(hspd+sign(image_xscale),-2);

    }

    }

    if hspd == 0 {

    image_xscale *= -1;

    unstick(8);

    }

    //Obrazenia wroga

    if hurtClock > 0 {

    visible = !visible;

    hurtClock -= 1;

    } else {

    visible = true;

    }

     

    if hp <= 0 {

    instance_destroy();

    instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka

    with instance_create(x,y,obj_entity_die) {

    sprite_index = DinoGinie; //sprite do poruszania sie wroga

    image_xscale = other.image_xscale;

    image_yscale = other.image_yscale;

    hspd = other.hspd;

    vspd = other.vspd;

    }

    }

    if (stopped)

    hspd=0;

     

     

    // czasowy respawn wrogow troche pomeczyles sie ale dziala jak trzeba :)

    if (dead == true)

    {

    //obj_spawn.dead = true; //respawn zabitego wroga jak nie bedzie dzialac to wtedy dead=true i wpisac instance_create(x,y,obj_spawn)

    instance_create(x,y,obj_spawn_dino);

    }

     

    No to prawda że się spaghetti porobiło trochę i ciężko się to czyta.

  6. Macierz kamery powinna być chyba łatwa do wyliczenia, jeżeli jest nieosobliwa to podzielisz przez nią. Ale podejrzewam że nie zawsze tak będzie więc to może być trudne. Ewentualnie spróbuj napisać DLL do tego. Co prawda dalej będziesz wykonywał te obliczenia 2 razy, ale w C++ powinno szybciej działać,

  7. Proponowałbym mnożenie macierzy zaimplementować.

    Na wiki powinieneś znaleźć jak wygląda macierz translacji, skalowania i rotacji.

    Potem robisz skalowanie*rotacja*translacja.

    A na końcu mnożysz przez wektor początkowy i powinieneś otrzymać w wektorze końcowym wyniki.

  8. A to czas spróbować, to nie gryzie, a ile prędkości dodaje i na jakie przestrzenie pozwala :)

     

    ds_list robisz :

    nazwa_listy = ds_list_create();

     

    ds_list_add_value(lista, wartość) dodajesz kolejne dane

     

    później czeszesz to rekurencyjnie przez for i w kilka minut pisania masz stworzony generator poziomów

    Rekurencyjnie przez for? xD To nie oksymoron?

×
×
  • Dodaj nową pozycję...