Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mapa
Forum PHP.pl > Forum > PHP
zurek
Witam
Potrzbuję wykonać mapę podobną do gry Ikariam. Większość pracy mam już za sobą. Nie jestem jednak pewny, czy w dobrym kierunku dążę i czy poprawnie to robię. Czy ktoś może mi to dokładnie wytłumaczyć. Szukałem na forum i żadnen temat nie przyniósł mi dokładnej odpowiedzi. W Internecie też wiele nie ma. Mniej więcej wiem jak to zrobić. Mam już nawet w pewnej części działający skrypt, ale po prostu chcę wiedzieć. Pytanie dotyczy kwestji programistycznej jak i graficznej. Proszę też o odpowiedzi dłuższe niż 3 słowa smile.gif

Z góry dzięki za pomoc
jarmiar
Może napisz coś więcej, tzn co robisz, jak, daj jakies kody źródłowe. Wedy coś doradzimy
zurek
Ok. mam zdefiniowane już tło w znaczniku ul oraz 11 pól w li. Jest też skrypt obsługujący mapę, czyli wyświetlanie pustych pól lub określone objekty. Widziałem inne mapy i jakoś moja nie jest podobna.

Chodzi też o grafikę. Jaka technika, sposób wykonania itd.. Z php nie będzie większego problemu. Słyszałem też o jakichś mapach izometrycznych, tablicach dwuwymiarowych. Wszystko mi się pętli w głowie....

Fragment kodu:

  1. <ul style="background-image:url('images/base.JPG'); height:600px; width:600px; position:relative; margin:0; padding:0">
  2.  
  3. <?
  4.  
  5. require_once('../mysql_connect.php');
  6. $query = "SELECT * FROM buildings WHERE user='$user'";
  7. $result = mysql_query($query);
  8.  
  9. if($result){
  10. while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
  11. $id = $row['id'];
  12. $position1 = $row['position1'];
  13. $position2 = $row['position2'];
  14. $position3 = $row['position3'];
  15. $position4 = $row['position4'];
  16. $position5 = $row['position5'];
  17. $position6 = $row['position6'];
  18. $position7 = $row['position7'];
  19. $position8 = $row['position8'];
  20. $position9 = $row['position9'];
  21. $position10 = $row['position10'];
  22. $position11 = $row['position11'];
  23. }
  24. }
  25.  
  26. if($position1!=='0'){
  27. <li id="position1" style="display:block; width:80px; height:80px; position:absolute; top:150px; left:
    50px; margin:0; padding:0">
  28. <a href="user_panel.php?page=build&id='.$id.'&element='.$position1.'&position=position1">
  29. <img src="images/'.$position1.'2.GIF" style="border: 0px;"/>
  30. </a>
  31. </li>
  32. ';
  33. }
  34. else{
  35. <li id="empty" style="display:block; width:80px; height:80px; position:absolute; top:150px; left:
    50px; margin:0; padding:0">
  36. <a href="user_panel.php?page=build&id='.$id.'&element=empty&position=position1">
  37. <img src="images/empty.GIF" style="border: 0px;"/>
  38. </a>
  39. </li>
  40. ';
  41. }
  42.  
  43. ...
  44. ?>
daniel1302
Kolego ale jakim prawem robisz nadpisywanie zmiennych
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
$id = $row['id'];
$position1 = $row['position1'];
$position2 = $row['position2'];
$position3 = $row['position3'];
$position4 = $row['position4'];
$position5 = $row['position5'];
$position6 = $row['position6'];
$position7 = $row['position7'];
$position8 = $row['position8'];
$position9 = $row['position9'];
$position10 = $row['position10'];
$position11 = $row['position11'];
}
zurek
Cytat(daniel1302 @ 4.08.2008, 21:52:55 ) *
Kolego ale jakim prawem robisz nadpisywanie zmiennych
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
$id = $row['id'];
$position1 = $row['position1'];
$position2 = $row['position2'];
$position3 = $row['position3'];
$position4 = $row['position4'];
$position5 = $row['position5'];
$position6 = $row['position6'];
$position7 = $row['position7'];
$position8 = $row['position8'];
$position9 = $row['position9'];
$position10 = $row['position10'];
$position11 = $row['position11'];
}


To znaczy?
neverever
Cytat(zurek @ 4.08.2008, 22:13:19 ) *
To znaczy?

To znaczy że masz pętle while wykonywaną n-razy, czyli tyle ile zapytanie do bazy zwróci rekordów
i tyle samo razy nadpisujesz sobie te wszystkie zmienne a nic z tego nie wynika.
zurek
Cytat(neverever @ 4.08.2008, 23:08:57 ) *
To znaczy że masz pętle while wykonywaną n-razy, czyli tyle ile zapytanie do bazy zwróci rekordów
i tyle samo razy nadpisujesz sobie te wszystkie zmienne a nic z tego nie wynika.


Rzeczywiście, muszę to poprawić wstydnis.gif A powiecie coś o tym jak się taką mapę robi mniej więcej?
JanBezKsywy
A może parę słów co to ma być za mapa, w jakim celu ona jest i jak ma działać? Czytając Twoje posty widzę, że pojęcie mapy izometrycznej (geografia) i tablice dwuwymiarowe (matematyka, informatyka) wrzucasz do jednego worka. Nie wiem czy sam wiesz, co chcesz osiągnąć.


EDIT:
Pomyślałem chwilę. Powiedz czy się mylę: chcesz mieć stronkę na której graficznie będzie przedstawiona mapa jakiegoś obszaru zawierającego lokalizacje, a kliknięcie na nazwy lokalizacji spowoduje przejście do podstrony z tą lokalizacją?
zurek
Cytat(JanBezKsywy @ 5.08.2008, 11:44:41 ) *
A może parę słów co to ma być za mapa, w jakim celu ona jest i jak ma działać? Czytając Twoje posty widzę, że pojęcie mapy izometrycznej (geografia) i tablice dwuwymiarowe (matematyka, informatyka) wrzucasz do jednego worka. Nie wiem czy sam wiesz, co chcesz osiągnąć.


Jak na początku mówiłem, ma to być mapa podobna do tej w grze internetowej Ikariam. Na początku jest tylko trawka, morze i kilka drzewek oraz puste pola na budowle. Z czasem, budowli przybywa. Nie do końca wiem jak to rozwiązać i graficznie i mniej programistycznie. Nie chodzi mi o kurs krok po kroku, ale dokładnie wytłumaczenie czym i jak wykonać grafikę, z czego powinien składać się kod itd.. Zarys pracy winksmiley.jpg

To mam narazie:

http://www.voila.pl/354/6gjrw/index.php?get=1&f=1



Tak, chodzi mi o to, aby były lokalizacje, a po ich kliknięciu była inna podstrona i to już mam.

Problem w tym, że myslę że źle to robię i chcę to poprawić, usprawnić. Po prostu efekt mojej pracy mnie nie zadawala.

Wiem, że trochę mieszam, ale bardzo mi zależy na tym projekcie...
JanBezKsywy
Ja bym zorganizował to tak:
- pod względem logicznym: każda mapa na tą samą ilość pozycji "do zabudowy"
- PHP i baza danych: w bazie danych dla każdej mapy trzymam informacje na temat tego co znajduje się na odpowiedniej pozycji. W bazie powinny też być typy budowli, linki do / nazwy plików, grafik które je będą przedstawiać.
- ustawienie elementów na grafice mapy to już kwestia CSSu - każdej pozycji trzeba przypisać odpowiednie id i zdefiniować, gdzie się ma znajdować
- poprzez PHP tak definiujesz CSS, zeby kolejnym id byly przypisywane grafiki budynków.

Nie wydaje mi się, aby istniał jakiś gotowy system lub szablon dla takich rozwiązań, który byłby ogólnodostępny za darmo.
Całe zadanie wydaj mi się dość dużym zadaniem.

EDIT:
Grafiki - to już sprawa dla grafika. Jak nie jesteś dobry w te klocki poszukaj kogoś otzraskanego / profesjonalisty, który to narysuje.
zurek
Cytat(JanBezKsywy @ 5.08.2008, 17:12:13 ) *
Ja bym zorganizował to tak:
- pod względem logicznym: każda mapa na tą samą ilość pozycji "do zabudowy"
- PHP i baza danych: w bazie danych dla każdej mapy trzymam informacje na temat tego co znajduje się na odpowiedniej pozycji. W bazie powinny też być typy budowli, linki do / nazwy plików, grafik które je będą przedstawiać.
- ustawienie elementów na grafice mapy to już kwestia CSSu - każdej pozycji trzeba przypisać odpowiednie id i zdefiniować, gdzie się ma znajdować
- poprzez PHP tak definiujesz CSS, zeby kolejnym id byly przypisywane grafiki budynków.

Nie wydaje mi się, aby istniał jakiś gotowy system lub szablon dla takich rozwiązań, który byłby ogólnodostępny za darmo.
Całe zadanie wydaj mi się dość dużym zadaniem.

EDIT:
Grafiki - to już sprawa dla grafika. Jak nie jesteś dobry w te klocki poszukaj kogoś otzraskanego / profesjonalisty, który to narysuje.


Dzięki. Właśnie tak mam to mniej więcej zrobione. W bazie danych mam kolumny position1, opsition2 itd. i trzymam w nich typy obiektów. Skrypt sprawdza w pazie danych, czy wartość rekordu w danej pozycji nie jest równa zero. Jeżeli nie to wyswietla się odpowiednio wygeneroany obrazek, a jak nie to puste pole.

Jescze raz dzięki winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.