Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Ajuda com Joints
Started by tunnelstudios Jan 18 2013 11:33 PM

No replies to this topic
[TOPIC CONTROLS]
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

tunnelstudios

[GLOBAL: userInfoPane.html]
tunnelstudios
  • Observer

  • 16 posts
  • Corona SDK

Olá pessoal.
Estou começando no universo do corona e logicamente tendo algumas dificuldades.
Estou tentando criar um carro mas as rodas estão girando em torno do eixo do carro.

Foi inserido a imagens do carro e das rodas separadas:

local body = display.newImageRect("van.png",100,50)body.x = 100body.y = 200body.myName = "van"physics.addBody( body, physicsDataCarro:get("van") )local roda1 = display.newImageRect("roda.png",30,30)roda1.x = 130roda1.y = 235physics.addBody( roda1,"dynamic", { density = 1.0, friction = 5, bounce = 0.2, radius = 15} )local roda2 = display.newImageRect("roda.png",30,30)roda2.x = 70roda2.y = 235physics.addBody( roda2,"dynamic", { density = 1.0, friction = 5, bounce = 0.2, radius = 15} )


Foi criado os suportes do carro:

-------------------------------------------------------suportes do carro-----------------------------------------------------quadradoDireita = display.newRect(122,210,10,5)physics.addBody( quadradoDireita, { density = 0.05, friction = 0.3, bounce = 0.2} )quadradoEsquerda = display.newRect(60,210,10,5)physics.addBody( quadradoEsquerda, { density = 0.05, friction = 0.3, bounce = 0.2} )


Os amortecedores
RetanguloDireita = display.newRect(115,210,15,15)physics.addBody( RetanguloDireita, { density = 0.05, friction = 0.3, bounce = 0.2} )RetanguloEsquerda = display.newRect(60,210,15,15)physics.addBody( RetanguloEsquerda, { density = 0.05, friction = 0.3, bounce = 0.2} )


Inserindo as partes em um grupo

CarroQuadrados:insert(trilha)CarroQuadrados:insert(roda1)CarroQuadrados:insert(roda2)CarroQuadrados:insert(quadradoDireita)CarroQuadrados:insert(quadradoEsquerda)CarroQuadrados:insert(body)CarroQuadrados:insert(RetanguloDireita)CarroQuadrados:insert(RetanguloEsquerda)CarroQuadrados.y = 0


e os joints

local juntaQuadradoEsquerdoCarro = physics.newJoint ("weld", body,                 quadradoEsquerda, quadradoEsquerda.x, quadradoEsquerda.y)local juntaQuadradoDireitoCarro = physics.newJoint ("weld", body,                 quadradoDireita, quadradoDireita.x, quadradoDireita.y)				local juntaRetanguloEsquerdoQuadrado = physics.newJoint ("weld", quadradoEsquerda,                 RetanguloEsquerda, RetanguloEsquerda.x, RetanguloEsquerda.y)local juntaRetanguloDireitoQuadrado = physics.newJoint ("weld", quadradoDireita,                 RetanguloDireita, RetanguloDireita.x, RetanguloDireita.y)				local piston_joint_Esquerda = physics.newJoint("piston", RetanguloEsquerda, quadradoEsquerda, RetanguloEsquerda.x, RetanguloEsquerda.y , 0, -1)      piston_joint_Esquerda.isLimitEnabled = true      piston_joint_Esquerda:setLimits(100,900)local distanceRodaEcarro = physics.newJoint("distance", roda2, body, roda2.x,roda2.y,body.x,body.y)      --distanceRodaEcarro.frequency = 15--distanceRodaEcarro.dampingRatio = 20local distanceRodaDcarro = physics.newJoint("distance", roda1, body, roda1.x,roda1.y,body.x,body.y)      --distanceRodaDcarro.isLimitEnabled = true            --Joint:getRotationLimits()--distanceRodaDcarro.frequency = 15--distanceRodaDcarro.dampingRatio = 20local distanceRodaE2 = physics.newJoint("distance", quadradoDireita, RetanguloEsquerda, quadradoDireita.x,quadradoDireita.y,RetanguloEsquerda.x,RetanguloEsquerda.y)local distanceRodaD2 = physics.newJoint("distance", quadradoEsquerda, RetanguloDireita, quadradoEsquerda.x,quadradoEsquerda.y,RetanguloDireita.x,RetanguloDireita.y)	-- o motor for?a o objeto para forapiston_joint_Esquerda.isMotorEnabled = truepiston_joint_Esquerda.motorSpeed = 300piston_joint_Esquerda.maxMotorForce = 10local piston_joint_Direita = physics.newJoint("piston", RetanguloDireita, quadradoDireita, RetanguloDireita.x, RetanguloDireita.y , 0, -1)	-- o motor for?a o objeto para forapiston_joint_Direita.isMotorEnabled = truepiston_joint_Direita.motorSpeed = 300piston_joint_Direita.maxMotorForce = 10---------------------------------------------------------------------------------mant?m fixa a dist?ncia entre as rodas-------------------------------------------------------------------------------local distanceRodas = physics.newJoint("distance", roda1, roda2, roda1.x,roda1.y,roda2.x,roda2.y)---------------------------------------------------------------------------------sistema de molas para manter as rodas juntas das suspen??es-------------------------------------------------------------------------------local distanceRodaE = physics.newJoint("distance", roda1, RetanguloEsquerda, roda1.x,roda1.y,RetanguloEsquerda.x,RetanguloEsquerda.y)local distanceRodaD = physics.newJoint("distance", roda2, RetanguloDireita, roda2.x,roda2.y,RetanguloDireita.x,RetanguloDireita.y)local distanceRodaE = physics.newJoint("distance", roda2, RetanguloEsquerda, roda2.x,roda2.y,RetanguloEsquerda.x,RetanguloEsquerda.y)local distanceRodaD = physics.newJoint("distance", roda1, RetanguloDireita, roda1.x,roda1.y,RetanguloDireita.x,RetanguloDireita.y)


Este código fez com que o carro esteja com o comportamento da imagem abaixo:

Carro - https://dl.dropbox.com/u/11765686/carro.png

Não sei se há algo errado na criação dos joints mas gostaria de um resiltado parecido como estes

abaixo:





uid: 154714 topic_id: 35104 reply_id: 335104



[topic_controls]
[/topic_controls]