Autor Zpráva
david2097
Profil
Chtěl bych si udělat mapu která se bude moct posunovat myší
př.google mapy

ne nejsem nováček který umí sotva napsat nadpis v html


Dělám online hru a chtěl bych se vyhnout určitým problémům a tak mě napadlo ( spíše jsem se inspiroval ve hře "Forge of Empires" )
že si to udělám nějak podobně to znamená udělat si okno ve kterém bude velký obrázek kterým budu moct posunovat
p.s. pokud někdo nepochopil skusím to vysvětlit znova (až to ten dotyčný napíše )
Fisak
Profil
<style type="text/css">
.presun_mne    {position:relative; cursor:move;}
</style>
 
<script type="text/javascript">
var nn6 = document.getElementById && !document.all;
var x,y,presun_objektX,presun_objektY;
var presun_class   = 'presun_mne';
var presun_objekt  = null;    // aktualni presunovany objekt
var presun_objekt2 = null;    // predchozi presunovany objekt. kvuli nastaveni z-indexu
 
function presunPohyb(udalost)    //mousemove
{
if (presun_objekt!=null)
    {
    presun_objekt.style.left = presun_objektX + (nn6 ? udalost.clientX - x : event.clientX - x) + "px";
    presun_objekt.style.top  = presun_objektY + (nn6 ? udalost.clientY - y : event.clientY - y) + "px";
    return false;                            // zablokuj udalost
    }
return true;
}
 
function presunSpust(udalost)        //mousedown
{
var objekt      = nn6 ? udalost.target : event.srcElement;            // ziskej objekt, na ktery se kliklo
var top_element = nn6 ? "HTML" : "BODY";
while (objekt.className!=presun_class && objekt.tagName!=top_element)    // opakuj, dokud se nedostanes na tag HTML/BODY nebo na objekt s class rovnajici se hodnote v presun_class
    {
    objekt = nn6 ? objekt.parentNode : objekt.parentElement;
    }
if (objekt.className==presun_class)
    {
    presun_objekt  = objekt;
    presun_objekt.style.zIndex = 10;
    presun_objektX = parseInt(presun_objekt.style.left + 0);    // ziskej aktualni souradnice objektu
    presun_objektY = parseInt(presun_objekt.style.top  + 0);
    x = nn6 ? udalost.clientX : event.clientX;                // ziskej aktualni polohu mysi
    y = nn6 ? udalost.clientY : event.clientY;
    return false;                            // zablokuj udalost
    }
return true;
}
 
function presunZastav(udalost)    //mouseup
{
if (presun_objekt2!=null)
    {
    presun_objekt2.style.zIndex = 1;
    }
if (presun_objekt!=null)
    {
    presun_objekt.style.zIndex  = 2;
    }
presun_objekt2 = presun_objekt;
presun_objekt  = null;
return true;
}
 
// presmeruj funkce mysi z dokumentu na moje
document.onmousedown = presunSpust;
document.onmousemove = presunPohyb;
document.onmouseup   = presunZastav;
 
</script>
<div class="presun_mne"><a href="http://seznam.cz"><img src="./themes/web/cs/default/images/facebook.png"></a></div>
ten poslední řádek bude obsahovat obrázky mapy
Taurus
Profil
Zadej si inzerát v sekci Práce a zakázky..
david2097
Profil
díki moc Fisak
a Taurus ty jsi mi radost neudělal
:D
Fisak
Profil
david2097:
no neni to moje práce jen sem to taky hledal a našel sem toto ... funguje to až na pár drobností .. jako např. odkazy nevim jak udělat aby při posunu se nespustili a nebo taky mi nějak nechtěj ty obrázky přesáhnout kraj prohlížeče a vždy se zařádkuje..
david2097
Profil
hm povšimnul jsem si


náhodou není jiná možnost nějaká spolehlivější
možná php a jquery
Fisak
Profil
PHP pracuje se serverem nikoli s prohlížečem.. takže s php to neuděláš a s jquery uděláš to samý co s JS :-)
david2097
Profil
to jo ale já bych ještě potřeboval abych mohl na to mapu
např. jen v některých částech obrázku mít odkaz a tam by se otevřel panel s výběrem kde by sis mohl vybrat co chceš do mapy dát a kam přesně


př. nějaká hra vybereš si budovu postavíš jí sem a sem dáš cest atd...


pokud máš nápad tak mi napiš mě popravdě nic nenapadá
Fisak
Profil
Určitě by to šlo :-) uděláš si div někde kde to chceš mít a když na ten div klikne uživatel otevřese mu pop up okno nebo prostě jednoduše vyskakovací okno pomocí js.. tamm si vybereš co chceš uděláš se nějaká akce okno se zvře stránka se aktualizuje ...
david2097
Profil
nj
ale já bych chtěl prostě mapu a tam bys sis mohl vzít z toho menu nějakou budovu a umístit jí tam kam chceš (třeba doprava nebo doleva)
a samozřejmě by se ta pozice ukládala do databáze MySql
už chápeš?


tak hale mě osobně by se mi líbila ta mapa ale dokážu to i jinak ale (zase ale) je v tom jeden háček
vypadá to hrozně a dlouho se to načítá (to hráč neocení)
a to by s divem či tabulkou šlo ale jak sem řek hráč by to neocenil


proto se snažim o nějakou plochu s kterou by hráč mohl hýbat a zároveň dávat budovy na různá místa a v těch budovách vyrábět vojáky a s těma vojákama útočit na nepřátele atd...


prostě hra
http://cz1.forgeofempires.com/game/index


nemyslím si že něco takového udělám ale něco podobného
Nox
Profil
Heh, vy mu to tu celé naprogramujete :)
Fisak
Profil
Nox:
Já totiž taky dělám hru a zrovna sem dělal mape creator takže sem to taky využil.. a jinak nenaprogramoval sem to já stačí hledat.. mohl sem mu hodit odkaz ale tak to je jedno jestli mu pošlu kod nebo odkaz na manuál :-)
1Pupik1989
Profil
Já zase měl div s relativním pozicováním a přes php jsem z db generoval obrázek. Pokud už vygenerovaný byl, tak jsem ho akorát načetl. Obrázek byl samozřejmě absolutně pozicovaný. Pak stačilo jen pohybovat se všemi obrázky najednou. Jak to udělám teď nevím, v canvasu to už moc sranda není.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: