자유게시판

자유게시판 [자유게시판]
라온헤윰님 질문에 대한 답변
2018.11.22 13:34 조회 : 294
Lv. 17 MapMaker 가입된 패밀리가 없습니다. 작성자 게시물 더보기

질문 :

루아에서 이중 if문을 사용할려면
어떻게 해야되나요?

예시로
btn1 = Game.EntityBlock.Create({x=0, y=0, z=0})
btn2 = Game.EntityBlock.Create({x=1, y=1, z=1})
function btn1:OnUse(player)
if self.onoff .== true then
elseif btn2.onoff .== true then
player.position = ({x=2, y=2, z=-2})
end
end
하면
btn1의 장치를 ON으로 바꿨을떄
btn2도 ON 상태면
플레이어를 특정 좌표로 텔레포트 시키는게 맞는건가요?

루아 고수님들
예시좀 부탁드립니다..

답변 :
btn1 장치를 ON으로 하였을 때, btn2 장치 또한 ON 상태여야 특정좌표로 텔레포트시키는 기능을 수행하려면
function btn1:OnUse(player)
if (self.onoff .== true) and (btn2.onoff .== true) then
                player.position = ({x=2, y=2, z=-2})
end
end
이 적절해 보입니다.
elseif문은 선행된 if문의 조건을 만족하지 않아 if문 아래의 명령어들을 수행하지 않을 때 그 다음으로 읽게되는 부분입니다.
즉 질문자님이 작성하신 코드대로라면, btn1의 신호가 OFF인 경우에 btn2의 ON 상태를 체크하게 됩니다.
그리고 질문자님이 작성하신 코드대로라면, 'if self.onoff .== true then' 밑으로 구동해야 할 명령어들이 없기 때문에 오류가 발생합니다.

도움 되셨으면 좋겠습니다.
댓글을 남기시려면 로그인 해주세요
댓글 : 8
  • 다시한번 감사합니다 (__) 좋은하루 되세요 ^^ Lv. 53라온헤윰 2018.11.22
  • 라온헤윰 // 단, 일반 연산자에서 같지 않다를 나타내는 '~='는 그대로 사용할 수 있습니다. 답변이 도움이 되셨길 바랍니다. Lv. 17MapMaker 2018.11.22
  • 라온헤윰 // 그렇습니다. lua 언어에서는 C를 바탕으로 두고 있지만 연산자 일부가 다른 점이 있습니다. &&를 and로, ||를 or로 풀어서 써야 합니다. 이 밖에도 '~' 기호도 not으로 풀어서 써야 합니다. Lv. 17MapMaker 2018.11.22
  • 혹시 질문 하나 더하자면 제가 C언어 하는사람인대 [ && = and , || = or , != = not 이런식으로 쓰면 되나요? Lv. 53라온헤윰 2018.11.22
  • 네네 그 onnexon 다른글씨로 바뀌어서 저도 .찍었네요 Lv. 53라온헤윰 2018.11.22
  • ㄷㄷ 최소 배운자 Lv. 65김일성 2018.11.22
  • 안되서 계속 어떤식으로 해야되나 고민이였는대 도움이 너무 많이 되었습니다 감사합니다 ^^ Lv. 53라온헤윰 2018.11.22
  • .==라고 적은 부분은 ==로 봐주시면 됩니다. Lv. 17MapMaker 2018.11.22