【问题标题】:Corona sdk - gameNetwork + game center iOs not workingCorona sdk - gameNetwork + 游戏中心 iO 无法正常工作
【发布时间】:2014-05-14 21:42:22
【问题描述】:

我对这个问题越来越疯狂。只是按照如何使用 gameNetwork 的指南没有成功。这是我的代码:

main.lua

gameNetwork = require "gameNetwork"
loggedIntoGC = false


local function initCallback( event )
if event.data then
    loggedIntoGC = true
    -- native.showAlert( "Success!", "User has logged into Game Center", { "OK" } )
else
    loggedIntoGC = false
    gameNetwork.request( "loadScores", 
        { leaderboard={ category="com.mycompany.mygame.myrankingid", 
        playerScope="Global", timeScope="AllTime", range={1,50} },
        listener=requestCallback } )

    -- native.showAlert( "Fail", "User is not logged into Game Center", { "OK" } )
end
end

-- function to listen for system events
local function onSystemEvent( event ) 
if event.type == "applicationStart" then
    gameNetwork.init( "gamecenter", initCallback )
    return true
end
end
Runtime:addEventListener( "system", onSystemEvent )

然后只是测试:

if loggedIntoGC then 
gameNetwork.request( "setHighScore", 
  { localPlayerScore={ category="com.mycompany.mygame.myrankingid", value=t.text }, 
  listener=requestCallback } ); 
end

if loggedIntoGC then 
gameNetwork.request( "loadScores", 
  { leaderboard={ category="com.mycompany.mygame.myrankingid", playerScope="Global", timeScope="AllTime", range={1,50} }, 
  listener=requestCallback } ); 
end

if loggedIntoGC then 
gameNetwork.show( "leaderboards", 
  { leaderboard={ category="com.mycompany.mygame.myrankingid", timeScope="AllTime" } }     ); 
end

在设备上尝试示例什么都不做,只需登录游戏中心用户...

有什么帮助吗?

【问题讨论】:

    标签: ios lua coronasdk game-center


    【解决方案1】:

    在您的initCallback 中,如果event.data 为false,则表示gameNetwork 无法登录服务器,因此请求分数将失败。你应该检查错误:

    local function scoresCallback(event)
        print("Got " .. #event.data .. " scores")
        print("Local player score: " .. event.localPlayerScore)
    end
    
    local function initCallback( event )
        if event.data then
            loggedIntoGC = true
            print('Successful login')
            gameNetwork.request( "loadScores", 
            { 
                leaderboard = { 
                    category = "com.mycompany.mygame.myrankingid", 
                    playerScope = "Global", 
                    timeScope = "AllTime", 
                    range={1,50} 
                },
                listener = scoresCallback,
            } )
    
        else
            loggedIntoGC = false
            print("Error init game center: ", event.errorMessage)
        end
    end
    

    在sim中运行以上代码,查看控制台;在设备上运行它并查看日志文件。这可能会为问题提供线索。

    【讨论】:

    • 感谢您的帮助,但登录仍然有效,问题是排行榜总是为空...
    • @Eusthace 您能否从更新的答案运行更新的代码,并通过日志文件说明模拟器控制台输出和设备上发生的情况。
    猜你喜欢
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2016-07-31
    • 2015-01-07
    • 1970-01-01
    • 2012-12-18
    相关资源
    最近更新 更多