Corona SDK物理游戏在Android设备上无法正常工作

时间:2012-07-07 17:32:42

标签: android ios corona

我是Corona和游戏开发的新手。我正在制作一个带物理的简单游戏,用触摸移动物体。这是我的代码

local physics = require"physics";
local gameUI = require("gameUI")

physics.setDrawMode( "normal" )
physics.setScale( 40)
physics.setPositionIterations( 60 )

physics.start();

local _H=display.contentHeight;
local _W=display.contentWidth;

local crat1=display.newImageRect("crate1.png",40,40)
crat1.x=20;crat1.y=200;
physics.addBody(crat1,"dynamic",{density=-1000,bounce=0.1,friction=100});

local function dragBody_call(event)
--Calling drawBody() From gameUI
gameUI.dragBody(event);

end    

crat1:addEventListener( "touch", dragBody_call) -- make object draggable

在模拟器中,移动和触摸事件运行良好,它也可以在Android设备上运行。物理工作完美,我也可以用Touch移动物体,但是它非常迟钝,很难移动物体。有时它不动。它不如模拟器那么流畅。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我认为问题是你的

physics.setPositionIterations( 60 )

根据文档

  

默认值为8,表示引擎将迭代   通过每个对象的每帧八个位置近似。   增加此数字将导致更少的瞬时不准确性   (重叠对象等)但会增加计算开销。   对于大多数一般情况,默认值应该是好的。

请参阅此处http://docs.coronalabs.com/api/library/physics/setPositionIterations.html

删除该行,或者如果您真的需要性能,请将其增加一个较小的值。说到12或16。