2012-07-07 29 views
0

我是Corona和游戏开发的新手。我正在用物理学做一个简单的游戏来移动物体。这里是我的代码Corona SDK物理游戏在Android设备上无法正常工作

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

我不能相信你的手机比模拟器慢 - 通常,它是相反的:)。但它听起来像你的手机需要更多的RAM或更快的CPU – paulsm4 2012-07-07 17:40:02

+0

我有银河s3 ... :)我不认为这是不够的简单的物理游戏问题是别的东西 – 2012-07-07 18:18:58

回答

0

我认为这个问题是您

physics.setPositionIterations(60) 

按照文档

的默认值是8,这意味着引擎会遍历 通过每帧八位近似为每目的。 增加此数字将导致更少的瞬时不准确 (重叠对象等)但将增加计算开销。 默认值应该适用于大多数一般情况。

看到这里http://docs.coronalabs.com/api/library/physics/setPositionIterations.html

删除了这一行,或者如果你真的需要的性能,通过较小的值增加它。说12或16.

相关问题