php js ajax z kanvasem

0

W programowaniu webowym jestem nowy. Chcę zrobić grę przeglądarkową, dla wielu graczy. Pomyślałem że wpierw zrobię test, w którym
kilka osób będzie mogło zaznaczać kółka na canvasie i nie działa oto kod

<html>
  <head>
   
    <title>AJAX TEST 1</title>

  </head>
  <body onLoad='process();'>
    <canvas id="canvas" width="500" height="500">
      Twoja przeglądarka nie obsługuje elementu canvas standardu HTML5.
    </canvas>
    <br/>
    <script type = "text/javascript">
    //ajj=new XMLHttpRequest();
	var canwas = document.getElementById("canvas");
	var ctx = canwas.getContext('2d');
	var cw=500;
	var ch=500;
	var pw=cw/4;
	var ph=cw/4;
	var tablica;
	   xmlhttp=new XMLHttpRequest();
 
	function drawkolko(x,y,b){
	if(b)
	ctx.strokeStyle = "rgb(200, 0, 0)";
	else 
	ctx.strokeStyle = "rgb(255, 255, 255)";
	  
      ctx.arc(x*pw+pw/2, y*ph+ph/2, 50, 0, Math.PI * 2, true);
      ctx.stroke();
     
	}
		xmlhttp.onreadystatechange=function() {
    	if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      	tablica=xmlhttp.responseText;
      	
      	for(i=0;i<4;i++)
      		for(j=0;j<4;j++)
      		{
      			drawkulko(i,j,tablica[i*4+j];
      		}
      
    }
	function klik(ev){
	var mx;
        var my;
        if ( ev.layerX || ev.layerX == 0) { // Firefox
          mx = ev.layerX;
          my = ev.layerY;
        } else if (ev.offsetX || ev.offsetX == 0) { // Opera
          mx = ev.offsetX;
          my = ev.offsetY;
        }
        var x= Math.floor(mx/pw);
        var y= Math.floor(my/ph);
 
 
  
    
  
  xmlhttp.open("GET","pehap.php?x="+x+"?y="+y,true);
  xmlhttp.send();
        
	}
	    
     function process(){
  xmlhttp.open("GET","pehap.php?x="+"-1"+"?y="+"-1",true);
  xmlhttp.send(); 
  setTimeout('process()', 500);

}

    </script>    
  </body>
</html>
 

oto plik pehap.php

<?php
$x = $_REQUEST['x'];
$y = $_REQUEST['y'];

//get content of textfile
$filename = "tablica.txt";
$tablica = file($filename);
if(x== -1) echo"$tablica";
else{
if(tablica[y*4+x]==1)tablica[y*4+x]=0;
else
tablica[y*4+x]=1;

$insertvote = tablica;
$fp = fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
}
?> 

co mam robić będę wdzięczny za pomoc

0

Jakieś błędy w konsoli przeglądarki ?
PS. używanie plików w tym celu to pomysł fatalny, a żądania ajaksowe do gier real time z wieloma graczami tym bardziej. Poczytaj lepiej o web socketach.

0

Jednak czy web sockety nie komunikują się między komputerami klientów a co jeśli to jest gra trochę w stylu MMO i dane muszą współpracować z serwerem

0

WebSocket is designed to be implemented in web browsers and web servers, but it can be used by any client or server application.

https://en.wikipedia.org/wiki/WebSocket

0

Powiedzcie mi proszę czy kiedy używam ajax to nie mogę używać canvasa bo już 2 raz mam tak że nie działa mi canvas nawet jeśli coś niezależnie rysuje

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