Skocz do zawartości

Jak połączyć dwa obiekty ?


Rekomendowane odpowiedzi

Witam. Problem polega na tym iż nie wiem jak połączyć obiekt z drugim [ pistolet z bohaterem]. Chcę zrobić skrzynkę losującą bronie [tak jak w Call of Duty 5 WaW] ale nie wiem jak połączyć wylosowaną broń z bohaterem tzn: broń pojawia się na bohaterze ale nie porusza się z nim [zrobiłbym tylko zamianę "sprite'ów" ale bronie to nie tylko pistolety, a przecież karabin nie strzela jednym nabojem]. Jeśli ktoś zna inny sposób by zrobić taką skrzynkę i "wisi" mu to czy wykorzystam jego metodę czy nie to chętnie posłucham.

 

podsumowanie w skrócie: jak "zespawać 1 objekt z 2 obiektem.

Odnośnik do komentarza
Udostępnij na innych stronach

Możesz zrobić to tworząc zmienną id dla obiektu broni gracza:

GML
// Create

BronID = 123;

 

// Przy losowaniu broni:

// 1. Losowanie

wylosowana = choose( oBron1, oBron2, oBron3, oBron4 );

// 2. Sprawdzanie czy mamy juz bron, jesli tak to niszczymy ja

if( BronID != 123 ) with( BronID ) instance_destroy();

// 3. Dajemy mu bron

BronID = instance_create( x, y, wylosowana );

 

// Teraz co step niesiemy broń za graczem

// Step

if( BronID != 123 ) {// Jesli mamy bron

BronID.x = x;

BronID.y = y;

}

 

To powinno działać :)

Odnośnik do komentarza
Udostępnij na innych stronach

Szczerze mówiąc to w gml'u jestem zielony i niewiele tu zrozumiałem [oczywiście cieszę się za twój czas poświęcony temu postu] i ja wole iśc za około [nie przez gml], a jeszcze lepiej wole się uczyć przez przykłady innych i nie mógł byś powiedzieć jak połączyć dwa obiekty albo jakiś kod napisać [ jak by co to ja ci nie rozkazuje ].

Odnośnik do komentarza
Udostępnij na innych stronach

korzystajmy ze zmiennej bron

kolizja z bronia(podnoszenie broni)

GML
bron=1

raczej step(jak nabierzesz doświadczenia to będziesz kombinował)

GML
switch(bron)//nasza aktualna broń

{

case 1: bron_sprite=spr_bron1 break//jeżeli nasza broń to 1 to sprite broni= spr_bron1

case 2: bron_sprite=spr_ak47 break

case 3: bron_sprite=spr_colt break

}

draw

GML
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)//rysujemy ludka

draw_sprite_ext(bron_sprite,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)//rysujemy bron ludka</span></span>
Odnośnik do komentarza
Udostępnij na innych stronach

GML
lengthdir_x(o_player.y + tu podajesz odległość y broni od bohatera w kierunku 0, direction)

lengthdir_y(o_player.y + tu podajesz odległość y broni od bohatera w kierunku 0, direction)

 

Pokombinujesz trochę i na pewno Ci wyjdzie kod musisz wpisać w step broni

Odnośnik do komentarza
Udostępnij na innych stronach

aby bron celowala v kierunku vidzenia gracza to uzyj

GML
draw_sprite_ext(bron_sprite,image_index,x,y,image_xscale,image_yscale,_gracz.direction,image_blend,image_alpha)//rysujemy bron ludka</span></span>
jak ma sie porusac po obvodu kregu to jak pisze Lechu4444, albo tez mozna
GML
delka=20; //delka-dlugosc od osy trza zmierzyc.

uhel=degtorad(raketka.direction);

x=_gracz.x-sin(uhel)*delka;

y=_gracz.y-cos(uhel)*delka;

Odnośnik do komentarza
Udostępnij na innych stronach

Nie udało mi się nic z tym zrobić może jak wytłumaczę co robię krok po kroku to gdzieś znajdzie się błąd:

robię sprite w gimpie .png -> otwieram w GM -> klikam edit sprite -> animation -> rotation sequence -> counter- clockwise -> tworze obiekt, a w nim : [dołączam zdjęcia]

http://zapodaj.net/c8dbd00d8d74f.png.html

http://zapodaj.net/fb82806fa64f3.png.html

http://zapodaj.net/ffe1c5cb68a6e.png.html

 

 

PS: prosiłbym o to by przy skryptach z GML pisać gdzie to umieścić czy w "create" czy w "step"

Odnośnik do komentarza
Udostępnij na innych stronach

mno podany sposob:

GML
Information about object: o_hrac

 

Sprite: s_player

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Create Event:

execute code:

 

//

instance_create(x,y+22,o_vecL);

instance_create(x,y-22,o_vecP);

 

 

Step Event:

execute code:

 

//

direction=point_direction(x,y,mouse_x, mouse_y);

image_angle=direction;

 

 

______________________________________________________

 

Information about object: o_vecL

 

Sprite: s_colt

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Step Event:

execute code:

 

delka=22; //delka-dlugosc od osy trza zmierzyc.

uhel=degtorad(o_hrac.direction);

// "-" leva strona

x=o_hrac.x-sin(uhel)*delka;

y=o_hrac.y-cos(uhel)*delka;

 

if (!keyboard_check(ord("Q")) ) {image_angle=o_hrac.direction; }; // tylko dla pokazania mozliwosci

______________________________________________________

 

Information about object: o_vecP

 

Sprite: s_colt

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Step Event:

execute code:

 

//

delka=22; //delka-dlugosc od osy trza zmierzyc.

uhel=degtorad(o_hrac.direction);

// "+" prava strona

x=o_hrac.x+sin(uhel)*delka;

y=o_hrac.y+cos(uhel)*delka;

 

if (!keyboard_check(ord("E")) ) {image_angle=o_hrac.direction; };// tylko dla pokazania mozliwosci

______________________________________________________

 

Information about object: o_info

 

Sprite: <no sprite>

Solid: false

Visible: true

Depth: 0

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Draw Event:

execute code:

 

draw_text(10,10,"Left hand Q#Right hand E");

 

______________________________________________________

sprite s_player:

w=32

h=32

originx=16

originy=6

 

sprite s_colt:

w=32

h=16

originx=4

originy=7

Odnośnik do komentarza
Udostępnij na innych stronach

Broń obraca się w okół postaci i w kierunku widzenia bohatera, lecz znowu problem, dołączam wideo w którym widać jakie skrypty wykorzystałem i jak to widać w grze:

 

Online:

 

http://video.anyfiles.pl/GMCLAN+-+znowu+pr...ery/video/74771

 

do pobrania [jakby online nie działało]

 

http://uploaduj.net/D4dc44/i-znowu-problem-avi/

Odnośnik do komentarza
Udostępnij na innych stronach

ta bron to jakas proca czy co?

nieidentyfikuje kdzie ma byc przednia strona i kdzie ma byc os(origin sprite) obracania sprite broni.

 

na videu to cos obraca sie jakby mial origin na 0,0.

 

sprawdz to a jak bedzie problem pokumaj nad mym postem z 13:29(przyklad)

Odnośnik do komentarza
Udostępnij na innych stronach

ta bron to jakas proca czy co?

nieidentyfikuje kdzie ma byc przednia strona i kdzie ma byc os(origin sprite) obracania sprite broni.

 

na videu to cos obraca sie jakby mial origin na 0,0.

 

sprawdz to a jak bedzie problem pokumaj nad mym postem z 13:29(przyklad)

 

Lol, "kdzie" raz się pomylić to rozumiem ale 2 razy ? i nie proca tylko pistolet jak sama nazwa wskazuje "obj_colt", a z odpowiedzi o godz. 13:29 to najmniej się dowiedziałem, a w przykładzie nie ma nic co do tej pory bym nie wykorzystał. [mogłeś chociaż wyjaśnić co to jest "origin"]

 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

Broń obraca się w okół postaci i w kierunku widzenia bohatera, lecz znowu problem, dołączam wideo w którym widać jakie skrypty wykorzystałem i jak to widać w grze:

 

Online:

 

http://video.anyfiles.pl/GMCLAN+-+znowu+pr...ery/video/74771

 

do pobrania [jakby online nie działało]

 

http://uploaduj.net/D4dc44/i-znowu-problem-avi/

Odnośnik do komentarza
Udostępnij na innych stronach

[mogłeś chociaż wyjaśnić co to jest "origin"]

Co ty wiesz o GM jak nie wiesz co to orgin??

Sprtie i tam masz ustawienia orgina wraz z podglądem.

Piszę wyraźnie "Orgin"!

Pod liczbą ramek w sprite.

 

To oś wokół której obraca się sprite!

 

Tak offtop-owo: po jaką cholerę używasz nawiasów kwadratowych?? W obu przypadkach powinien być okrągły...

Odnośnik do komentarza
Udostępnij na innych stronach

v przykladu jest origin uzyty.

jak nievies, to jest v GM klavisz F1 a tam odszukasz origin a bedzies viedziel, ze origin to jest punkt v sptrie do ktorego jest przyciepoina instance (x,y bo instance niema v roomie zaden rozmiar) a tez vokol ktorego sie sprite obraca

nic v zlem ,ale ja cie nieucze GM, ale tylko radze skroty jakie commands uzyvac by osiognoc cel jak mozna najlatviej :thumbsup:

 

co do to "colt", to zartovalem, ale doopravdy nierozpoznaje kdze by mial miec origin= punkt vokol ktorego sie ma obracac.

zapevne czesc problemu jest tam.

jak spravdisz origin to mozna dalej

 

video jest dobre, ale davaj prosze i slovny popis problemu

 

"kdzie" no tak przeoczylem :) przepraszam

Odnośnik do komentarza
Udostępnij na innych stronach

1.Origin - wiedziałem w praktyce, nie wiedziałem w teorii :P

2. Nawiasy kwadratowe bardziej mi się podobają i szybciej się je robi.

 

ereg mi się wydaje czy ty masz nawyk pisania "v" zamiast "w" i tak część problemu chyba właśnie tam się znajduje ale narazie nie mam czasu żeby doprecyzować "origin"

bo w GM siedze najczęściej od 17.00 godziny

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem czy serio jesteś z Czech, ale jeżeli tak to mała uwaga: zamiast 'w' piszesz 'v' - powinno być np: wokół zamiast vokol(bo rozumiem, że możesz mieć problem z napisaniem polskich znaków ze względu na klawiaturę, dlatego się ich nie czepiam), albo niema w roomie zamiast niema v roomie.

Niemniej można bez problemu załapać o co coman ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem czy serio jesteś z Czech, ale jeżeli tak to mała uwaga: zamiast 'w' piszesz 'v' - powinno być np: wokół zamiast vokol(bo rozumiem, że możesz mieć problem z napisaniem polskich znaków ze względu na klawiaturę, dlatego się ich nie czepiam), albo niema w roomie zamiast niema v roomie.

Niemniej można bez problemu załapać o co coman ;)

Zajrzyj tutaj niedowiarku: http://www.forum.velkejchytrak.cz/viewtopi...f=16&t=2140

Odnośnik do komentarza
Udostępnij na innych stronach

mieskazm niedaleko granicy i polski uczylem sie tylko na TV i kdy czytalem v ksiozkach.... bardzo davno temu. dlatego tez "w" kontra "v" mi vychodzi czesto bo to jest poprostu czeskie :)

 

jak mie zrozumiecie to vsystko gra.

(moj englisch jest duzo gorzsy <_< )

tutaj pisze, bo jest zabavne czytac i pisac po polsku i starac sie pomoc.

 

sproboj zrozumiec co sie robi v tym kodu i niebedziesz miec problem.

Odnośnik do komentarza
Udostępnij na innych stronach

tutaj pisze, bo jest zabavne czytac i pisac po polsku i starac sie pomoc.

 

sproboj zrozumiec co sie robi v tym kodu i niebedziesz miec problem.

 

" I starać się pomóc", kolego (jeśli moge się tak do ciebie zwracać) pobrałem twój przykład i przestudiowałem go i w końcu udało mi się osiągnąć to co chciałem, broń świetnie reaguje na bohatera i jego ruchy, jednym słowem POMOGŁEŚ !, a wszyscy inni którzy chcieli mi pomóc to bardzo dziękuje i już wiem, że żeby zrobić dobrą grę trzeba po prostu znać choć troche GML.

 

Dziękuje i temat do zamknięcia. :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

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