2012-02-10 5 views
0

У меня возникают проблемы с тем, чтобы мяч не начал двигаться после того, как он прыгнул на Ractangle. Прямоугольник движется с постоянной скоростью влево. Мяч следует за экраном. Когда мяч прыгает на прямоугольник, он получает скорость от падения прямоугольника. Помогите!Corona sdk предотвратить x движение мяча

Вот некоторые из моего кода:

--make a box 
local box1 = display.newRect(600, 220, 20, 20) 
box1:setFillColor(255,255,255) 
physics.addBody(box1, "static", { friction=0, bounce=0.0 }) 

-- make a ball (off-screen) and position it 
local ball = display.newImage("ball.png", 20, 20) 
ball.x, ball.y = 100, 200 


-- add physics to the ball 
physics.addBody(ball, { density = 1.0, friction = 0, bounce = 0, radius = 19 }) 

--rotate the ball 
local function rotateBall() 
ball.rotation = -365 
transition.to(ball, { time=1000, rotation=365, onComplete=rotateBall}) 

end 
rotateBall() 

ответ

0

Если я правильно понимаю

  • вы пытаетесь сделать шар держать вращающийся бесконечно в к-поступательным направлении
  • макияжем мяч отказов

Код ниже будет работать для этого:

local physics=require("physics") 
physics.start() 

--make a box 
local box1 = display.newRect(50, 420, 150, 150) 
box1:setFillColor(255,255,255) 
physics.addBody(box1, "static", { friction=0, bounce=0.0 }) 

-- make a ball (off-screen) and position it 
local ball = display.newImage("scnGame_bird.png", 20, 20) 
ball.x, ball.y = 100, 200 


-- add physics to the ball 
physics.addBody(ball, { density = 1.0, friction = 0, bounce = 0.8, radius = 19 }) 

--rotate the ball 

--ball.rotation = -365 
local rotateBallReverse 
local function rotateBall() 
    transition.to(ball, { time=1000, rotation=365, onComplete=rotateBallReverse}) 
end 

rotateBallReverse = function() 
    transition.to(ball, { time=1000, rotation=-365, onComplete=rotateBall}) 
end 
rotateBall() 

В остальном, что вы подразумеваете под «предотвращать движение x»?

+0

Извините, я не то, о чем мне было интересно. То, что я сделал это: \t \t - А на кадр событий для перемещения элементов \t местного tPrevious = system.getTimer() \t локальной функция шага (событие) \t \t --prevent скорости/движение мяч \t \t Vx, Vy = шар: getLinearVelocity() \t \t \t, если ух <0, то \t \t \t шар: setLinearVelocity (0, 0) \t \t \t \t \t конец \t \t \t \t если ух> 0, то \t \t \t мяч: setLinearVelocity (0, 0) \t \t \t конец \t конец \t - начать все движущееся \t Runtime: addEventListener («enterFrame», переместить); То, что он делает, это проверить скорость шара для каждого кадра, если его больше или меньше 0, он снова установлен 0. – Spoeken