Ejemplo n.º 1
0
    void OnGUI()
    {
        if (!started) return;

        //GUI.skin = gSkin;
        int screenW = Screen.width;
        int screenH = Screen.height;

        Room currentActiveRoom = smartFox.LastJoinedRoom;

        if ( currentActiveRoom == null ) {
            // Wait until active room has been set up in the API before drawing anything
            return;
        }

        // User list
        GUI.Box(new Rect(screenW-200, 80, 180, 170), "Users");
        GUILayout.BeginArea(new Rect(screenW-190, 110, 150, 160));
        userScrollPosition = GUILayout.BeginScrollView(userScrollPosition, GUILayout.Width(150), GUILayout.Height(130));
        GUILayout.BeginVertical();

        foreach ( User user in currentActiveRoom.UserList ) {
            GUILayout.Label(user.Name);
        }

        GUILayout.EndVertical();
        GUILayout.EndScrollView();
        GUILayout.EndArea();

        // Game room list
        GUI.Box(new Rect(screenW-200, 260, 180, 200), "Game List");
        if (smartFox.RoomList.Count != 1 ) {
            GUILayout.BeginArea(new Rect(screenW-190, 290, 150, 130));
            gameScrollPosition = GUILayout.BeginScrollView(gameScrollPosition, GUILayout.Width(150), GUILayout.Height(160));

            //roomSelection = GUILayout.SelectionGrid(roomSelection, roomStrings, 1, "RoomListButton");
            if (roomSelection>=0 && roomStrings[roomSelection] != currentActiveRoom.Name)
            {
                smartFox.Send(new JoinRoomRequest(roomStrings[roomSelection], null, smartFox.LastJoinedRoom.Id));
            }

            if ( smartFox.RoomList.Count == 1 ) { // We always have 1 non-game room - Main Lobby
                GUILayout.Label("No games available to join");
            }

            GUILayout.EndScrollView();
            GUILayout.EndArea();
        }

        if ( GUI.Button(new Rect(screenW-200, 480, 85, 24), "New game") ) {
            SFSGameSettings settings = new SFSGameSettings("TestGame");
            settings.IsPublic = true;
            settings.MaxUsers = 2;
            settings.MaxSpectators = 0;
            settings.MinPlayersToStartGame = 1;
            settings.Extension = new RoomExtension(extensionId, extensionClass);
            settings.LeaveLastJoinedRoom = true;
            smartFox.Send( new CreateSFSGameRequest(settings));
            //smartFox.Send(new CreateRoomRequest(settings, true, smartFox.LastJoinedRoom));

        /*

            SFSGameSettings settings = new SFSGameSettings("TestGame");
            settings.IsPublic = true;
            settings.MaxUsers = 4;
            settings.MaxSpectators = 0;
            settings.MinPlayersToStartGame = 2;
            settings.PlayerMatchExpression = new MatchExpression("BestScore", NumberMatch.GREATER_THAN, 100);
            settings.NotifyGameStarted = true;
            settings.LeaveLastJoinedRoom = true;

            smartFox.Send( new CreateSFSGameRequest(settings) );		*/

        }

        // Standard view
        if ( GUI.Button(new Rect(screenW-105, 480, 85, 24), "Logout") ) {
            smartFox.Send(new LogoutRequest());
        }

        // Room chat window
        GUI.Box(new Rect(10, 80, screenW-230, screenH-100), "Chat");
        chatWindow.Draw();
    }
Ejemplo n.º 2
0
    void Awake()
    {
        Application.runInBackground = true;
        Security.PrefetchSocketPolicy("127.0.0.1", 9933);

        if (SmartFoxConnection.IsInitialized) {
            sfs = SmartFoxConnection.Connection;
        } else {
            Application.LoadLevel("login");
            return;
        }

        StartGame();

            SFSGameSettings settings = new SFSGameSettings(sfs.MySelf.Name + "'s game");
            settings.IsPublic = true;
            settings.MaxUsers = 2;
            settings.MaxSpectators = 0;
            settings.MinPlayersToStartGame = 1;
            settings.Extension = new RoomExtension(extensionId, extensionClass);
            settings.LeaveLastJoinedRoom = true;
            sfs.Send( new CreateSFSGameRequest(settings));

        //StartGame();
    }