Wątek przeniesiony 2015-02-02 10:56 z Java przez bogdans.

Chodzenie po mapie

0

cześć mam mały problem z chodzeniem po mapie o to mój skrypt :

var loading = false;
$(document).ready(function(){

$("div#l").click(function(){
send('left',8,0,1);
});
$("div#p").click(function(){
send('right',-8,0,2);
});
$("div#g").click(function(){

send('up',0,8,3);
});
$("div#d").click(function(){
send('down',0,-8,0);
});
$("div#oHero").click(function(){
});

$(document).keydown(function (event) {
if(event.keyCode==65 && chatmode==0){send('left',8,0,1);}
if(event.keyCode==87 && chatmode==0){send('up',0,8,3);}
if(event.keyCode==68 && chatmode==0){send('right',-8,0,2);}
if(event.keyCode==83 && chatmode==0){send('down',0,-8,0);}	
});
});

function send(page,ox,oy,direction){
if(loading) return false;
loading = true;
$.ajax({
type: "POST",
url: "system/idz.php",
data:"move="+page,
success : function (msg){
loading = false;
if (msg){
$('#oMap').css("background-image","url("+msg+")");
setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(0,"+direction+");",10);
setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(1,"+direction+");",20);
setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(2,"+direction+");",30);
setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(3,"+direction+");",40);
setTimeout("animation(0,"+direction+");",50);
}

}
});
}

function map_poz(x,y){
$("#oMap").css("background-position", x+"px "+y+"px");
}
function animation(cage,direction){
$("#oHero").css("background-position",(-cage*32)+"px "+(-direction*48)+"px");
}

chodzi mi o limit postaci szybkości chodzenia mniej wiecej jak mogę ograniczyć szybkość postaci

0

Chodzenie po mapie... pierwsze co mi sie nasuwa na mysl to, ze robisz jakas gre. Patrze w kod... nie, niemozliwe... gra online czyli pewnie ma byc w miare mozliwosci wydajna i real time zrobiona przy uzyciu stricte elementow DOM i PHP? Nie to na pewno nie chodzi o gre.
Jesli jednak sie myle i rzeczywiscie robisz gre to polecam zastosowac takie takie technologie:

  • pixi.js
  • nodeJS z socket.io
    Dzialamy wtedy w oparciu o serwer ktory odpowiada nam na biezaco z technologia canvas na ktorej operuje pixi.js a wiec mamy grafike renderowana na zywo (w tym przypadku nawet w oparciu o webgl) co znacznie zwieksza plynnosc gry i zmniejsza zuzycie zasobow, wbrew pozorom operacje DOM nie sa wcale tanie.
    Co do trzymania sie ustalonej predkosci gracza to polecam zainteresowac sie time based rendering zeby nie uzalezniac sie od specyfikacji sprzetowej uzytkownika.

W razie jakchs pytan / watpliwosci pisz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1