0

これは、ファイルの読み取りと書き込みを行うPeachEllenのego.luaファイルです。ただし、txtファイルを読み書きするためにどこに置くかわかりません。ファイルをプロジェクトのファイルに入れ、プロジェクトがあるコロナにドラッグします。ただし、変更には反応しません。

   module (..., package.seeall)

  --Save function
  function saveFile( fileName, fileData )
         --Path for file
         local path = system.pathForFile( fileName, system.DocumentsDirectory )
         --Open the file
         local file = io.open( path, "w+" )

    --Save specified value to the file
        if file then
          file:write( fileData )
          io.close( file )
       end
   end

  --Load function
  function loadFile( fileName )
  --Path for file
  local path = system.pathForFile( fileName, system.DocumentsDirectory )
  --Open the file
  local file = io.open( path, "r" )

    --If the file exists return the data
    if file then
       local fileData = file:read( "*a" )
       io.close( file )
       return fileData
    --If the file doesn't exist create it and write it with "empty"
    else
       file = io.open( path, "w" )
       file:write( "empty" )
       io.close( file )
       return "empty"
    end
 end

そして、それはego.luaを使用し、最高スコアの記録を保持しようとするmain.luaファイルです。

 --Hide the status bar
 display.setStatusBar(display.HiddenStatusBar)

 --Saving/Loading Stuff
 local ego = require "ego"
 local saveFile = ego.saveFile
 local loadFile = ego.loadFile
  --------------------------------------------------------------------
  --------------------------------------------------------------------

 --Create the background and make it blue
 local bg = display.newRect( 0, 0, 320, 480 )
 bg:setFillColor( 150, 180, 200 )

 --Start the score at 0
 local score = 0

 --Create score text and make it dark gray
 local scoreText = display.newText(score, 200, 20, native.systemFont, 24)
 scoreText:setTextColor( 80, 80, 80 )

 --Function to add to score and update scoreText
  local function addToScore()
  score = score + 1
  scoreText.text = score
end
 bg:addEventListener("tap", addToScore)

  --------------------------------------------------------------------
  --------------------------------------------------------------------

  --Load highscore value from file. (It will initally be a string.)
   highscore = loadFile ("gameScores.txt")

  --If the file is empty (this means it is the first time you've run the app) save it as 0
   local function checkForFile ()
   if highscore == "empty" then
   highscore = 0
   saveFile("gameScores.txt", highscore)
     end
  end
  checkForFile()

  --Print the current highscore
  print ("Highscore is", highscore)

   --------------------------------------------------------------------
   --------------------------------------------------------------------

  --When the app is quit (or simulator refreshed) save the new highscore
  --(If score > highscore the data will not be changed)

  local function onSystemEvent ()
  if score > tonumber(highscore) then --We use tonumber as highscore is a string when loaded
  saveFile("gameScores.txt", score) 
   end
 end

 Runtime:addEventListener( "system", onSystemEvent )
4

1 に答える 1

2

system.DocumentsDirectoryEgo クラスがすべてのファイルをディレクトリに格納していることがわかります。

このディレクトリには、[ファイル] --> [プロジェクト サンドボックスを表示] --> [ドキュメント] からアクセスできます。

必要に応じて、ディレクトリを他のディレクトリに変更できます。利用可能なディレクトリは

system.ResourceDirectory

system.DocumentsDirectory

system.TemporaryDirectory

system.CachesDirectory

于 2012-06-25T16:15:21.400 に答える