Smart fox簡報

1,527 views

Published on

Published in: Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,527
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Smart fox簡報

  1. 1. 主講人 :Jones
  2. 2. 先來介紹遊戲吧~~
  3. 3. 還是 呢
  4. 5. SF S 主要功能介紹 ‧ 專門為 Adobe Flash 設計的 Socket Server ‧ 主打多人線上遊戲 ‧ JAVA BASE 開發
  5. 6. SF S 支援 ‧ CLIENT 端 AS 支援 AS1, AS2, AS3 ‧ 作業系統支援 Windows, MacOS, Linux ‧ 其他程式語言
  6. 7. SF S 優點 ‧ 便宜 , 簡單 , 又好用
  7. 8. SF S 價錢與分類 ‧ 上限 20 人 試用版免費 ‧ 上限 100 人 500 € ( 歐元 ) = 20500$( 台幣 ) ‧ 上限 500 人 1000 € ( 歐元 ) = 41000$( 台幣 ) ‧ 無上限 2000 € ( 歐元 ) = 82000$( 台幣 ) 主機夠強再說 ‧ Flash Media Server 4500(USD) = 144000( 台幣 )
  8. 9. SF S 架構
  9. 11. SF S 管理者介面
  10. 12. SF S AS3 API 功能概略 it.gotoandplay.smartfoxserver Classes -SmartFoxClient -SFSEvent it.gotoandplay.smartfoxserver.data Classes -Room -User
  11. 13. 不來梅大亂鬥程式概述
  12. 14. config.xml 設定 <SmartFoxConfig> <ServerSetup> <ServerIP>*</ServerIP> <ServerPort>9339</ServerPort> …………… </ServerSetup> <Zones> <Zone name=&quot;bomberman&quot; emptyNames=&quot;true&quot;> <Rooms> <Room name=&quot;Chicken&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Cat&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Dog&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot; /> <Room name=&quot;Donkey&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Lobby&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> </Rooms> <Zone> <Zones> </SmartFoxConfig>
  13. 15. 登入 import it.gotoandplay.smartfoxserver.* var sfs:SmartFoxClient = new SmartFoxClient(); sfs.addEventListener(SFSEvent.onConnection, onConnectionHandler) sfs.addEventListener(SFSEvent.onLogin, onLoginHandler) sfs.connect(&quot;127.0.0.1&quot;,9339); function onConnectionHandler(e:SFSEvent){ if (e.params.success){ trace(&quot; 連線成功 &quot;); sfs.login (&quot;bomberman&quot; , &quot;myName&quot;,&quot;&quot;);// 登入 }else{ trace(&quot; 連線失敗 &quot;); } } function onLoginHandler(e:SFSEvent){ trace(&quot; 登入成功 &quot;); }
  14. 16. 房間選擇 Event Ex:sfs.addEventListener( 偵聽事件 , 函式 ) SFSEvent.onRoomListUpdate  當房間列表更新 SFSEvent.onUserCountChange  當玩家數量更新 SFSEvent.onJoinRoom  當自己進入某房間 SFSEvent.onUserEnterRoom  當有人進來我房間 SFSEvent.onJoinRoomError  當自己進入某房間失敗 SFSEvent.onUserLeaveRoom  當有人從我房間離開 SFSEvent.onRoomAdded  當新房間建立 SFSEvent.onRoomDeleted  當新房間移除 SFSEvent.onCreateRoomError  當新房間建立失敗 SFSEvent.onConnectionLost  當連線失效時 SFSEvent.onObjectReceived  當有人傳送 Object 給大家 SFSEvent.onUserVariablesUpdate  當玩家參數變更 ( 座標位置 , 屬性 , 等等等字串 ) sfs.getRoomList();// 取得房間列表 sfs.joinRoom(RoomID);// 進入房間 容易混淆
  15. 17. 人物移動 sfs.addEventListener( SFSEvent.onUserVariablesUpdate , getVariables) function getVariables(evt:SFSEvent) { var mcName=evt.params.user.getName(); var mc=this.getChildByName(mcName); mc.x=int(evt.params.user.getVariable(&quot;px&quot;)); mc.y=int(evt.params.user.getVariable(&quot;py&quot;)); } var posi:Object = new Object(); posi.px=mc.x; posi.py=mc.y; sfs.setUserVariables(posi); 移動
  16. 18. 炸彈爆炸 sfs.addEventListener( SFSEvent.onRoomVariablesUpdate ,getRoomVariables); function getRoomVariables (evt:SFSEvent):void { for (var v:String in changedVars) { if(v == &quot; bombfire&quot;) zone=JSON.decode(evt.params.room.getVariable(v)); ……………… } } } var mcobj:Object=new Object(); mcobj.power=2; mcobj.px=bomb.x; mcobj.py=bomb.y; mcobj.name=mc.name; var mcstr:String=JSON.encode(mcobj); var mcVars:Array = new Array(); mcVars.push({ name:“bombfire&quot;, val:mcstr }); sfs.setRoomVariables( mcVars );
  17. 19. Thank you !

×