3

この例に基づいて、コロナで独自のクラスを作成しようとしています 。次のようになります。

local car={};
local car_mt = { __index=car };
function car.new()
    local ncar=
    {
        img=display:newImage("test_car.png");
    }
    return setmetatable(ncar,car_mt);
end
return car;

そしてそれはこれによってレベルで呼ばれます:

local pcar=require("car")
...
function scene:enterScene( event )
    local group = self.view
    physics.start();
    local car1=pcar.new();

end

画像は同じフォルダにありますが、次のようになります。

newImageへの不正な引数#-2(プロキシが必要です、nilを取得しました)

ネットでも同様の問題がいくつか見られましたが、newImage()どこに写真を配置すればよいかわからないようです。しかし、それがどのステージでも使用されるように作られたクラスであるとしたら、どうすればそれを言うことができますか?

4

1 に答える 1

6

ああ、エラーはあなたが次のようにnewImage関数を呼び出しているためです:

display:newImage( "test_car.png" )

これは間違った構文です。上記のステートメントは、実際には次のことを意味します。

display.newImage( display, "test_car.png" )

これは明らかに間違っています。

正しい方法は次のとおりです。

display.newImage( "test_car.png" )

APIの詳細については、こちらをご覧ください。

于 2013-03-09T19:17:38.470 に答える