LUA 在安卓上运行时出现错误

我是一名没有太多经验的新手程序员,作为一个好的新手,可能会看到下面这些代码行显示出许多错误或不精确,因此提前向自己道歉。

所以,情况如下:

最近,我正在接触一种新的编程语言(显然对我来说是新的),那就是使用 corona sdk 的 LUA 语言。我编写简单的代码,接触这种语言。

现在我正在尝试执行一个只需显示两个受重力影响的矩形的程序。当我尝试在我的 PC 上用 CORONA 模拟应用程序时,它可以正常工作;在将其构建成安卓操作系统后,在我的手机上安装并运行后,结果是一个错误消息,即:

这是错误消息:

"main.lua.35:ERROR:需要表。如果这是函数调用,则可能使用 '.' 而不是 ':' "

这是代码:

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(事件)
    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(事件)
        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)

那些愿意帮助我的人,我会非常感激。

点赞
用户6312494
用户6312494

我认为可能 event.zRotationnull。在 iOS 上,您可以使用适当的 UIRequiredDeviceCapabilities。在 building.settings 中添加这个 UIRequiredDeviceCapabilities = { ["gyroscope"]=true }。在 Android 上设置 usesFeatures = { { name="android.hardware.sensor.gyroscope", required=true } }

2016-05-16 18:04:07
用户6145406
用户6145406

在磁盘上查找图片名称为"icon.png",大小写有影响,在Android设备上可能会导致错误,在模拟器上不会显示。如果它不加载,myImage:addEventListener将显示一个错误,可能是你看到的错误。还尝试排除代码片段,然后将程序返回运行到设备上。我通过这种方式发现了与模拟器的差异。

2016-05-16 18:56:06