Ich bin ein neuer Programmierer mit wenig Erfahrung; als ein gutes noob ist es sehr wahrscheinlich, dass die nächsten Codezeilen, die Sie sehen werden, eine große Anzahl von Fehlern oder Ungenauigkeiten aufweisen können, daher entschuldige ich mich im Voraus. So ist die Situation die folgende: In letzter Zeit bin ich Schnittstelle mit einer neuen Programmiersprache (neu für mich offensichtlich), das ist LUA (mit Corona SDK). Ich ging an die Sprache und schrieb einfache Codes. Jetzt versuche ich ein Programm auszuführen, das einfach nur zwei Rechtecke anzeigen soll, die von der Schwerkraft betroffen sind. Wenn ich versuche, die Anwendung auf meinem PC mit CORONA zu emulieren, funktioniert es ohne irgendein Problem; nachdem es für Android OS gebaut zu haben, es auf meinem Handy installiert hat, und es ist das Ergebnis läuft zu haben, ist eine Fehlermeldung, die folgende ist:LUA FEHLER Ausführen der App auf Android
Dies ist die Fehlermeldung:
„main.lua.35: FEHLER: Tabelle erwartet. Wenn dies ein Funktionsaufruf ist, haben Sie möglicherweise '.' statt ‚:‘ "
Dies ist der Code:
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)
werde ich mit denen sehr dankbar sein, die versuchen, mir zu helfen.
Die Fehlermeldung erklärt es vollständig. Es besagt, dass es eine Tabelle als Funktionsargument erwartet (eigentlich das erste Argument) und schlägt vor, '.' Durch ':' zu ersetzen. Dies liegt daran, dass 'tab: func (arg1, arg2)' eine Abkürzung für 'tab.func (tab, arg1, arg2)' ist. Das Programm fügt automatisch die Tabelle als erstes Argument der Funktion ein. – user6245072
Versuchen Sie, 'physics: addBody (Plattform," statisch ")' und 'Physik: addBody (myImage," dynamisch ", iconCollision)' oder sogar 'physics.addBody (phisycs, Plattform," statisch ")' und 'physics. addBody (physics, myImage, "dynamic", iconCollision) 'und es sollte funktionieren. – user6245072
Die Zeile 'platform.collision = onCollision' muss NACH dem Rumpf der Funktion' onCollision' sein. –