2015-03-10 3 views
1

Я работаю над небольшим личным проектом, чтобы получить удовольствие от Corona SDK, я создал статический пол и две статические стены, затем создаю шар и добавлю к нему динамическую физику. Я сделал функцию, которая перемещает шар вокруг, когда акселерометр активен, но я не могу понять, как это правильно. Я могу сделать объект статическим, и он перемещается вокруг, но он не будет взаимодействовать с динамическими стенами или полом, я могу сделать объект статичным, но когда игра загружает шары, просто стреляет с экрана, и приложение падает.Перемещение объекта с помощью акселерометра с помощью Corona SDK

Не уверен, как подойти к этому, я уже рассмотрел образец проекта в короне.

Вот мой код.

--Set accelerometer framerate 
system.setAccelerometerInterval(60) 
--Creates Hero 
local function player(xCenter, yCenter, radius) 
    local player1 = display.newImageRect("images/hero.png", 32, 31) 
    player1.x = xCenter 
    player1.y = yCenter 
    player1:setFillColor(100,100,100) 
    physics.addBody(player1, "dynamic", {bounce = 0, density=1, friction=.1, radius=radius}) 
    return player1 
end 
local hero = player(startPlatform.x+20, startPlatform.y-15, 15) 
local function heroMovex(event) 
    hero.x = hero.x + (hero.x*event.xGravity) 
    hero.y = hero.y + (hero.y * event.yGravity-1) 
end 
Runtime:addEventListener("accelerometer", heroMovex) 

ответ

2

Существует множество способов применения силы акселерометра к физическим телам. Вместо того, чтобы перемещать тело непосредственно, регулируя его координаты, попробуйте установить скорость hero «сек в соответствии с наклоном:

local function heroMovex(event) 
    hero:setLinearVelocity(10 * event.xGravity, -10 * event.yGravity) 
end 

Или, если вы не против применения ускорения ко всему, просто связать гравитацию с акселерометром:

local function tiltGravity(event) 
    physics.setGravity(10 * event.xGravity, -10 * event.yGravity) 
end 
Runtime:addEventListener("accelerometer", tiltGravity) 
+0

Спасибо, Бен, это сделал трюк. – user2684521

Смежные вопросы