【问题标题】:Corona SDK physics game not working properly on Android deviceCorona SDK 物理游戏无法在 Android 设备上正常运行
【发布时间】:2012-07-08 18:50:59
【问题描述】:

我是 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 移动对象,但是移动对象非常滞后且非常困难。有时它不动。它不像模拟器那么流畅。我该如何解决这个问题?

【问题讨论】:

  • 我不敢相信你的手机比模拟器慢 - 通常情况下,它是相反的:)。但听起来你的手机需要更多 RAM 或更快的 CPU
  • 我有galaxy s3... :) 我认为这对于简单的物理游戏问题来说还不够

标签: android ios coronasdk


【解决方案1】:

我认为问题是你的

physics.setPositionIterations( 60 )

根据文档

默认值为8,表示引擎会迭代 通过每个对象的每帧八个位置近似值。 增加此数字将减少瞬时误差 (重叠的对象等)但会增加计算开销。 默认值应该适用于大多数一般情况。

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

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

【讨论】:

    猜你喜欢
    • 2016-04-18
    • 2014-05-14
    • 2014-05-14
    • 2023-03-30
    • 2016-10-27
    • 2016-03-21
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多