拾弐 Cocos2d-x로 데이터 저장 읽기
목차
1 소개
2 데이터 저장 읽기
3 향후 예정
소개
데이터 저장 읽기
아래 코드를 실행하면 터치 횟수가 왼쪽 상단에 표시되며 앱을 다시 시작할 때 저장된 터치 횟수를 읽을 수 있습니다.
GameScene.lualocal KEY = "SCORE"
local GameScene = class("GameScene",function()
return cc.Scene:create()
end)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createLayer())
return scene
end
function GameScene:ctor()
self.visibleSize = cc.Director:getInstance():getVisibleSize()
self.origin = cc.Director:getInstance():getVisibleOrigin()
self.schedulerID = nil
end
function GameScene:playBgMusic()
end
function GameScene:createLayer()
local layer = cc.Layer:create()
-- 背景
local sprite_background = cc.Sprite:create("farm.jpg")
sprite_background:setPosition(self.visibleSize.width/2, self.visibleSize.height/2)
sprite_background:setScale(1.2)
layer:addChild(sprite_background)
-- a1)保存されている"SCORE"の値を取得 ない場合は0
local score = cc.UserDefault:getInstance():getIntegerForKey(KEY, 0)
-- 得点ラベルを追加
local label = cc.Label:createWithSystemFont(score, "Arial", 50)
label:setPosition(100,900)
layer:addChild(label)
-- タッチ開始時に呼ばれる
local function onTouchBegan(touch, event)
local location = touch:getLocation()
-- 得点を1足して得点表示を更新
score = score + 1
label:setString(score)
-- a2)得点情報を"SCORE"に保存する
cc.UserDefault:getInstance():setIntegerForKey(KEY, score)
return true
end
-- タッチイベントで呼ばれる関数を登録し、このレイヤーでのタッチイベント取得を有効化
local listener = cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
local eventDispatcher = layer:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layer)
return layer
end
return GameScene
a1) cc.UserDefault:getInstance():getIntegerForKey(KEY, 0)
가 저장된 값을 읽는 API입니다. 여기서 KEY 부분은 임의의 문자열을 지정할 수 있습니다. 여기서는 "SCORE"를 지정합니다. 또한 두 번째 인수 0은 저장된 값이 없을 때 반환됩니다. 즉, "SCORE"의 값을 읽을 수 있고, 단, 저장된 값이 없는 경우는 0을 돌려준다는 의미입니다.
a2) cc.UserDefault:getInstance():setIntegerForKey(KEY, score)
에서 "SCORE"값을 저장합니다. 두 번째 인수의 값은 "SCORE"의 값으로 저장됩니다.
처음 시작할 때는 왼쪽 상단의 표시가 0이지만,
여러 번 화면을 터치한 후 다시 시작하면 저장된 터치 횟수가 시작 시 바로 표시됩니다.
향후 예정
Cocos2d-x로 게임을 만들 때 유용한 표시 자릿수를 지정하고 시간을 얻는 등 몇 가지 Lua 함수에 대해 설명합니다.
Reference
이 문제에 관하여(拾弐 Cocos2d-x로 데이터 저장 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/CasualGameDev/items/be471279fbbebb9ec201
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
데이터 저장 읽기
아래 코드를 실행하면 터치 횟수가 왼쪽 상단에 표시되며 앱을 다시 시작할 때 저장된 터치 횟수를 읽을 수 있습니다.
GameScene.lualocal KEY = "SCORE"
local GameScene = class("GameScene",function()
return cc.Scene:create()
end)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createLayer())
return scene
end
function GameScene:ctor()
self.visibleSize = cc.Director:getInstance():getVisibleSize()
self.origin = cc.Director:getInstance():getVisibleOrigin()
self.schedulerID = nil
end
function GameScene:playBgMusic()
end
function GameScene:createLayer()
local layer = cc.Layer:create()
-- 背景
local sprite_background = cc.Sprite:create("farm.jpg")
sprite_background:setPosition(self.visibleSize.width/2, self.visibleSize.height/2)
sprite_background:setScale(1.2)
layer:addChild(sprite_background)
-- a1)保存されている"SCORE"の値を取得 ない場合は0
local score = cc.UserDefault:getInstance():getIntegerForKey(KEY, 0)
-- 得点ラベルを追加
local label = cc.Label:createWithSystemFont(score, "Arial", 50)
label:setPosition(100,900)
layer:addChild(label)
-- タッチ開始時に呼ばれる
local function onTouchBegan(touch, event)
local location = touch:getLocation()
-- 得点を1足して得点表示を更新
score = score + 1
label:setString(score)
-- a2)得点情報を"SCORE"に保存する
cc.UserDefault:getInstance():setIntegerForKey(KEY, score)
return true
end
-- タッチイベントで呼ばれる関数を登録し、このレイヤーでのタッチイベント取得を有効化
local listener = cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
local eventDispatcher = layer:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layer)
return layer
end
return GameScene
a1) cc.UserDefault:getInstance():getIntegerForKey(KEY, 0)
가 저장된 값을 읽는 API입니다. 여기서 KEY 부분은 임의의 문자열을 지정할 수 있습니다. 여기서는 "SCORE"를 지정합니다. 또한 두 번째 인수 0은 저장된 값이 없을 때 반환됩니다. 즉, "SCORE"의 값을 읽을 수 있고, 단, 저장된 값이 없는 경우는 0을 돌려준다는 의미입니다.
a2) cc.UserDefault:getInstance():setIntegerForKey(KEY, score)
에서 "SCORE"값을 저장합니다. 두 번째 인수의 값은 "SCORE"의 값으로 저장됩니다.
처음 시작할 때는 왼쪽 상단의 표시가 0이지만,
여러 번 화면을 터치한 후 다시 시작하면 저장된 터치 횟수가 시작 시 바로 표시됩니다.
향후 예정
Cocos2d-x로 게임을 만들 때 유용한 표시 자릿수를 지정하고 시간을 얻는 등 몇 가지 Lua 함수에 대해 설명합니다.
Reference
이 문제에 관하여(拾弐 Cocos2d-x로 데이터 저장 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/CasualGameDev/items/be471279fbbebb9ec201
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
local KEY = "SCORE"
local GameScene = class("GameScene",function()
return cc.Scene:create()
end)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createLayer())
return scene
end
function GameScene:ctor()
self.visibleSize = cc.Director:getInstance():getVisibleSize()
self.origin = cc.Director:getInstance():getVisibleOrigin()
self.schedulerID = nil
end
function GameScene:playBgMusic()
end
function GameScene:createLayer()
local layer = cc.Layer:create()
-- 背景
local sprite_background = cc.Sprite:create("farm.jpg")
sprite_background:setPosition(self.visibleSize.width/2, self.visibleSize.height/2)
sprite_background:setScale(1.2)
layer:addChild(sprite_background)
-- a1)保存されている"SCORE"の値を取得 ない場合は0
local score = cc.UserDefault:getInstance():getIntegerForKey(KEY, 0)
-- 得点ラベルを追加
local label = cc.Label:createWithSystemFont(score, "Arial", 50)
label:setPosition(100,900)
layer:addChild(label)
-- タッチ開始時に呼ばれる
local function onTouchBegan(touch, event)
local location = touch:getLocation()
-- 得点を1足して得点表示を更新
score = score + 1
label:setString(score)
-- a2)得点情報を"SCORE"に保存する
cc.UserDefault:getInstance():setIntegerForKey(KEY, score)
return true
end
-- タッチイベントで呼ばれる関数を登録し、このレイヤーでのタッチイベント取得を有効化
local listener = cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
local eventDispatcher = layer:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layer)
return layer
end
return GameScene
Cocos2d-x로 게임을 만들 때 유용한 표시 자릿수를 지정하고 시간을 얻는 등 몇 가지 Lua 함수에 대해 설명합니다.
Reference
이 문제에 관하여(拾弐 Cocos2d-x로 데이터 저장 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/CasualGameDev/items/be471279fbbebb9ec201텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)