読んでくれてありがとう。私は過去 2 週間、これを理解しようとしてきました。徹底的に調査しており、それらを組み合わせる方法を知る必要があるだけの部品がたくさんあります。
だから私はフラッシュとsmartfoxserver proを使っています。
人々がゲームをホストし、マッチを探すことができるロビーを作成したいと思います。
ターン制のRPGなので、プレイヤーのランクやレベルで並べ替えられるようにしたいです。
私がやりたいことは、現在試合を待っているプレーヤーを保持する配列を作成することです。
私はこれでそれを行うことができます
smartfox.onRoomListUpdate = function(roomList:Object)
{
roomList_lb.removeAll()
_global.roomlist = roomList;
for (var i:String in roomList)
{
var room:Room = roomList[i]
if (room.isGame())
{
_root.userArray.push([room.getId(),room.getName(),_global.monLev]);
createPlayerCard("playerCard",200*quicknum,100+ynum,room.getName(),200, room.getId());
quicknum+=300;
}
}
roomList_lb.sortItemsBy("label", "ASC")
}
前に示した関数で作成したグローバル roomlist 変数を使用して、onJoinRoom で roomList 情報を取得することもできました。
ルームリストから作成されたルームオブジェクト内でユーザーを循環させることはできますか?
私は試した
smartfox.onJoinRoom = function(roomObj:Room)
{
if (roomObj.isGame())
{
trace("_________________________joining room");
_global.myID = this.playerId;
var roomid:Number = roomObj.getId();
sendValues()
trace("room id "+roomid);
}
else
{
trace("roomlist "+_global.roomlist);
for (var i:String in _global.roomlist)
{
trace("lookign in");
var room:Room = _global.roomlist[i]
if (room.isGame())
{
trace(room.getName() + " (" + room.getUserCount() + "/" + room.getMaxUsers()+ ")-(" + room.getSpectatorCount() + "/" + room.getMaxSpectators() )
var roomId:Number = room.getId()
var userList:Object = room.getUserList()
for (var i:String in userList)
{
var user:User = userList[i]
var uName:String = user.getName()
var uId:Number = user.getId()
trace(uName + " " + uId)
}
}
}
}
}
このようにして、ランク、レベル、おそらくアバター画像を含む roomlist ルーム オブジェクト内からユーザー変数を取得できると考えていました。次に、部屋のID、番号、名前などを保存し、このすべての情報と決闘ボタンを表示する素敵なムービークリップを作成します. 次に、人々が決闘を押すと、相手が試合を待っている部屋に行くことがすでにわかっています。
明確にするために、これは私の初めての投稿なので、フォーマットの問題を許してください。もう一度読んでくれてありがとう、そして助けてくれてありがとう!