Skocz do zawartości

naciskanie dwa razy tego samego klawisza


Lordis

Rekomendowane odpowiedzi

Witam !

 

Mam problem z wyborem broni poniewarz chce zrobić wybór bronie wzorowany na Half-Life.

A więc gdy naciskam '1' pojawia mi się broń "Pistolet Glock" gdy nacisne jeszcze raz '1' to zmienia się na drugi "Pistolet Colt" i tak dalej zależy ile mam bronie(maksymalna ilość będzie 5)

 

ja mam taki kod na to ale nie dzila(pojawia sie "Pistolet Glock" i nie zmienia sie)

 

GML
if ( keyboard_check_pressed(ord('1')) and distance_to_object(Socom)>= 0 )

{

instance_create(x,y,Glock)

with (weapon) instance_destroy()

with (weapon1) instance_destroy()

with (weapon2) instance_destroy()

with (weapon3) instance_destroy()

with (weapon4) instance_destroy()

with (weapon5) instance_destroy()

with (weapon6) instance_destroy()

with (weapon7) instance_destroy()

with (weapon8) instance_destroy()

with (Socom) instance_destroy()

}

if ( keyboard_check_pressed(ord('1')) and distance_to_object(Glock)>= 0 )

{

instance_create(x,y,Socom)

with (weapon) instance_destroy()

with (weapon1) instance_destroy()

with (weapon2) instance_destroy()

with (weapon3) instance_destroy()

with (weapon4) instance_destroy()

with (weapon5) instance_destroy()

with (weapon6) instance_destroy()

with (weapon7) instance_destroy()

with (weapon8) instance_destroy()

with (weapon9) instance_destroy()

with (Glock) instance_destroy()

}

 

 

Gdzie weapon 0-9 to inne bronie (AK47, granaty itp)

 

Mam nadzieje że mnie zrozumieliście :P i pomożecie

 

Z góry DZIĘKI !!!

Odnośnik do komentarza
Udostępnij na innych stronach

GML
distance_to_object(Socom)>= 0

(...)

distance_to_object(Glock)>= 0

Dlatego Ci się nie zmienia...

Zmień to przykładowo na:

GML
distance_to_object(socom)<=5

distance_to_object(glock)<=5

Bo ustawiasz, warunek, gdy dystans do obiektu jest większy niż 0 więc każdy obiekt do tego pasuje

btw nie fajne są zmienne z wielkimi literami ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Nie działa :(

 

GML
if keyboard_check_pressed(ord('9')) and distance_to_object(w2_socom) <=5

{

instance_create(x,y,weapon9)

with (weapon) instance_destroy()

with (weapon1) instance_destroy()

with (weapon2) instance_destroy()

with (weapon3) instance_destroy()

with (weapon4) instance_destroy()

with (weapon5) instance_destroy()

with (weapon6) instance_destroy()

with (weapon7) instance_destroy()

with (weapon8) instance_destroy()

with (w2_socom) instance_destroy()

}

if keyboard_check_pressed(ord('9')) and distance_to_object(weapon9) <=5

{

instance_create(x,y,w2_socom)

with (weapon) instance_destroy()

with (weapon1) instance_destroy()

with (weapon2) instance_destroy()

with (weapon3) instance_destroy()

with (weapon4) instance_destroy()

with (weapon5) instance_destroy()

with (weapon6) instance_destroy()

with (weapon7) instance_destroy()

with (weapon8) instance_destroy()

with (weapon9) instance_destroy()

}

 

Teraz w ogóle się nie pojawia bo gdy naciskam '9' to nic sie nie robi bo nie mam w ręce ani socoma ani glocka :/ wie ktoś jak to zrobić??

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if keyboard_check(ord('9')) and distance_to_object(w2_socom) <=5

{

instance_create(x,y,weapon9)

with (weapon) instance_destroy()

with (weapon1) instance_destroy()

with (weapon2) instance_destroy()

with (weapon3) instance_destroy()

with (weapon4) instance_destroy()

with (weapon5) instance_destroy()

with (weapon6) instance_destroy()

with (weapon7) instance_destroy()

with (weapon8) instance_destroy()

with (w2_socom) instance_destroy()

}

if keyboard_check(ord('9')) and distance_to_object(weapon9) <=5

{

instance_create(x,y,w2_socom)

with (weapon) instance_destroy()

with (weapon1) instance_destroy()

with (weapon2) instance_destroy()

with (weapon3) instance_destroy()

with (weapon4) instance_destroy()

with (weapon5) instance_destroy()

with (weapon6) instance_destroy()

with (weapon7) instance_destroy()

with (weapon8) instance_destroy()

with (weapon9) instance_destroy()

}

Odnośnik do komentarza
Udostępnij na innych stronach

nie widziałem głupszego zestawienia kodu. Przechowuj id albo chociaż index bądź nazwę aktywnej broni i po tym ją usuwaj..

 

jeśli użyjesz tego przykładu to kod na przerobienie zmainy broni jak w hl będzie wyglądał:

GML (step)
if ( keyboard_check_pressed( ord( '1')) and laduj == true )

{

if ( active < count ) active += 1 else active = 1

bron = bron[ active ]

}

 

chyba, ze chcesz bardziej tradycyjnie to:

GML
if ( laduj )

{

if ( keyboard_check_pressed( ord( '1'))) bron = bron[ colt ]

if ( keyboard_check_pressed( ord( '2'))) bron = bron[ mp5 ]

if ( keyboard_check_pressed( ord( '3'))) bron = bron[ ak47 ]

 

if ( keyboard_check_pressed( vk_anykey )) active = bron

}

;)
Odnośnik do komentarza
Udostępnij na innych stronach

kurde nie rozumiem zabardzo tego :/

ja mam bronie jako obiekty a nie tak jak w tam tym przykładzie kod w bohaterze

i mi nie wychodzi :(

 

Create

GML
active = weapon1

count = 4

weapon_basic = weapon_basic [ active ]

weapon_basic[ 1 ] = weapon1 // weapon1-4 to obiekty

weapon_basic[ 2 ] = weapon2

weapon_basic[ 3 ] = weapon3

weapon_basic[ 4 ] = weapon4

PRESS 1-KEY

GML
if ( not reload ) exit

 

active -= 1

if ( active < 1 ) active = count

weapon_basic = weapon_basic[ active ]

 

i mi nie chodzi :( nie rozumiem tego zabardzo

 

 

wyskakuje mi taki ERROR:

 

Error in code at line 3:

weapon_basic = weapon_basic[ active ]

 

at position 17: Unknown variable weapon_basic or array index out of bounds

Odnośnik do komentarza
Udostępnij na innych stronach

to ma być tak:

jest 6 radzaji broni.Z karzdego rodzaju są 4 bronie

1-nóż,kij bejzbolowy,piła mechaniczna,maczeta

2-pistolety...

3-karabiny...

4-strzelby...

5-granaty...

6-dodatkowe(bazooka,telepolter,miotacz ognia,palalizator)

 

i chce żeby to wyglądało tak jak w Half-Life (ale z 6 rodzajami tak jak wyżej)

czyli jak nacisne '1' to bede wybierał bronie z grupy pierwszej

jak nacisne raz to nóz dwa razy to kij bejzbolowy itd...

jak nacisne '2' to pistolety jak nacisne '3' , '4' , '5' , '6' to wybieram dane bronie z danej grupy.

W tam tym przykładzie niestety jest jedna grupa a na dodatek bronie są na zmiennych a ja mam obiekty broni.

 

teraz bardziej zrozumiałe ?? :D

Odnośnik do komentarza
Udostępnij na innych stronach

daj im wszystkim tego samego parenta i:..

 

GML
if ( keyboard_check_pressed( ord( '1')))

{

bee = parent.object_index

with( parent ) instance_destroy() //usuwamy wszystkie bronie

switch( bee )

{

case obj_noz: instance_create( .. , obj_kij ); break

case obj_kij: instance_create( .. , obj_pila ); break

case obj_pila: instance_create(.. , obj_maczeta ); break

default: instance_create( .. , obj_noz )

}

}

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ę...