smart fox簡報

19
主主主 :Jones

Upload: jones-yu

Post on 27-May-2015

1.423 views

Category:

Design


4 download

TRANSCRIPT

Page 1: Smart fox簡報

主講人 :Jones

Page 2: Smart fox簡報

先來介紹遊戲吧~~

Page 3: Smart fox簡報

還是 呢

Page 4: Smart fox簡報
Page 5: Smart fox簡報

SFS 主要功能介紹‧專門為 Adobe Flash設計的 Socket Server‧主打多人線上遊戲

‧JAVA BASE 開發

Page 6: Smart fox簡報

SFS 支援

‧CLIENT端 AS 支援 AS1, AS2, AS3

‧作業系統支援 Windows, MacOS, Linux

‧其他程式語言

Page 7: Smart fox簡報

SFS 優點

‧便宜 , 簡單 , 又好用

Page 8: Smart fox簡報

SFS 價錢與分類‧上限 20 人 試用版免費

‧上限 100人 500€ ( 歐元 ) = 20500$(台

幣 )

‧上限 500人 1000€ ( 歐元 ) = 41000$(台

幣 )

‧無上限 2000€ (歐元 ) = 82000$(台幣 )主機夠強再說

‧Flash Media Server 4500(USD) = 144000(台

幣 )

Page 9: Smart fox簡報

SFS 架構

Page 10: Smart fox簡報
Page 11: Smart fox簡報

SFS 管理者介面

Page 12: Smart fox簡報

SFS AS3 API功能概略it.gotoandplay.smartfoxserverClasses -SmartFoxClient-SFSEvent

it.gotoandplay.smartfoxserver.dataClasses -Room -User

Page 13: Smart fox簡報

不來梅大亂鬥程式概述

Page 14: Smart fox簡報

config.xml設定<SmartFoxConfig> <ServerSetup>

<ServerIP>*</ServerIP><ServerPort>9339</ServerPort>

…………… </ServerSetup> <Zones> <Zone name="bomberman" emptyNames="true">

<Rooms> <Room name="Chicken" maxUsers="4" isPrivate="false" isTemp="false" autoJoin="true"/> <Room name="Cat" maxUsers="4" isPrivate="false" isTemp="false" autoJoin="true"/> <Room name="Dog" maxUsers="4" isPrivate="false" isTemp="false" autoJoin="true" /> <Room name="Donkey" maxUsers="4" isPrivate="false" isTemp="false" autoJoin="true"/> <Room name="Lobby" maxUsers="4" isPrivate="false" isTemp="false" autoJoin="true"/> </Rooms> <Zone> <Zones></SmartFoxConfig>

Page 15: Smart fox簡報

登入import it.gotoandplay.smartfoxserver.*

var sfs:SmartFoxClient = new SmartFoxClient();sfs.addEventListener(SFSEvent.onConnection, onConnectionHandler)sfs.addEventListener(SFSEvent.onLogin, onLoginHandler)sfs.connect("127.0.0.1",9339);

function onConnectionHandler(e:SFSEvent){if (e.params.success){

trace("連線成功 ");sfs.login("bomberman", "myName","");//登入

}else{trace("連線失敗 ");

}}

function onLoginHandler(e:SFSEvent){trace("登入成功 ");

}

Page 16: Smart fox簡報

房間選擇 EventEx: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);//進入房間

容易混淆

Page 17: Smart fox簡報

人物移動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("px"));mc.y=int(evt.params.user.getVariable("py"));

}

var posi:Object = new Object();posi.px=mc.x;posi.py=mc.y;sfs.setUserVariables(posi);

移動

Page 18: Smart fox簡報

炸彈爆炸sfs.addEventListener(SFSEvent.onRoomVariablesUpdate,getRoomVariables);function getRoomVariables (evt:SFSEvent):void { for (var v:String in changedVars) { if(v == " bombfire")

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", val:mcstr });sfs.setRoomVariables( mcVars );

Page 19: Smart fox簡報

Thank you!