Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Globalne Zmienne


Rekomendowane odpowiedzi

Opublikowano

Witam,

 

mam pewien problem z globalną zmienną ruchu, która zmienia się odpowiednio na 1 lub 0. Otóż odczytanie jej późniejszym ifem jest bardzo powolne, przez co przy zmianie kierunku ruchu przy wcisnietej strzalce np. do góry, spróbuję w lewo wcisnąć to wtedy laguje lekko na 1 sec...

 

Wie może ktoś jak to rozwiązać...

 

Pozdrawiam

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista


"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer


 


Potrzebujesz czegoś? Oznacz mnie @Salur

Opublikowano

Nie da się przyśpieszyć if. Podaj kod, bo najpewniej trzeba zmienić logikę tej funkcji.

O błędach w C++ powie Ci kompilator, a o błędach w PHP klient..

 

Opublikowano

Poprostu funkcja sprawdza czy gracz jest w ruchu czy nie jest, ot cała filozofia

 

if(ruch == 0)

{

    instrukcja;

}

 

I sprawdzalem, ze dopiero przy sprawdzeniu tego laguje, nic wczesniejszego ani pozniejszego

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista


"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer


 


Potrzebujesz czegoś? Oznacz mnie @Salur

Opublikowano

Przetestuj czy to samo będzie na xamppie najnowszej wersji oczywiście, jeżeli dalej będzie zacinało / lagowało to spróbuj bo może funkcja to powoduje.

 

 

// Racja zapomniałem :D

1377531174-U173186.png

Opublikowano

Up ^^

 

Od kiedy javascript wykonuje się za pomocą serwera? Z tego co mi wiadomo, to wykonuje się po stronie przeglądarki, więc nie ma znaczenia, czy to xampp, czy co innego...

 

 

Funkcja jest na 100% dobra...

 

 

Z moich przypuszczeń wynika, że to fabryczna wada javascriptu

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista


"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer


 


Potrzebujesz czegoś? Oznacz mnie @Salur

Opublikowano

bnmbb

 

kod javascript nie laguje, warunek sprawdzania zmiennej globalnej "move" tzn "if(move == 0)" laguje wykonanie się dalszej częsci kodu. Sprawdzałem to milion razy przed i po wykonaniu jak reaguje funkcja i nie ma innej opcji, że to tylko to laguje. Kod na 100% jest dobry. Zmienna move jest zmienna globalna, która jest wykorzystywana w innych funkcjach i jakoś tak laguje wtedy

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista


"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer


 


Potrzebujesz czegoś? Oznacz mnie @Salur

Opublikowano

Problemem zapewne jest ulozenie warunkow odpowiedzialnych za odczytanie wcisnietegi klawisza. Podaj ten kod to powiem ci jak to powinno byc.

 

Bo masz problem, ktory juz komus kiedys zdolalej rozwiazac.

gamedevmania.com

Opublikowano

http://wklej.org/id/1398608/

 

 

Kod opowiedzialny za sprawdzanie wszystkiego przy kliknięciu klawiatury

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista


"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer


 


Potrzebujesz czegoś? Oznacz mnie @Salur

Opublikowano

Wszystko przez te else if, które blokuje sprawdzenie warunku jeśli spełniony jest poprzedni. To znaczy, że jeśli trzymasz jeszcze poprzedni klawisz to naciśnięcie kolejnego nie zostanie odczytane.

 

Rozwiązanie problemu mogłoby wyglądać mniej więcej tak:

if(gora) {
//ruch w gore
} else if(dol) [
//ruch w dol
}

if(lewo) {
//ruch w lewo
} else if(prawo) {
//ruch w prawo
}

gamedevmania.com

Opublikowano

Akurat to chyba nie to, ponieważ wszystko wiesza się dokładnie po tym if'ie, a gdy usuwam move == 0, strzałki też się inaczej odczytują

if(toX>0 && toX<eval(max_x) && toY>0 && toY<eval(max_y) && move == 0)

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista


"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer


 


Potrzebujesz czegoś? Oznacz mnie @Salur

Opublikowano

Udało mi się to rowiązać, gdy popatrzyłem na inny kod i faktycznie, za dużo było tych ifów, albo warunek, który czytał klawisze był zły

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista


"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer


 


Potrzebujesz czegoś? Oznacz mnie @Salur

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...