私は多くの経験のない新しいプログラマーです。良いnoobとして次のコード行にエラーや不正確さが表示される可能性が非常に高いので、あらかじめ自分自身を推測しています。 したがって、状況は次のようになります。 最近、私はLUA(コロナsdkを使用)という新しいプログラミング言語(明らかに新しいもの)とインタフェースしています。私は簡単なコードを書く言語に近づいた。 今重力の影響を受ける2つの矩形を表示するだけのプログラムを実行しようとしています。 CORONAでPC上のアプリケーションをエミュレートしようとすると、何の問題もなく動作します。アンドロイドOSのためにそれを構築した後、自分の携帯電話にインストールしたし、結果は以下の通りですエラーメッセージでそれを実行した:LUAエラーアンドロイドでアプリケーションを実行しています
「main.lua.35:
これはエラーメッセージです:エラー:テーブルが期待されています。これが関数呼び出しの場合は、 '。'を使用している可能性があります。代わりに「:」:
はlocal physics = require("physics")
physics.start()
local _W = display.contentWidth
local _H = display.contentHeight
local platform = display.newRect(
--x =
_W/2,
--y =
_H/2,
--width =
100,
--height =
100
)
platform.surfaceType = "rectangle"
local myImage = display.newImage("icon.png",_W/2,50)
local iconCollision = {
friction = 0.0, --attrito
bounce = 0.0, --rimbalzo (forse)
isSensor = true --collisione con altri oggetti
}
physics.addBody(platform,"static")
physics.addBody(myImage,"dynamic",iconCollision) --this is line 35
platform.collision = onCollision
local function onGyroscopeDataReceived(event)
local deltaRadians = event.zRotation * event.deltaTime
local deltaDegrees = deltaRadians * (180/math.pi)
end
local function dragImage(event)
local t=event.target
print(event.phase)
if(event.phase == "moved") then
t.x = event.x
t.y = event.y
end
end
local function onCollision(event)
if (event.phase == "began") then
print("toccato")
end
end
if system.hasEventSource("gyroscope") then
Runtime:addEventListener("gyroscope", onGyroscopeDataReceived)
end
Runtime:addEventListener("collision",onCollision)
myImage:addEventListener("touch",dragImage)
私は私を助けるためにしようとする人たちに非常に感謝されるだろう」
これはコードです。
エラーメッセージに完全に説明されています。それは関数の引数(実際には第1引数)としてテーブルを期待しており、 '.'を': 'に置き換えることを示唆しています。これは 'tab:func(arg1、arg2)'は 'tab.func(tab、arg1、arg2)'のショートカットであるからです。プログラムは自動的にテーブルを関数の第1引数として挿入します。 – user6245072
「物理:addBody(プラットフォーム、静的」)と「物理:addBody(myImage、 "動的"、iconCollision)」またはさらには 'physics.addBody(phisycs、platform、" static ")'および 'physicsを呼び出してみてください。 addBody(物理、myImage、 "動的"、iconCollision) 'それは動作するはずです。 – user6245072
行 'platform.collision = onCollision'は、関数onCollisionの後になければなりません。 –