Witam, mam problem ze skryptem poruszanie się, skrypt bardzo szybko się porusza i nie reaguje na blokade przejscia. Postać płynie po mapie, kolega podpowiedział ze jest problem z obliczaniem pozycji lecz ja na nic nie wpadłem. Chcę aby płynnie wszystko się poruszało.

div-map.php

  1. <?php
  2. require_once('../php/mysql-connect.php');
  3.  
  4. $ajax_txt = "";
  5.  
  6. $poz_x = ((-$postac['x']) * 32) + 240;
  7. $poz_y = ((-$postac['y']) * 32) + 240;
  8.  
  9. $ajax_txt .= "".$poz_x."px ".$poz_y."px";
  10.  
  11. echo $ajax_txt;
  12. ?>


js:

  1. <script>
  2. function wyslij(strona,ox,oy,kierunek){
  3. $.ajax({
  4. type: "POST",
  5. url: "js/idz.php",
  6. data:"move="+strona,
  7. success: function(msg){
  8. if(msg){
  9. $('#oMap').css("background-image","url("+msg+")");
  10. setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(0,"+kierunek+");",100);
  11. setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(1,"+kierunek+");",200);
  12. setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(2,"+kierunek+");",300);
  13. setTimeout("map_poz(x+="+ox+",y+="+oy+");animation(3,"+kierunek+");",400);
  14. setTimeout("animation(0,"+kierunek+");",500);
  15. }
  16.  
  17. }
  18. });
  19.  
  20. function map_poz(x,y){
  21. $("#oMap").css("background-position", x+"px "+y+"px");
  22. }
  23.  
  24. function animation(klatka,kierunek){
  25. $("#oHero").css("background-position",(-klatka*32)+"px "+(-kierunek*48)+"px");
  26. }
  27. </script>

idz.php
  1. <?php
  2. require_once('../php/mysql-connect.php');
  3. require_once('../php/load-data.php');
  4.  
  5. if($postac['zycie'] > 0){
  6. $teleport = mysql_fetch_array(mysql_query("select * from mapa_przenies where mapa = ".$postac['mapa']." and x = ".$postac['x']." and y = ".$postac['y']." limit 1"));
  7.  
  8. if($_POST['move'] == 'lewo'){
  9. $npcblock = mysql_fetch_array(mysql_query("select * from npc where mapa = ".$postac['mapa']." and x = ".($postac['x'] - 1)." and y = ".$postac['y']." limit 1"));
  10. $npcblock2 = mysql_fetch_array(mysql_query("select * from mob where mapa = ".$postac['mapa']." and x = ".($postac['x'] - 1)." and y = ".$postac['y']." and respawn <= ".$czas_ogolny." limit 1"));
  11. $blokada = mysql_fetch_array(mysql_query("select * from blokadaprzejscia where mapa = ".$postac['mapa']." and x = ".($postac['x'] - 1)." and y = ".$postac['y']." limit 1"));
  12. if((empty($npcblock)) && (empty($blokada)) && (empty($npcblock2))){
  13. mysql_query("update postac set x = x - 1 where id = ".$postac['id']." and x > 0 limit 1");
  14. $postac['x'] -= 1;
  15. echo $mapa['obrazek'];
  16. }
  17. }
  18.  
  19. if($_POST['move'] == 'prawo'){
  20. $npcblock = mysql_fetch_array(mysql_query("select * from npc where mapa = ".$postac['mapa']." and x = ".($postac['x'] + 1)." and y = ".$postac['y']." limit 1"));
  21. $npcblock2 = mysql_fetch_array(mysql_query("select * from mob where mapa = ".$postac['mapa']." and x = ".($postac['x'] + 1)." and y = ".$postac['y']." and respawn <= ".$czas_ogolny." limit 1"));
  22. $blokada = mysql_fetch_array(mysql_query("select * from blokadaprzejscia where mapa = ".$postac['mapa']." and x = ".($postac['x'] + 1)." and y = ".$postac['y']." limit 1"));
  23. if((empty($npcblock)) && (empty($blokada)) && (empty($npcblock2))){
  24. mysql_query("update postac set x = x + 1 where id = ".$postac['id']." and x < ".$mapa['maks_x']." limit 1");
  25. $postac['x'] += 1;
  26. echo $mapa['obrazek'];
  27. }
  28. }
  29.  
  30. if($_POST['move'] == 'gora'){
  31. $npcblock = mysql_fetch_array(mysql_query("select * from npc where mapa = ".$postac['mapa']." and x = ".$postac['x']." and y = ".($postac['y'] - 1)." limit 1"));
  32. $npcblock2 = mysql_fetch_array(mysql_query("select * from mob where mapa = ".$postac['mapa']." and x = ".$postac['x']." and y = ".($postac['y'] - 1)." and respawn <= ".$czas_ogolny." limit 1"));
  33. $blokada = mysql_fetch_array(mysql_query("select * from blokadaprzejscia where mapa = ".$postac['mapa']." and x = ".$postac['x']." and y = ".($postac['y'] - 1)." limit 1"));
  34. if((empty($npcblock)) && (empty($blokada)) && (empty($npcblock2))){
  35. mysql_query("update postac set y = y - 1 where id = ".$postac['id']." and y > 0 limit 1");
  36. $postac['y'] -= 1;
  37. echo $mapa['obrazek'];
  38. }
  39. }
  40.  
  41. if($_POST['move'] == 'dol'){
  42. $npcblock = mysql_fetch_array(mysql_query("select * from npc where mapa = ".$postac['mapa']." and x = ".$postac['x']." and y = ".($postac['y'] + 1)." limit 1"));
  43. $npcblock2 = mysql_fetch_array(mysql_query("select * from mob where mapa = ".$postac['mapa']." and x = ".$postac['x']." and y = ".($postac['y'] + 1)." and respawn <= ".$czas_ogolny." limit 1"));
  44. $blokada = mysql_fetch_array(mysql_query("select * from blokadaprzejscia where mapa = ".$postac['mapa']." and x = ".$postac['x']." and y = ".($postac['y'] + 1)." limit 1"));
  45. if((empty($npcblock)) && (empty($blokada)) && (empty($npcblock2))){
  46. mysql_query("update postac set y = y + 1 where id = ".$postac['id']." and y < ".$mapa['maks_y']." limit 1");
  47. $postac['y'] += 1;
  48. echo $mapa['obrazek'];
  49. }
  50. }
  51. }
  52. echo false;
  53. ?>