2

私はこのコードをluaに持っています

function onMouseDown(event)
    print(event.x, event.y)
    if event.x>160 then
        print("what")
        return 1
        print("whatwhat") 
    else 
        return 0
        print("WhatWhatWhat")
    end


    fruit:setX(event.x)
    fruit:setY(event.y)
end

しかし、main.lua:59: 'end' が 'print' の近くで (56 行目の 'if' を閉じるために) 期待されていることはうめき声です。しかし、私はそこで終わりを告げました。

私はluaを初めて使用し、少し混乱しています。通常はc#でプログラムします

4

2 に答える 2

8

Lua マニュアル§3.3.4を参照してください。

returnステートメントは、ブロックの最後のステートメントとしてのみ記述できます。ブロックの途中で戻る必要がある場合は、イディオムのように、明示的な内部ブロックを使用できますdo return end。これは、 returnがその (内部) ブロックの最後のステートメントであるためです。

コードには、ステートメントprintの後に発生する呼び出しが含まれているため、無効です。return

于 2013-03-14T23:35:51.980 に答える
0

問題は返品後のプリントだと思います。これはデッド コードです。Lua は、ブロックの最後に戻りたいと考えています。

于 2013-03-14T23:29:02.743 に答える