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

pytanie w sprawie petli for, lokalizacjii, oraz odleglosci


TheVersusxPro

Rekomendowane odpowiedzi

Opublikowano

proszę o podanie kodu javy, odpowiadojacego za pobieranie wszystkich graczy w odleglosci 4 kratek od danej lokalizacjii

Zapraszam do Współpracy :D!!!!

Opublikowano

hm no to zaczynamy masz Location miejsce twojego miejsca i teraz poobierasz wszystkich graczy

pobierasz wszystkich graczy

https://hub.spigotmc.org/javadocs/spigot/

w pętli np for() przelatujesz graczy pobierasz ich Location i sprawdzasz czy 

lokacja twojego miejsca jest w jakiejś tam odległości od miejsca gdzie znajduje sie gracz ot cała filozofia

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Location.html

Opublikowano

  1. public static List<Entity> getNearbyEntities(Location where, int range) {

  2. List<Entity> found = new ArrayList<Entity>();

 

for (Entity entity : where.getWorld().getEntities()) {

if (isInBorder(where, entity.getLocation(), range)) {

found.add(entity);

}

}

return found;

}

dodaj gdzies sprawdzanie czy to gracz i powinno dzialac 

 

Opublikowano

 

  1. public static List<Entity> getNearbyEntities(Location where, int range) {
  2. List<Entity> found = new ArrayList<Entity>();
  3.  
  4. for (Entity entity : where.getWorld().getEntities()) {
  5. if (isInBorder(where, entity.getLocation(), range)) {
  6. found.add(entity);
  7. }
  8. }
  9. return found;
  10. }
dodaj gdzies sprawdzanie czy to gracz i powinno dzialac 

 

Skoro komenda na 99% bedzie wywyolana przez gracza to nie lepiej uzyc player.getNearbyEntities()?

Opublikowano

 

  1. public static List<Entity> getNearbyEntities(Location where, int range) {
  2. List<Entity> found = new ArrayList<Entity>();
  3.  
  4. for (Entity entity : where.getWorld().getEntities()) {
  5. if (isInBorder(where, entity.getLocation(), range)) {
  6. found.add(entity);
  7. }
  8. }
  9. return found;
  10. }
dodaj gdzies sprawdzanie czy to gracz i powinno dzialac 

 

super ale zapomniałeś o metodzie isinBorder no chyba że sam nie wiem ...

a kolejne pytanie po co dodawać metody które już są zaimplementowane (wątpię aby poprawa wydajności wchodziła w grę)

 

­

Opublikowano

@damianq20

 

Zdziwilbys sie, ile dziur i ile syfow w*******a ekipa spigota/bukkita do tego silniku :)

 

Polecam przejrzec kod od spawnowania mobow.

 

@Edit

 

@ rafszy122

Przelecenie po 10k Entities bedzie lepsze niz po wszystkich graczach xDD?

Opublikowano

­

 

@damianq20

 

Zdziwilbys sie, ile dziur i ile syfow w*******a ekipa spigota/bukkita do tego silniku :)

 

Polecam przejrzec kod od spawnowania mobow.

 

@Edit

 

@ rafszy122

Przelecenie po 10k Entities bedzie lepsze niz po wszystkich graczach xDD?

nie za bardzo wiem o czym piszesz ? , co ma kod respienia mobow do mojej wypowiedzi ? , pełno błędów powiadasz but its working!!

Opublikowano

@damianq20

 

"a kolejne pytanie po co dodawać metody które już są zaimplementowane (wątpię aby poprawa wydajności wchodziła w grę)"

Opublikowano

@damianq20

 

Zdziwilbys sie, ile dziur i ile syfow w*******a ekipa spigota/bukkita do tego silniku :)

 

Polecam przejrzec kod od spawnowania mobow.

 

@Edit

 

@ rafszy122

Przelecenie po 10k Entities bedzie lepsze niz po wszystkich graczach xDD?

I tak przelatuje wszystkie entity z danego swiata :v

Opublikowano

­tak czy siak Api posiada metodę do obliczania dystansu pomiędzy 2 Location i raczej wypada z tego korzystać niżeli tworzyć swoje , które robią to samo możliwe że gorzej mozliwe że lepiej , dociekać czy faktycznie zaimplementowanie własnej metody zwiększy wydajność kodu o kilka/kilkanaście operacji nie będe bo samo ugryzienie axis boundingbox zajeło mi sporo czasu , no chyba że masz zamiar robić wstawki z asamblera . ale wątpię aby ktokolwiek potrzebował takich sztuczek.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...