Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Mapa do gry przeglądarkowej
sher
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 9.07.2014

Ostrzeżenie: (0%)
-----


Edytowałem, napiszę od początku.
  1. // centralny punkt, na podstawie którego generowana jest reszta
  2. $defy = $_GET['y'];
  3. $defx = $_GET['x'];
  4. // od którego punktu ma się zaczynać mapa, ale względem centralnego punktu (czyli w praktyce ile pól mamy widzieć w lewo i w górę)
  5. $atmx = -21;
  6. $atmy = -10;
  7. // punkty jakiegoś obiektu
  8. $x=5;
  9. $y=3;
  10. // koordynaty obiektu względem środka
  11. $xl = $x-$defx;
  12. $yl = $y-$defy;
  13. // pętla skończy się jak punkty będą odwrotne do początkowych, tzn. punkt centralny znajdzie się na środku
  14. while ( $atmx<=21 and $atmy<=11 ){
  15. // jeśli koordynaty punktu są takie jak obecne, to wyświetlamy literkę W i dodajemy 1 do koordynatów (żeby zajęło się wyświetlaniem następnego)
  16. if ($xl==$atmx and $yl==$atmy){
  17. echo 'W';
  18. $atmx++;
  19. }
  20. // jeśli powstanie już pierwszy wers pól, to następne muszą się pojawiać niżej
  21. else if ($atmx==21){
  22. echo '<br/>';
  23. $atmx=-21;
  24. $atmy++;
  25. }
  26. // jeśli nie ma żadnego obiektu na polu to wyświetla obrazek i "zaznacza", że jest zajęte
  27. else {
  28. $hehx=$atmx+$defx;
  29. $hehy=$atmy+$defy;
  30. echo '<img src="" width="16px" height="16px" title="'.$hehx.','.$hehy.'">';
  31. $atmx++;
  32. }
  33. }

Mam taki kod, który generuje mapkę. Na mapie znajduje się jeden obiekt, którego pozycja oznaczona jest zmiennymi x i y. Muszę przerobić kod tak, żeby pobierane zostały z bazy danych rekordy i zostały zacznaczone na mapie zgodnie z ich koordynatami w bazie.

Ten post edytował sher 15.06.2015, 22:43:48
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Najpierw masz pobrac koordynaty z bazy i zapisac w tablicy
Potem masz zrobic normalną petle, ktora leci po calej twojej mapie i dla kazdego pola sprawdzac czy sie znajduje w tablicy pobranej z bazy czy nie i w zaleznosci od tego odpowiednio zazaczac to pole
Go to the top of the page
+Quote Post
sher
post
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 9.07.2014

Ostrzeżenie: (0%)
-----


Udało się, działa. Temat można zamknąć. Dla ciekawskich:
  1. $sql = $con->query("SELECT * FROM `groups`");
  2. while ($row = $sql->fetch_assoc()){
  3. $krd[]=$row['x'].','.$row['y'];
  4. }
  5. while ( $atmx<=21 and $atmy<=11 ){
  6. for( $i = 0, $cnt = count($krd); $i < $cnt; $i++ ){
  7. $koord= explode(',',$krd[$i]);
  8. $xl = $koord[0]-$defx;
  9. $yl = $koord[1]-$defy;
  10. if ($xl==$atmx and $yl==$atmy){
  11. echo 'W';
  12. $atmx++;
  13. }
  14. }
  15. if ($atmx==21){
  16. echo '<br/>';
  17. $atmx=-21;
  18. $atmy++;
  19. }
  20. else {
  21. $hehx=$atmx+$defx;
  22. $hehy=$atmy+$defy;
  23. echo '<img src="" width="16px" height="16px" title="'.$hehx.','.$hehy.'">';
  24. $atmx++;
  25. }
  26. }


Ten post edytował sher 16.06.2015, 12:36:52
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 20:18