Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема созданием игры!измениия координат кубика у всех игроков (https://javascript.ru/forum/dom-window/27872-problema-sozdaniem-igry-izmeniiya-koordinat-kubika-u-vsekh-igrokov.html)

l-liava-l 27.04.2012 19:26

Проблема созданием игры!измениия координат кубика у всех игроков
 
Доброго времени суток!
Пишу игру, нужно чтобы 'кубики' которые перетаскивает один игрок с помощью drag and drop перетаскивались у всех других игроков.
Засовываю координаты в бд:
$().ready(function() {
$('li').Drags();
setInterval(function () {
var c =[$('.1').css('left'),$('.1').css('top')];
var r =[$('.2').css('left'),$('.2').css('top')];
var i =[$('.3').css('left'),$('.3').css('top')];
var bukv = [c,r,i];//Создаю двумерный массив с кубиками (использую далее только массив 'C')
var a = JSON.stringify(bukv);

    $.ajax({
      url: 'saveBD.php',
      type: 'POST',
      data: 'a='+ a,
      success: function(result) {
      $('#result').html(result);
      }
	  });
  },10);//передаем координаты кубиков в php файлик а от туда в бд

});
<?php
$db = mysql_connect('localhost','root','');//связываемся с сервером
mysql_select_db('lphp',$db);//выбираем бд
$json = $_POST['a'];//принимаем массив  json
$a = json_decode($json,true);//декодируем json
$xyK1 = mysql_query('SELECT * FROM 1kyb',$db);//выбираем все данные из таблицы бд
$xyK1 = mysql_fetch_array($xyK1);//пихаем их в массив
$xyK1[1] = $a[0][0];
$xyK1[2] = $a[0][1];//кидаем в бд координаты элементов из полученного json-ом массива
$xk1 = $xyK1[1];
$yk1 = $xyK1[2];
$result = mysql_query("UPDATE `lphp`.`1kyb` SET `x` = '$xk1',
`y` = '$yk1 '" ,$db);//обновляем бд?>

А вот дальше туплю, и не могу информацию стоящую по теме найти:-E
Пробовал сет интервалом css менять нефига. запускаю в двух браузерах, если чуть чуть подвинуть кубик, то он начинает 'телепортироваться' то по координатам одного браузера то другого.(а нужно чтобы при изменении в одном менялись и в другом на такие же как в первом)
Фигня код:
$db = mysql_connect('localhost','root','');//связываемся с сервером
$xyK1 = mysql_query('SELECT * FROM 1kyb',$db);//выбираем все данные из таблицы бд
$xyK1 = mysql_fetch_array($xyK1);//пихаем их в массив
mysql_select_db('lphp',$db);//выбираем бд
$xyK1 = mysql_query('SELECT * FROM 1kyb',$db);//выбираем все данные из таблицы бд
$xyK1 = mysql_fetch_array($xyK1);//пихаем их в массив
$json = json_encode($xyK1);// опять кодируем в json
echo "<script language='javascript'>\n";
echo "var json = $json;\n"; // отправляем в js
echo "</script>";

setInterval(function(){
$('.1').css({'left': json[1], 'top':json[2]});
},1000);

Кто знает как проблему решить подскажите логику или ссылку на статью по теме дайте. Пожалуйста!
Заранее благодарю.

Маэстро 28.04.2012 14:16

Цитата:

Сообщение от l-liava-l
а нужно чтобы при изменении в одном менялись и в другом на такие же как в первом

"Первый" браузер (в котором Вы двигаете кубик) не знает, что он первый, также как и второй не знает, что он второй. И первый, и второй, и третий.. браузеры равнозначны и все они одинаково шлют запросы на сервер и получают обратно массив координат кубиков. В общем случае в первом браузере Вы можете не успеть сдвинут кубик, как его положение восстановится по ответу с сервера. Поэтому прежде всего надо каким-то образом определять, что один из браузеров ведущий, а остальные ведомые.

l-liava-l 29.04.2012 18:09

Цитата:

Поэтому прежде всего надо каким-то образом определять, что один из браузеров ведущий, а остальные ведомые.
Да, но разве тогда не получится так, что всем заведует один браузер? а нам так не надо. я пробовал отправлять координаты только по зажатию мыши, но всеравно не получается.

dmitriymar 29.04.2012 19:34

последовательные ходы. каждому отводится какое то время,дальше ход переходит к следующему

l-liava-l 29.04.2012 20:47

да действительно то что хотел сделать пока что нереально.:-?,
А как можно сделать выборку Всех символов вводимых textarea случайно не занете(можно ли вообще такое)? буду очень признателен!

Маэстро 07.05.2012 11:45

Цитата:

Сообщение от l-liava-l (Сообщение 171964)
А как можно сделать выборку Всех символов вводимых textarea случайно не занете(можно ли вообще такое)?

Чтобы получить весь текст из textarea, надо обратиться к его свойству value. Если же Вы хотите ловить буквально каждый символ по отдельности, то надо ставить обработчики событий на onkeypress и onkeydown, а также ловить события вставки в textarea с помощь мыши и т.д.


Часовой пояс GMT +3, время: 11:49.