gameNetwork.show()

类型 函数
gameNetwork.*
修订 发布 2024.3703
关键字 gameNetwork,Game Center
另请参见 gameNetwork.init()
gameNetwork.request()

概述

向用户显示所请求的游戏网络信息。

语法

gameNetwork.show( command [, params ] )
command (必需)

String. Game Center 支持的 String 值。

  • "leaderboards"
  • "achievements"
  • "friendRequest"
  • "matches"
  • "createMatch"
params (可选)

Table. Game Center 允许的参数表 — 有关详细信息,请参阅下一部分。

参数参考

根据指定的 command 参数,params 表的内容会有所不同。

侦听器函数

对于对 gameNetwork.show() 的所有调用,params 表支持一个 listener 键,其值作为回调函数来监视调用结果,例如

gameNetwork.show( "achievements", { listener=showAchievements } )

成就

对于 "achievements"command 参数,此函数会显示玩家对于此应用程序完成的成就。

gameNetwork.show( "achievements", { listener=showAchievements } )

排行榜

对于 "leaderboards"command 参数,"leaderboard"params 表中的可选键,它反过来会接受另一个表。此表可能包含以下可选键

  • "category" — 要显示的排行榜。
gameNetwork.show( "leaderboards",
    {
        leaderboard = {
            category = "com.appledts.EasyTapList"
        },
        listener = showLeaders
    }
)

好友请求

对于 "friendRequest"command 参数,params 表可能包含以下可选键

  • message — 用自定义文本预填充消息字段的 String 值。

  • playerIDs — 表示要向其发送好友请求的 Game Center 玩家 ID 的字符串数组。

  • emailAddresses — 表示要向其发送好友请求的玩家电子邮件地址的字符串数组。

local parameters = {
    message = "Be my friend please",
    playerIDs = { "G:194669300", "G:1435127232" },
    emailAddresses = { "[email protected]" },
    listener = requestFriends
}
gameNetwork.show( "friendRequest", parameters )

请注意,玩家 ID 和电子邮件地址的总数不得超过 Game Center 的最大限制,否则操作系统会引发异常。你可以通过调用 gameNetwork.request( "loadFriendRequestMaxNumberOfRecipients" ) 来读取此限制。

比赛

对于 "matches"command 参数,此函数会显示当前/正在进行的比赛,并且允许玩家在同一界面屏幕中创建新的比赛。params 表中接受以下键

  • minPlayers — 指定多人游戏中玩家最小数量的数字。

  • maxPlayers — 指定多人游戏中玩家最大数量的数字。

  • playerGroup — 用于自动匹配的任意数字,仅限于其匹配请求共享相同数字的玩家。将此属性设置为 0 允许玩家自动匹配到任何等待匹配中。

  • playerAttributes — 指定本地玩家希望在游戏中扮演角色的面具。

local parameters = {
    minPlayers = 2,
    maxPlayers = 3,
    playerGroup = 0,
    playerAttributes = { 1, 4, 6 },
    listener = showMatches
}
gameNetwork.show( "matches", parameters )

创建比赛

对于 "createMatch"command 参数,此函数将显示游戏中心界面屏幕,允许玩家创建/管理比赛。在 params 表中接受以下密钥

  • playerIDs — 可选的字符串数组,表示最初邀请到比赛的玩家 ID。

  • minPlayers — 在比赛中需要的最小玩家数量的可选值。

  • maxPlayers — 比赛中允许的最大玩家数量的可选值。

  • playerGroup — 用于自动匹配的任意数字,仅限于其匹配请求共享相同数字的玩家。将此属性设置为 0 允许玩家自动匹配到任何等待匹配中。

  • playerAttributes — 指定本地玩家希望在游戏中扮演角色的面具。

  • inviteMessage — 比赛的自定义邀请消息。

local parameters = {
    playerIDs = { "w4o98y3498hg349h", "wrighfq547hg543" },
    minPlayers = 2,
    maxPlayers = 3,
    playerGroup = 0,
    playerAttributes = { 1, 4, 6 },
    inviteMessage = "Hi, please join our match!",
    listener = createNewMatch
}
gameNetwork.show( "createMatch", parameters )

示例

local function onGameNetworkPopupDismissed( event )
    -- Game Center popup was closed
    for k,v in pairs( event ) do
        print( k,v )
    end
end

-- Display a leaderboard
gameNetwork.show( "leaderboards",
    {
        leaderboard = {
            category = "com.appledts.EasyTapList"
        },
        listener = onGameNetworkPopupDismissed
    }
)

-- Display the player's achievements
gameNetwork.show( "achievements", { listener=onGameNetworkPopupDismissed } )

-- Display a friend request popup
local friendRequestParams = {
    message = "Let's match up in Game Center!",
    playerIDs = { "G:194669300", "G:1435127232" },
    emailAddresses = { "[email protected]" },
    listener = onGameNetworkPopupDismissed
}
gameNetwork.show( "friendRequest", friendRequestParams )

-- Display a popup which shows the current/active matches AND allows the player to create a new match
local matchesParams = {
    minPlayers = 2,
    maxPlayers = 3,
    listener = onGameNetworkPopupDismissed
}
gameNetwork.show( "matches", matchesParams )

-- Display a popup which lets the user create a new match and invite other players
local createMatchParams = {
    playerIDs = { "w4o98y3498hg349h", "wrighfq547hg543" },
    minPlayers = 2,
    maxPlayers = 3,
    inviteMessage = "Hi, please join our match!",
    listener = onGameNetworkPopupDismissed
}
gameNetwork.show( "createMatch", createMatchParams )