Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Tworzenie mapy izometrycznej
!*!
post 20.08.2011, 14:49:21
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Na jakiej zasadzie tworzy się mapy izometryczne? Chciałbym coś takiego napisać, jednak nie wiem jaką stworzyć pętlę która obliczy konieczne wartośći do zbudowania takiej mapy. Na początke chce poukładać tzw tiles, standardowo tekstura to 64px szerokości na 32px wysokości czyli normalna wartość dla izometrii.

Nie wiem tylko jak stworzyć prostą mapę np 5x5 pól, czyli 25 obiektów "tiles". Biorąc pod uwagę że obiekty są liczone od 0x0 w obu kierunkach.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
konole
post 20.08.2011, 15:24:03
Post #2





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Tablica dwuwymiarowa.

Kod
for ($i = 0; $i < 5; $i++) {
for ($j = 0; $j < 5; $j++) {
printf("%s:%s ", $i+1, $j+1);
}
echo "<br />";
}


edit: to oczywiście jest przykładowy kod w php, nie js.

Ten post edytował konole 20.08.2011, 15:27:55
Go to the top of the page
+Quote Post
!*!
post 20.08.2011, 19:37:08
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


heh a jednak mam z tym problem, bo jak wyliczyć z tego 'szachownice' ?

[JAVASCRIPT] pobierz, plaintext
  1. var TileWidth = 64; // szerokość tekstury
  2. var TileHeight = 32; // wysokość tekstury
  3.  
  4. var MapWidth = 2; // szerokość mapy (liczba pól)
  5. var MapHeight = 2; // wysokość mapy (liczba pól)
  6.  
  7. for (i=0;i < MapWidth;++i)
  8. {
  9. for(j = 0; j < MapHeight; ++j)
  10. {
  11. //printf("%s:%s ", $i+1, $j+1);
  12. //$('#info').append(i+1+':', j+1);
  13. //$('#info').append(' ');
  14. //alert(i+':'+j);
  15. //alert(Math.round(Y*TileHeight/2));
  16. $('#world').append('<div style="background:url(\'tiles.png\') center center no-repeat;position:relative;top:'+Math.round(i-j*TileHeight/2)+'px;left:'+Math.round(i+j*TileWidth/2)+'px;width:'+TileWidth+'px;height:'+TileHeight+'px;">'+i+':'+j+'</div>');
  17. }
[JAVASCRIPT] pobierz, plaintext


Czyli powinno wygenerować

Kod
0,0 0,1
1,0 1,1


I właśnie tak powinny być ułożone divy obok siebie, aby wygenerować rzut izometryczny dzięki img które się w nich znajdują... jednak tak się nie dzieje.

Link do przykładu http://jsfiddle.net/yY7M3/1/

Ten post edytował !*! 20.08.2011, 19:50:33


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
konole
post 20.08.2011, 20:30:22
Post #4





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Może tutaj znajdziesz odpowiedź w źródle?

http://h1.ripway.com/qbasic010/public/isomap/isomap.html



Go to the top of the page
+Quote Post
r4xz
post 20.08.2011, 21:01:45
Post #5





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


chyba dużo tego
http://ondra.zizka.cz/stranky/programovani...-libraries.texy
http://franciscojaviernieto.es/isogame/comecocos.html (pod FF)

http://glacialflame.com/


--------------------
Go to the top of the page
+Quote Post
!*!
post 23.08.2011, 11:55:02
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


r4xz może i dużo ale nie są wystarczające, większość nie działa poprawnie pod wszytkimi przeglądarkami, albo jest po prostu kobyłą która imituje dawno wprowadzone rozwiązania choćby w html5.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
CuteOne
post 23.08.2011, 14:07:09
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var dy = 2, dx = 2, map = '';
  3.  
  4. for(var y = 0; y <= dy; y++) {
  5.  
  6. map += '<div class="mapa_row">';
  7.  
  8. for(var x = 0; x <= dx; x++) {
  9.  
  10. map += '<div class="mapa_cell">'+y+' '+x+'</div>'; // ustaw szerokość, wysokość diva i float: left (żeby się przytulały)
  11. }
  12.  
  13. map += '</div><div style="clear:both"></div>'; // clear:both gdy za bardzo chcą się przytulać ;)
  14. }
  15.  
  16. document.getElementById('conatiner').innerHTML = map;
[JAVASCRIPT] pobierz, plaintext


Tadam..

Ten post edytował CuteOne 23.08.2011, 14:08:53
Go to the top of the page
+Quote Post
!*!
post 23.08.2011, 14:46:47
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


CuteOne taki efekt uzyskałem już dawno, nakierował mnie konole - wystarczyło zmienić kilka rzeczy pod JS aby działało, co z resztą zrobiłeś podobnie (a ja podałem już link do 'działającej' wersji), chodzi o odpowiednie rozmieszczenie tych divów tak aby tworzyły rzut izometryczny http://jsfiddle.net/yY7M3/1/ czyli obliczyć +- wysokość i szerokość tile, nadać temu top i left.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
thek
post 23.08.2011, 15:03:28
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Tylko uważaj na RAm wink.gif Ja kiedyś zrobilem mapę około 6000 kafli to wcięło prawie 3GB RAM biggrin.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
!*!
post 23.08.2011, 15:09:45
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


thek od tego mam już napisaną strefę buforową, widzisz tylko to co potrzeba.

eduit, mój błąd, konole podał mi rozwiązanie http://h1.ripway.com/qbasic010/public/isomap/isomap.html jednak u siebie podałem złe wartości, teraz działa.

Ten post edytował !*! 23.08.2011, 16:09:57


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 04:40