在Corona SDK中,如何将记分员放入我的应用程序?

时间:2014-09-15 01:53:04

标签: android ios cross-platform corona

我希望每次球击中球时我都会在比赛中加1分。(这是一场乒乓球比赛)我也希望比赛能够保存高分。这是我尚未制作的游戏中唯一的元素。如果有人能提供帮助那就太棒了。

2 个答案:

答案 0 :(得分:3)

您可以更轻松地解决问题..

只需为此分数声明一个变量..

local score=0

然后每当它击中球拍时,将得分变量增加1。所以在碰撞函数中插入编码,如下所示:

local function onCollision(event)
{
score=score+1
}
ball.collision=onCollision
ball:addEventListener("collision",ball)

最后当你需要保存你的高分时(在游戏结束后),你可以使用偏好而不是json来进行更大的编码。

local preference= require "preference"
local highscore=0

preference.save{highscore=score}

如果要显示高分,请使用以下内容:

highscore_value=preference.getValue("highscore")
display.newText(highscore_value,0,0,nil,30)

这对你的问题可能有用!!

答案 1 :(得分:1)

您可以将高分保存到json文件。

这是一个演示:

local json = require"json"

----------------------------------------------------------------
local M = {} --- useful functions
function M.load_json_from_file(ffn)
    if ffn == nil then return nil end
    local fhd = io.open(ffn, "rb")
    if fhd ~= nil then
        local contents = fhd:read("*a")
        fhd:close()
        return M.formatTable(json.decode(contents))
    else
        return nil
    end
end

function M.save_json_to_file(filepath, _table)
    local fhd = io.open(filepath, "wb")
    if fhd == nil then return false end
    local string4save = json.encode(_table)
    fhd:write(string4save)
    fhd:write("\r\n")
    fhd:close()
    return true
end

function M.formatTable(t)
    local arr = {}
    for k, v in pairs(t) do
        local num_k = tonumber(k)
        if type(v) == "table" then
            if num_k ~= nil then
                arr[num_k] = M.formatTable(v)
            else
                arr[k] = M.formatTable(v)
            end
        else
            if num_k ~= nil then
                arr[num_k] = v
            else
                arr[k] = v
            end
        end
    end
    return arr
end

------------------------------------------------------------------
local test_arr = {
    [2] = 34,
    [7] = "asd",
    str = "asas"
}

local fn = system.pathForFile("test.txt", system.DocumentsDirectory)
local is_succeed = M.save_json_to_file(fn, test_arr)
print("is_succeed", is_succeed)
local read_json_from_file = M.load_json_from_file(fn)

for k, v in pairs(read_json_from_file) do
    if test_arr[k]~=v then
        print("not equal")
    end
end