Skocz do zawartości

Problem z systemem turowym v2


ToxicMan

Rekomendowane odpowiedzi

Nie mam pojęcia co nie działa, global.tura2r nie zmienia się na 1 tu jest kod z obj1:

 

GML
if global.tura1r=1{

 

global.tura1r=0

 

global.tura1=2

 

}

 

if (keyboard_check_pressed(vk_space)) {

 

global.tura1=0

 

global.tura1r=0

 

global.tura2r=1

 

}

 

a tu z obj2:

 

GML
if global.tura2r=1{

 

global.tura2r=0

 

global.tura2=2

 

}

if (keyboard_check_pressed(vk_space)) {

 

global.tura2r=0

 

global.tura2=0

 

global.tura1r=1

 

}

 

global.tura1r jest tak rozwiązane ponieważ na global.tura1 będzie nałożone trochę ,,if''

 

Następnym razem używaj tagów [ gml ] - Threef

Odnośnik do komentarza
Udostępnij na innych stronach

Oba są w step? Będą się wykonywać jednocześnie kiedy naciśniesz spację. Jeden z nich ustawia zmienną na 1, a drugi na 0. Czyli bez przerwy będzie się zmieniać.

 

GML
if (keyboard_check_pressed(vk_space)) {

 

global.tura2r=0

 

GML
if (keyboard_check_pressed(vk_space)) {

 

global.tura2r=1

Odnośnik do komentarza
Udostępnij na innych stronach

Oba są w step? Będą się wykonywać jednocześnie kiedy naciśniesz spację. Jeden z nich ustawia zmienną na 1, a drugi na 0. Czyli bez przerwy będzie się zmieniać.

 

GML
if (keyboard_check_pressed(vk_space)) {

 

global.tura2r=0

 

GML
if (keyboard_check_pressed(vk_space)) {

 

global.tura2r=1

 

Więc jak to naprawić?

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem. Nie rozumiem co próbujesz osiągnąć.

 

W obu obiektach po naciśnięciu spacji wykona się kod. Jeden z nich ustawi zmienną tura2r na 1, a drugi na 0. Tyle potrafię powiedzieć na podstawie dostępnych informacji.

 

Chcę aby tura1r wynosiła 1 a po naciśnięciu spacji tura2r wynosiła 1 a tura 1r się zerowała i żeby to nie robiło się w kułko

Odnośnik do komentarza
Udostępnij na innych stronach

może tak w obj1

 

GML
if (keyboard_check_pressed(vk_space)) and (global.tura1r == 1)

{

global.tura1r = 0;

global.tura2r = 1;

}

i w obj2

GML
if (keyboard_check_pressed(vk_space)) and (global.tura2r == 1)

{

global.tura1r = 1;

global.tura2r = 0;

}

 

a jak nie to gdzieś indziej masz błąd

 

chodzi o to że to też powinno działać gdy tura1r wynosi 0

 

Odnośnik do komentarza
Udostępnij na innych stronach

no się stanie,bo gdy tura2r wynosi 0 tura1r wynosi 1. Chyba nie rozumiem, co chcesz osiągnąć .

 

może podam więcej kodu

 

obj1 są takie kody:

 

GML
if(global.tura1>=1){

 

if(keyboard_check_pressed(vk_left)){

x-=96

global.tura1-=1

}

 

if(keyboard_check_pressed(vk_right)){

x+=96

global.tura1-=1

}

 

if(keyboard_check_pressed(vk_up)){

y-=96

global.tura1-=1

}

 

if(keyboard_check_pressed(vk_down)){

y+=96

global.tura1-=1

}

 

}

 

i

 

GML
if global.tura1r=1{

 

global.tura1r=0

 

global.tura1=2

 

}

 

if (keyboard_check_pressed(vk_space)) {

 

global.tura1=0

 

global.tura1r=0

 

global.tura2r=1

 

}

 

w obj2 to samo ale z pozmienanymi ,,tura''

 

chcę aby obiekt mógł ruszyć się max 2 razy (ale żeby mógł też 0) a po naciśnięciu spacji obj2 mógł to zrobić

 

Odnośnik do komentarza
Udostępnij na innych stronach

Kod Sheriff99 będzie działał ale ma być tylko w jednym obiekcie. Zrób sobie jakiś kontroler który tym steruje a nie że każdy obiekt sobie sam zmienia

 

jak to napisać w jednym obj bo jeśli tak to nie działa

GML
if global.tura1r=1{

 

global.tura1r=0

 

global.tura1=2

 

}

if (keyboard_check_pressed(vk_space)) and (global.tura1r == 1)

{

global.tura1r = 0;

global.tura2r = 1;

}

 

if global.tura2r=1{

 

global.tura2r=0

 

global.tura2=2

 

}

if (keyboard_check_pressed(vk_space)) and (global.tura2r == 1)

{

global.tura1r = 1;

global.tura2r = 0;

}

Odnośnik do komentarza
Udostępnij na innych stronach

Przeanalizuj kod który wkleiłeś.

GML
if (keyboard_check_pressed(vk_space)) and (global.tura2r == 1)

{

global.tura1r = 1;

global.tura2r = 0;

}

 

czy ten if kiedykolwiek się wykona? przecież parę linijek wyżej masz ustawione że jak global.tura2r = 1 to ustaw ją na 0. więc jaki jest sens pytac potem czy jest równa 1 skoro nie może być.

z global.tura1r jest to samo.

 

Wklej jeszcze raz kod który ty uważasz że powinien działać, a nie działa. w komentarzach do KAŻDEJ linijki opisz co sądzisz że się dzieje dzięki czemu będziemy w stanie znaleźć gdzie popełniasz logiczne błędy. To co tutaj mamy to podstawowe rzeczy w programowaniu więc ważne jest żebyś dokładnie rozumiał co się dzieje. Warto trochę sie pomęczyć żeby w przyszłości mieć spokój.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if global.tura1r=1{

 

global.tura1r=0

 

global.tura1=2 //ustawiene ruchu

}

if (keyboard_check_pressed(vk_space)) and (global.tura1a == 1)

{

global.tura1r = 0;

global.tura2r = 1;

global.tura1a = 0;

global.tura2a = 1;

}

 

if global.tura2r=1{

 

global.tura2r=0

 

global.tura2=2 //ustawienie ruchu

}

if (keyboard_check_pressed(vk_space)) and (global.tura2a == 1)

{

global.tura1r = 1;

global.tura2r = 0;

global.tura1a = 1;

global.tura2a = 0;

}

 

teraz obj1 i obj2 dostają ture na raz co jest nie tak? wg mnie się wszystko zgadza a jednak nie działa

Odnośnik do komentarza
Udostępnij na innych stronach

Po 2 godzinach kombinowania jak to naprawić, naprawiłem! zrobiłem to tak:

w objekcie ustawiającym tury:

GML
if global.tura1r=1{

 

global.tura1r=0

 

global.tura1=2 //ustawiene ruchu

}

if (keyboard_check_pressed(vk_space)) and (global.tura1a == 1)

{

global.tura1 = 0;

instance_create(x,y,przdo2);

}

 

if global.tura2r=1{

 

global.tura2r=0

 

global.tura2=2 //ustawienie ruchu

}

if (keyboard_check_pressed(vk_space)) and (global.tura2a == 1)

{

global.tura2 = 0;

instance_create(x,y,przdo1);

}

 

w obj przdo1 zrobiłem alarm ktury po 1 milisekundzie robi to:

 

GML
global.tura1a=1

global.tura1r=1

global.tura2a=0

global.tura2r=0

 

puki co działa , temat do zamknięcia

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