ALT Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 Witam! Nie dawno był temat(Linka)w którym napisałem że chce łączenie obiektów za pomocą liny,na priva od jednego usera gmclanu(nie powiem jaki)przykład łączenia linkami,teraz prośba,jak zrobić tak aby po połączeniu liną dwóch obiektów linia która je połączyła wyśrodkowała swoje końce na obu obiektach,zamieszczam plik KABLE! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assassin Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 Haha tymona ni ma :> . Trzymaj, najprościej tak: https://gmclan.org/up5908_12_kable.html Zmiany tylko w global left pressed i released dla kursora. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 13 Kwietnia 2010 Autor Udostępnij Opublikowano 13 Kwietnia 2010 kiedy dam line prawie za obiektem: ___________________________________________ ERROR in action number 1 of Mouse Event for Glob Left Released for object control: Error in code at line 3: global.xx2=instance_position(mouse_x,mouse_y,obj_all).x ^ at position 56: Unknown variable x ___________________________________________ ERROR in action number 1 of Mouse Event for Glob Left Released for object control: Error in code at line 3: global.xx2=instance_position(mouse_x,mouse_y,obj_all).x ^ at position 56: Unknown variable x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 Trzeba sprawdzić czy instance_position(mouse_x,mouse_y,obj_all) zwraca noone, jeśli nie to wtedy przypisać x instancji do global.xx2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
candy Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 Usuń z control akcje związane z myszką. Zamiast nich wstaw: GML (Glob Left Released) global.xx1=0; global.xx2=0; global.yy1=0; global.yy2=0; W obj0 i obj1 wstaw: GML (Left pressed) global.xx1=x; global.yy1=y; GML (Left released) global.xx2=x; global.yy2=y; instance_create(x,y,kabel) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assassin Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 To dlatego, że twój kursor jest większy niż jeden pixel, jakim jest mouse_x i mouse_y. O tym po prostu nie pomyślałem, a nie sprawdzałem jak działa. Teraz obojętnie jaką częścią twojego kursora dotkniesz obiektu, i tak rysuje. Dlatego zmniejsz ten kursor, bo trochę za duży jest :) . https://gmclan.org/up5908_12_kable.html @up: wy kombinatorzy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 Ogólnie trochę głupie rozwiązanie, bądźmy szczerzy. Po co przypisywać x i y skoro można połączyć 2 obiekty przez ID. Wyglądało by to mniej więcej tak, w obiekcie które mają się łączyć: GML (Create) target = noone; // zmienna trzymajaca id obiektu do ktorego zostaje przywiazany</span></span> GML (Draw) draw_sprite( sprite_index, image_index, x, y ); // rysowanie sprita obiektu, coby byl widoczny if( target != noone ) // jesli nie ma obiektu do ktorego zostal przywiazany { if( instance_exists( target ) ) // jesli obiekt ten istnieje, sprawdzenia dla pewnosci gdyby zostal przez przypadek zniszczony { draw_arrow( target.x, target.y, x, y, 10 ); // rysowanie strzalki od obiektu do celu } } Przy kliknięciu LPM:GML // ten kod pozwala na wiazanie obiektow // potrzebujemy 2, wiec najpierw zapiszemy id pierwszego, a pozniej kazemy uzytkownikowi wybrac drugi if( global.target == noone ) // jesli nie wybrano jeszcze pierwszego global.target = id; // zapisujemy id pierwszego obiektu else if( global.target != id ) // jesli wybrano juz pierwszy obietk i drugi wskazany nie jest tym samym co pierwszy to... { target = global.target; // przypisz obiekt celu do obiektu global.target = noone; // wyczysc wskaznik na pierwszy } Nie zapomnijcie tylko o umieszczeniu gdzieś, gdziekolwiek:GML global.target = noone; // wskaznik na piwerwszy obiekt</span> Plus tego taki, że ma się dostęp do instancji, bez konieczności szukania jej po pozycji. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assassin Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 Tymon, ogólnie cały kod jest głupi. Ale zrozum, takie rozwiązanie jak twoje polega na tym, że wszystko robisz od podstaw, a nie poprawiasz... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 13 Kwietnia 2010 Autor Udostępnij Opublikowano 13 Kwietnia 2010 @up: wy kombinatorzy Potwierdzam :lol: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 13 Kwietnia 2010 Udostępnij Opublikowano 13 Kwietnia 2010 [...]wszystko robisz od podstaw, a nie poprawiasz...Piszę z głowy i nawet nie otwieram GMa, ale ok, pofatyguję się, otworzę i zaraz poprawię to co on tam ma, jak trzeba. ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 14 Kwietnia 2010 Autor Udostępnij Opublikowano 14 Kwietnia 2010 Dobra,assassin masz kredki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi