我是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移动物体,但是它非常迟钝,很难移动物体。有时它不动。它不如模拟器那么流畅。我该如何解决这个问题?
答案 0 :(得分:0)
我认为问题是你的
physics.setPositionIterations( 60 )
根据文档
默认值为8,表示引擎将迭代 通过每个对象的每帧八个位置近似。 增加此数字将导致更少的瞬时不准确性 (重叠对象等)但会增加计算开销。 对于大多数一般情况,默认值应该是好的。
请参阅此处http://docs.coronalabs.com/api/library/physics/setPositionIterations.html
删除该行,或者如果您真的需要性能,请将其增加一个较小的值。说到12或16。