Skocz do zawartości
ToxicMan

Problem z systemem turowym v2

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

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
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ć?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Więc jak to naprawić?

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.

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

GML
if (keyboard_check_pressed(vk_space))

{

if(global.tura1r == 1)

{

global.tura1r = 0;

global.tura2r = 1;

}

else

{

global.tura1r = 1;

global.tura2r = 0;

}

}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
GML
if (keyboard_check_pressed(vk_space))

{

if(global.tura1r == 1)

{

global.tura1r = 0;

global.tura2r = 1;

}

else

{

global.tura1r = 1;

global.tura2r = 0;

}

}

 

Dalej nie działa :(

 

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
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

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
chodzi o to że to też powinno działać gdy tura1r wynosi 0

no i działa gdy tura2r = 1 to tura1r wynosi 0

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
no i działa gdy tura2r = 1 to tura1r wynosi 0

 

ale to ma działać w 2 strony czyli jak tura2r wynosi 0 to też się stanie

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
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ć

 

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
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;

}

Udostępnij tego posta


Odnośnik do posta
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.

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×