1
Я могу управлять «птицей» с помощью акселерометра, и это работает, моя единственная проблема заключается в том, что она работает, когда мое устройство (телефон/планшет) плоское, но это не праздно, когда вы держите его в руке играть. Есть ли способ компенсировать нулевую точку акселерометра как 30 ° (в градусах) по оси y?Как компенсировать акселерометр lua corona sdk
display.setStatusBar (display.HiddenStatusBar);
system.setAccelerometerInterval(50);
system.setIdleTimer(false);
local background = display.newImage("bg.png")
--> GAME CHARACTER
local bird = display.newImage ("helicopter.png")
bird.x = 100;
bird.y = 100;
bird:setReferencePoint(display.CenterReferencePoint);
-- Speed of Movement with tilt. You can change it ans see the effects.
local tiltSpeed = 30;
local motionx = 0;
local motiony = 0;
local rotation = 0;
local function onTilt(event)
-- Its for the new position of the bird
motionx = tiltSpeed * event.xGravity;
motiony = tiltSpeed * event.yGravity;
end
local function moveBird (event)
bird.x = motionx + bird.x;
bird.y = bird.y - motiony;
bird.rotation = rotation;
end
Runtime:addEventListener("accelerometer", onTilt)
Runtime:addEventListener("enterFrame", moveBird)
Если у вас есть event.zGravity, то вы можете просто вращать 3D вектор силы тяжести в любой позиции, которую вы хотите. –
И как я буду использовать это? –
изменен на -30 :) –