2012-07-07 77 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.

相關問題