Skocz do zawartości

Zablokowane Uboższe linki


ALT

Rekomendowane odpowiedzi

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

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

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

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

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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...