Skocz do zawartości

Revael

Użytkownicy
  • Postów

    29
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Revael

  1. Zapisać ją do dwóch zmiennych. Osobno x i y.

     

    Ale może inne rozwiązanie Cię zaspokoi. Możesz nie usuwać tego obiektu a tylko go dezaktywować.

     

    Jak go zdezaktywować? Jaki jest do tego kod?

    EDIT : WIELKI Mój błąd... nie ustawiłem tego obiektu w roomie, już wszystko działa ;_;

  2. Bardziej skomplikowanie nie mogłeś tego opisać. Przecinki mogły by bardzo dużo pomóc.

    Nie rozumiem więc strzelam:

    GML (Event Destroy objkey2)instance_create(x,y,obj_key)

     

    Wiedziałem, że nikt nie zrozumie :P. Jak zapisać ostatnią znaną pozycję jakiegoś objektu? Tak aby pozniej stworzyl sie w miejscu gdzie sie zniszczyl

  3. Chciałbym zrobić tak aby: obj_key1 się niszczył kiedy dotyka gracza(zrobione), kiedy w roomie nie ma obj_key1 nad graczem tworzy się obj_key2(zrobione) i teraz jest problem: kiedy gracz dotyka obj_wall kiedy nad graczem jest obj_key2 obj_key2 się niszczy a obj_key się pojawia w tym miejscu gdzie został zniszczony. W skrócie: jak zrobić aby objekt tworzył się w miejscu jego ostatniego zniszczenia.

    Nie wiem jak się za to zabrać :/.

  4. Popatrz. Nie ma żadnej blokady.

    Gracz wchodząc do zielonego portalu, przenosi się do niebieskiego. Następnie jest od razu teleportowany z powrotem.

    Polecam używać debugera i patrzeć co się dzieje krok po kroku.

     

    Nie mam pojecia jak dziala debugger mode. Zrobilem zeby z niebieskiego do zielonego klikalo sie strzalke w dol i jest ok.

  5. Może nie wykrywa kolizji? Kod wydaje mi się dobry, więc to chyba jedyne rozwiązanie.

    Musisz sprawdzić wgl zachodzi kolizja między graczem a zielonym teleportem, przykładowo w ewencie kolizji zamknij grę.

     

    Kolizja się pojawia bo mam inny objekt do narysowania czegoś kiedy jest właśnie ta kolizja

     

    czemu podwójne with(obj_player)?

     

    GML with(obj_player)

    {

    x=obj_portal_green.x

    y=obj_portal_green.y

    }

     

    nie wystarczy

     

    GML x=obj_portal_green.x

    y=obj_portal_green.y

     

    ?

     

    Jednak wystarczy to tak jak mówisz, ale problem nie zniknął, dalej z zielonego nie można przejść do niebieskiego

  6. Problem polega na tym, iż z portalu niebieskiego teleportacja działa poprawnie (teleportacja do zielonego), ale z zielonego do niebieskiego już działać nie chce :/ (kod jest w objekcie do kontrolowania portali (to nie jest gracz))

    GML
    //Green to Blue

    with(obj_player)

    {

    if place_meeting(x,y,obj_portal_green) && keyboard_check_pressed(vk_up)

    {

    if instance_exists(obj_portal_blue)

    {

    effect_create_above(ef_ring,obj_portal_green.x,obj_portal_green.y,0.6,c_green);

    with(obj_player)

    {

    x=obj_portal_blue.x

    y=obj_portal_blue.y

    }

    }

    }

    }

    //Blue to Green

    with(obj_player)

    {

    if place_meeting(x,y,obj_portal_blue) && keyboard_check_pressed(vk_up)

    {

    if instance_exists(obj_portal_green)

    {

    effect_create_above(ef_ring,obj_portal_blue.x,obj_portal_blue.y,0.6,c_blue);

    with(obj_player)

    {

    x=obj_portal_green.x

    y=obj_portal_green.y

    }

    }

    }

    }

  7. Kolega mi pomógł i taki kod działa.

    druga_kula = instance_create(x+lengthdir_x(27,direction),y+lengthdir_y(27,direction),obj_bull

    et);

    druga_kula.direction+=15

    trzecia_kula = instance_create(x+lengthdir_x(27,direction),y+lengthdir_y(27,direction),obj_bull

    et);

    trzecia_kula.direction-=15

  8. Cały pomysł polega na tym, że gry obj_player zbierze obj_bonus_triple to przez następne 10 sekund będzie strzelał potrójnie ( Można by to porównać do Contry kiedy po zebraniu odpowiedniego bonusu strzały leciały w trzech kierunkach ). Jedna kula "główna" leci w stronę kursora a dwie pozostałe tworzą się o 30 stopni w górę i o 30 stopni w dół. Nie mam pomysłu jak to zrobić. Tak wygląda kod strzelania teraz :

     

    if reload = 0 && movement = 0

    {

    if keyboard_check(vk_space)

    {

    alarm[0]=30

    reload = 1

    image_speed = 0.2

    audio_play_sound(snd_cannonshot,10,0)

    instance_create(x+lengthdir_x(direction,direction),y+lengthdir_y(direction,direc

    tion),obj_bullet);

    }

    }

     

    reload to po prostu przerwa miedzy strzałami

    movement jest aby strzał nie mogł być oddany podczas ruchu

  9. Sprawa wygląda następująco:

    kiedy pocisk trafi przeciwnika to ten pocisk powinien się niszczyć - i tak jest

    tyle ze gdy ten jeden pocisk trafia przeciwnika to cala reszta pocisków które się utworzyły po nim również się niszczy.

    Taki mam kodzik w przeciwniku:

    (Step Event)

     

    if place_meeting(x,y,obj_bullet)

    {

    hp -= 1

    with (obj_bullet)

    {

    instance_destroy();

    }

    }

     

    Co zrobić aby tylko pocisk który trafia przeciwnika się niszczył a reszta dalej sobie "latała"

  10. Po części się udało:

    Kiedy się przesunę np. w górę i dopiero strzelę to pocisk wylatuje z lufy, ale jeśli się tylko obrócę i nie przesunę to pocisk wylatuje z miejsca innego niż lufa

    Kod jaki mam aby obj_bullet się tworzył

    if keyboard_check_pressed(vk_space)

    {

    instance_create(x+lengthdir_x(29,direction), y+lengthdir_y(29,direction),obj_bullet);

    }

  11. Otóż mój objekt nazwany obj_player porusza się tylko w lewo i prawo za pomocą move_towards_point(mouse_x,y,32). Ale gdy trzymam kursor w miejscu to ten objekt 'szaleje' i lata na lewo i prawo kiedy ma stać w miejscu. Czy da się zrobić tak aby objekt poruszał się z prędkością myszy?

×
×
  • Dodaj nową pozycję...