NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[MMF2] Ruch przez FastLoopa dla wybranego obiektu?
Autor Wiadomość
AlexJ 
Plutonowy


Pomógł: 2 razy
Posty: 86

2018 Prestiż
Wysłany: 13-05-2007, 17:01   [MMF2] Ruch przez FastLoopa dla wybranego obiektu?

Witam. Robię grę (Toga, w MooSock), no i natknąłem się na taki, dość poważny problem :o :

Może coś pomocny opis:
1. Cały świat gry jest podzielone na mapy, z których przechodzi się do następnych map. Rozmowę "słyszą" tylko użytkownicy znajdujący się na tej samej mapie (fragmencie mapy całej gry, która składa się z poszczególnych, dość małych, ale za to rozbudowanych mapek) - to jest zrobione.
2. System detekcji przeszkód będzie po stronie klienta (chyba detektorki, nie chce mi się myśleć nad takimi algorytmami skomplikowanymi :mad: ).
3. Chodzenie JUŻ DZIAŁA tak, że klient wysyła do serwera twój login (rozpoznawanie postaci po loginie), i przyszłą pozycję oraz ew. kąt. Wtedy serwer wysyła do innych na tej mapie nową pozycję, kąt, szybkość poruszania (ilość loopów startowanych na setną sekundy). Tyle, że narazie jest skokowe i nie wiem jak zrobić pętlę dla każdego użytkownika, która za pomocą (działającego już, ale tylko na twojej postaci) silnika ruchu płynnie i z przyśpieszaniem itp. poruszy postacią.

Opis problemu:
Ruch postaci polega na pętlach, a gdy serwer już wyśle do tych do których trzeba, to nie wiem, jak zrobić, żeby jedna pętla mogła zmieniać pozycję X różnych obiektów (wybranego po loginie) na X("Obiekt")+round(sin(kąt przypisany do postaci)*4) i pozycję Y na Y("Obiekt")+round(cos(kąt przypisany do postaci)*4). Można łatwo wybierać, jakimi użytkownikami poruszać i to chyba by działało dodając oprócz zdarzenia pętli porównaj do value zmiennej obiektu "move"=1 i wtedy ustaw pozycję X na X+round(sin(zminna obiektu "dir"))*4)i Y na Y+round(cos(zminna obiektu "dir"))*4). Tyle, że do tego jeszcze trzeba ilość loopów na setną sekundy różną dla każdego usera (obiektu-postaci) i przyśpieszanie (serwer wysyła jeszcze info, czy to dalsza część ruchu z jaką prędkością lub czy to start ruchu).

Jedyny pomysł, jaki mi się nasówa do zrobienia tego, to zrobienie z 600 różnych pętli i przypisywanie do nich obiektów (dodatkowo, jest kilka "rodzin" obiektów).

Może ktoś wie jak to zrobić? Może jak by było na cośtam start loop pobierz zmienną "user" obiektu i na loop zmienna "user" obiektu i value obiektu "move"=1? Pilne!

[ Dodano: 20-05-2007, 13:06 ]
Teraz wszystko jest lepiej wytłumaczone! Niech że ktoś pomoże... :( .
_________________
Error 404: Błąd. Opisu nie znaleziono.
PS. Oryginalne, nie?



C++'s Cool.
 
 
     
Fanotherpg 
Porucznik
I'm livin' proof


Główny edytor: Fusion 2.5 Dev
Drugi edytor: Fusion 2.5
Pojedynki: tak
Skype:
Pomógł: 8 razy
Posty: 821

14370 Prestiż
Wysłany: 20-05-2007, 14:21   

A nie możesz zrobić, że przesyłana jest pozycja X i Y do której jakiś gracz zmierza (np zapisana w wartości tego gracza) i po stronie klienta obiekt sam dąży dzięki odpowiedniej szybkości i kierunkowi do tego miejsca?
_________________
Indie since 1997.
 
 
     
AlexJ 
Plutonowy


Pomógł: 2 razy
Posty: 86

2018 Prestiż
Wysłany: 20-05-2007, 14:56   

No tak właśnie jest, tylko problem tkwi w zrobieniu pętli, która by poruszała PŁYNNIE z różnymi prędkościami obiekt... Czyli trzeba by wiele pętli, różną dla każdego obiektu. Mi do łba przychodzi jedynie przypisywanie obiektu do pętli... Obiekty są wybieranie po Alterable String'u User... Jak mówiłem, obecnie silnik działczy na zasadzie przesyłania komendy z username'em, nową pozycją X i Y oraz kątem (taki bajer do obracania animacją bohatera). Później, jak będą różne obiekty aktywne dla różnych ras będę musiał albo zrobić wysyłanie jeszcze rodzaju obiektu (co jest łatwiejsze w sumie) albo zczytywanie ew. po stronie klienta z AssArray rasy postaci zapisywanej przy pojawianiu się usera.
_________________
Error 404: Błąd. Opisu nie znaleziono.
PS. Oryginalne, nie?



C++'s Cool.
 
 
     
Minty 
Stwórczyni
omc dr fizyki


Główny edytor: Fusion 2.5 Dev
Drugi edytor: Construct
Pojedynki: być może
Pomogła: 259 razy
Posty: 3447

33795 Prestiż
Wysłany: 20-05-2007, 15:14   

AlexJ napisał/a:
problem tkwi w zrobieniu pętli, która by poruszała PŁYNNIE z różnymi prędkościami obiekt...

Uruchamiając pętlę np. 25 razy (czyli TGFowa prędkość 200), ustaw wartość B obiektu na jego wartość A (prędkość). Do zdarzenia zmiany pozycji w ruchu dodaj warunek B>0 i za każdym poruszeniem zmniejszaj B o 1. Skutek? 25 pętli, ale prędkość taka, jakby pętli było A (od 0 do 25).
 
     
AlexJ 
Plutonowy


Pomógł: 2 razy
Posty: 86

2018 Prestiż
Wysłany: 20-05-2007, 16:10   

Wieeelkie dzięki :) . Już robiłem na podobnej coś :D , ale nie pamiętam co. Tutaj na to nie wpadłem.
Ale jak, że ta pętla startuje cały czas 30x i do zdarzenia on loop "pęlta" dam jeszcze wartość MOVE obiektu "Obiekt"=1, X("Obiekt") jest inna niż wartość X obiektu "obiekt" i/lub Y("Obiekt") jest inna niż wartość Y obiektu "obiekt" to ustaw pozycję X("Obiekt") na X("Obiekt")+round(sin(WartośćStopień("Obiekt"))*4) i ustaw pozycję Y("Obiekt") na Y("Obiekt")+round(cos(WartośćStopień("Obiekt"))*4). Tak to będzie działało? Nie chcę na marne próbować. xD.
_________________
Error 404: Błąd. Opisu nie znaleziono.
PS. Oryginalne, nie?



C++'s Cool.
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group