2

オブジェクトに eventListener を追加しようとしていますが、タップすると消えるはずです。しかし、タイトルに記載されているエラーが発生します。この時点での私のコード全体は次のとおりです。

-- housekeeping stuff

display.setStatusBar(display.HiddenStatusBar)

local centerX = display.contentCenterX
local centerY = display.contentCenterY

-- set up forward references

local spawnEnemy

-- preload audio

-- create play screens

local function createPlayScreen()

    local bg = display.newImage("background.png")
    bg.y = 130
    bg.x = 100
    bg.alpha = 0

    local planet = display.newImage("planet.png")
    planet.x = centerX
    planet.y = display.contentHeight +60
    planet.alpha = 0

    transition.to( bg,  { time = 2000, alpha = 1,  y = centerY, x = centerX } )

    local function showTitle()
        local gametitle = display.newImage("gametitle.png")
        gametitle.alpha = 0
        gametitle:scale (4, 4)
        transition.to( gametitle, { time = 500, alpha = 1, xScale = 1, yScale = 1 })
        spawnEnemy()
    end 
    transition.to( planet,  { time = 2000, alpha = 1,  y = centerY, onComplete = showTitle } )
end

-- game functions

local function shipSmash(event)

    local obj = event.target
    display.remove( obj )

end

local function spawnEnemy()

    local enemy = display.newImage("beetleship.png")
    enemy.x = math.random(20, display.contentWidth - 20)
    enemy.y = math.random(20, display.contentHeight - 20)
    enemy:addEventListener ( "tap", shipSmash )

end


local function startGame()

end


local function planetDamage()

end


local function hitPlanet(obj)

end




createPlayScreen()
startGame()

エラーウィンドウは次のようになります。

ここに画像の説明を入力

私はこの分野 (LUA プログラミング) に慣れていないので、構文エラーか何かで申し訳ありませんが、次のコード行を書いた後にこのエラーが表示されることがわかりました。enemy:addEventListener ( "tap", shipSmash )

4

2 に答える 2

4

この変数は以前に宣言されているため、に変更local function spawnEnemy()します。function spawnEnemy()はい、これは初心者にとって典型的な Lua の落とし穴です。

于 2013-08-10T18:48:13.450 に答える