You don't need frames to view this website. Flash communication server. Flash mx xml socket server.
Home
Main Menu
Home
- - - - - - -
What is Palabre ?
Features
News
FAQ
Forum
DEMO
- - - - - - -
Downloads !
Browse SVN
- - - - - - -
Search
Contact Us
- - - - - - -
Sourceforge Project Page
Python
Links







Actionscript for Multiplayer games

 
Download Palabre Flash Xml Socket Server DOWNLOAD Download Palabre Flash Xml Socket Server FORUM Download Palabre Flash Xml Socket Server FAQ Download Palabre Flash Xml Socket Server WHAT IS IT
 



Using Palabre ? Coming here for Support ? Please consider making an (even small) donation :)
Palabre Forum  


::post new topic::
flash as3 game - 2010/06/18 08:32 Well,i`m trying to make a real time strategy game using palabre server.And for the momment i`m stuck. My idea was to send the position of the player every 20 ms and actualize it to all clients,but this seems to be not too efficient.

so ..here`s my code ..if you can help me ,please post here

Code:

  import feltopia.*; var xm:«»XMLSocket = new XMLSocket(); var players:Array = new Array(); var mapsize:int=30; var obstacles:Array = new  Array(); var startNode:Object = { _row:0_col:}; var endNode:Object = { _row:0_col:}; var tilesize:int=10; var ms:int=2; var startpointx=5; var startpointy=5; var map:Array=new Array(); map_grid.visible=false; login.usrnm_txt.text="Nume"; login.room_name.text="Room"; map=[     [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2],           [2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,1,1,1,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2],           [2,2,2,1,1,1,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2]]; obstacles=map; initMap(); var path:Array=new Array(); var i:int=0; var point:«»Point=new Point(startpointx,startpointy); function handleMainLoop(){     if (xm.connected) {             xm.send("<creaza r='"+login.room_name.text"' b='1' username='"+login.usrnm_txt.text+"'  x='"+map_grid.getChildByName(login.usrnm_txt.text).x+"' y='"+map_grid.getChildByName(login.usrnm_txt.text).y+"' />"«»);             xm.send("<muta r='"+login.room_name.text"' b='1' username='"+login.usrnm_txt.text+"' x='"+map_grid.getChildByName(login.usrnm_txt.text).x+"' y='"+map_grid.getChildByName(login.usrnm_txt.text).y+"' />"«»);             }     if ((map_grid.getChildByName(login.usrnm_txt.text).x==point.x)&&(map_grid.getChildByName(login.usrnm_txt.text).y==point.y)&&(path!=null)){     //var j:int=i;     trace(i+' 'path.length);         if (i<path.length) {             point.y=path[i]._row*tilesize+tilesize/2;             point.x=path[i]._col*tilesize+tilesize/2;             i++         }     }     Movement.moveToPoint(map_grid.getChildByName(login.usrnm_txt.text),point,2.5,true); } function MouseClick(e:MouseEvent){         startNode = { _row:«»(Math.floor((map_grid.getChildByName(login.usrnm_txt.text).y-tilesize/2)/tilesize)), _col:«»(Math.floor((map_grid.getChildByName(login.usrnm_txt.text).x-tilesize/2)/tilesize)) };          endNode= { _row:«»(Math.floor(map_grid.mouseY/tilesize)), _col:«»(Math.floor(map_grid.mouseX/tilesize)) };         trace(startNode._row+' '+startNode._col);         trace(endNode._row+' '+endNode._col);         if((obstacles[endNode._row][endNode._col]!=true)&&(obstacles[startNode._row][startNode._col]!=true)){         path PathFinder.aStar(startNodeendNodemapsizemapsizeobstaclesfalse);         if (path!=null){i=1;}} } function initMap():void{     //grid map     for (var i:int=0;i<mapsize;i++){         for (var j:int=0;j<mapsize;j++){             var myobj:tile=new tile();                 myobj.x=j*tilesize;                 myobj.y=i*tilesize;                 myobj.gotoAndStop(map[i][j]);                 map_grid.addChild(myobj);             if (map[i][j]==1){                         obstacles[i][j]=true;                         } else { obstacles[i][j]=false;                                 }         }     }     //player     /*var myplayer:«»player=new player();         myplayer.x=5;         myplayer.y=5;         myplayer.name="player";         myplayer.visible=false;         map_grid.addChild(myplayer);*/ } //serverside xm.addEventListener(Event.CONNECT onConnected); login.cnnct_btn.addEventListener(MouseEvent.CLICKonConnectClicked); xm.addEventListener(DataEvent.DATAonIncomingData); function onConnectClicked(evt:Event) {         xm.connect("localhost"2468);         } function onConnected(evt:Event) {     xm.send("<connect nickname='"+login.usrnm_txt.text+"'/>"«»);     xm.send("<join room='"+login.room_name.text+"'/>" );     xm.send("<creaza r='"+login.room_name.text"' b='1' username='"+login.usrnm_txt.text+"' x='"+startpointx+"' y='"+startpointy+"' />"«»);     login.visible=false;     map_grid.visible=true;     stage.addEventListener(MouseEvent.CLICK,MouseClick);     setInterval(handleMainLoop,20);     } function onIncomingData(event:«»DataEvent):void {         var msg:«»XML=new XMLevent.data);         if((msg.name() == "muta"«»)&&(msg.attribute("username"«»)!=login.usrnm_txt.text)) {             map_grid.getChildByName(msg.attribute("username"«»)).x=msg.attribute("x"«»);             map_grid.getChildByName(msg.attribute("username"«»)).y=msg.attribute("y"«»);         }         if((msg.name() == "creaza"«»)&&(map_grid.getChildByName(msg.attribute("username"«»))==null)&&(map_grid.getChildByName(msg.attribute("username"«»))==null)){             var myobj:«»player = new player();             myobj.name=msg.attribute("username"«»);             myobj.xmsg.attribute("x"«»);             myobj.ymsg.attribute("y"«»);             myobj.nume_player.text=msg.attribute("username"«»);             map_grid.addChild(myobj);             xm.send("<"+msg.attribute("username"«»)+" r='"+login.room_name.text"' b='1' username='"+login.usrnm_txt.text+"' x='"+map_grid.getChildByName(login.usrnm_txt.text).x+"' y='"+map_grid.getChildByName(login.usrnm_txt.text).y+"' />"«»);             }          if((msg.name() == login.usrnm_txt.text )&&(msg.attribute("username"«»)!=login.usrnm_txt.text)&&(map_grid.getChildByName(msg.attribute("username"«»))==null)){              var robj:«»player = new player();              robj.name=msg.attribute("username"«»);              robj.xmsg.attribute("x"«»);              robj.ymsg.attribute("y"«»);              robj.nume_player.text=msg.attribute("username"«»);              map_grid.addChild(robj);                  } }



path - is an array (shortest path from initialx,initialy to finx,finy , on the map ( the grid at the begining) )
  reply | quote
::post new topic::