В моей игре два объекта сталкиваются друг с другом, но я хочу изменить угол объекта после столкновения с другим объектом. Я хочу, чтобы объект, чтобы изменить свое направление на 180 градусов после столкновения, я использовал физику столкновений, любую помощь или предложение .. спасибоКак изменить угол объекта после столкновения в короне sdk
1
A
ответ
1
Try, чтобы получить X, Y компоненты для линейной скорости тела с помощью:
vx, vy = myBody:getLinearVelocity()
и сбросить его, как:
myBody:setLinearVelocity(-vx,-vy)
Для получения дополнительной информации, посетите Corona - Physics Bodies.
Пример:
local physics = require("physics")
physics.start()
-- Create ground and bodies ---
local ground = display.newImage("ground.png")
ground.x = display.contentWidth/2
ground.y = 445
ground.myName = "ground"
local crate1 = display.newCircle(0,0,30,30)
crate1.x = 180; crate1.y = 350
crate1.myName = "first crate"
local crate2 = display.newCircle(0,0,30,30)
crate2.x = 220; crate2.y = -50
crate2.myName = "second crate"
-- physics.setDrawMode("debug") -- Uncomment this line to see the physics shapes
-- Adding physics --
physics.addBody(ground, "static", { friction=0.5, bounce=0.3 })
physics.addBody(crate1, { density=3.0, friction=0.5, bounce=0.3,radius = 30})
physics.addBody(crate2, { density=3.0, friction=0.5, bounce=0.3,radius = 30})
crate1:setLinearVelocity(0, -400)
-- Collision function --
local function onGlobalCollision(event)
if (event.phase == "began") then
print(event.object1.myName .. " & " .. event.object2.myName .. " collision began")
vx_1, vy_1 = crate2:getLinearVelocity() -- get the velocities of crate2
crate2:setLinearVelocity(-vx_1,-vy_1) -- reset the velocities of crate2
vx_2, vy_2 = crate1:getLinearVelocity() -- get the velocities of crate1
crate1:setLinearVelocity(-vx_2,-vy_2) -- reset the velocities of crate1
end
end
Runtime:addEventListener("collision", onGlobalCollision)
Keep Coding .............. :)
Смежные вопросы
- 1. Как изменить направление (угол) пули после столкновения в направлении движения в короне sdk
- 2. столкновения в короне
- 3. Создание объекта физики в одной точке другого объекта и перемещение сгенерированного объекта без столкновения со вторым в короне sdk
- 4. Как установить масштаб в короне sdk mapView
- 5. Перетаскивание объекта в короне
- 6. Как установить минимальный угол столкновения для SKSpriteNode
- 7. Деактивация кнопки в короне sdk
- 8. Как отобразить рекорды в короне sdk
- 9. Массовый центр в Короне SDK
- 10. Сохранить таблицу в короне SDK
- 11. Как определить относительный угол столкновения в Box2d
- 12. Фоновая служба в короне sdk
- 13. Управление памятью в короне sdk
- 14. Как запустить пулю с использованием функции перехода и изменить угол и направление пули во время стрельбы в короне sdk
- 15. Как сделать контрольные переменные в короне SDK?
- 16. Как создать объекты в короне sdk
- 17. iphone sdk CGAffineTransform, получающий угол поворота объекта
- 18. угол столкновения без физического двигателя
- 19. Обнаружение касания объекта в короне
- 20. Удаление движущегося объекта в Короне
- 21. Возвращение объекта к начальной точке в короне
- 22. Сохранить рекорд на короне SDK?
- 23. Скорость и направление объекта после столкновения шара с мячом
- 24. Угол столкновения SpriteKit линии и круга нечетный
- 25. Как изменить свойство веб-просмотра в короне?
- 26. Событие Touch Hold В короне SDK
- 27. Группа шаг zoon в короне sdk
- 28. Маска, не работающая в короне SDK
- 29. Использование игрового центра в короне sdk
- 30. Задержка звука на эмуляторе в короне sdk
Это did'nt решение работал для меня, я попробовал. Не могли бы вы рассказать мне, где включить этот код или дать ссылку для этого типа решения. В моем примере оба тела сталкиваются, поскольку они являются физическим телом, после столкновения другое тело движется в любом направлении, но я хочу, чтобы он переместился на 180 градусов, неважно, в какой части он столкнулся. – user2588337
I ' ve обновил код с помощью небольшого образца ............. :) –
Спасибо за помощь .. приведенный выше код работает для меня, но я хочу внести некоторые изменения, в этом примере оба шара перемещаются, но я хочу один статический, а другой будет двигаться и сталкиваться после столкновения, он изменит угол, и если я хочу, чтобы мяч переместился на угол 90 градусов, а не на 180 градусов, какие изменения я должен сделать в этом коде ... – user2588337