2014-04-06 1 views
2

안녕하세요, 컴퓨터 그래픽에있는 루아 코드를 사용하여 사용자가 위에있는 모니터를 마우스 오른쪽 버튼으로 클릭하여 켜기/끄기를 할 수있게하고 싶습니다.일부 computercraft/lua 코드에 문제가 생겼습니다.

monitor = peripheral.wrap("top") 
monitor.clear() 
monitor.setTextColor(colors.red) 
monitor.setCursorPos(1, 1) 
monitor.setTextScale(1) 
monitor.write("Hello") 

function rubber() 
    monitor.setCursorPos(1, 2) 
    monitor.clearLine() 

    if rs.getOutput("right", true) then 
     monitor.write("Rubber farm is on") 
    elseif rs.getOutput("right", false) then 
     monitor.write("Rubber farm is off") 
    end 

    local event = { os.pullEvent() } 

    if event == "monitor_touch" then 
     if rs.getOutput("right") == true then 
      rs.setOutput("right", false) 
     else 
      rs.setOutput("right", true) 
     end 
    else 
     write("test") 
    end 

    rubber() 
end 

지금은 표시되는 모든 항목이 '안녕하세요'이며 어떻게 수정해야할지 모릅니다. 또한 나는 루아에서 초보자이기 때문에 꽤 간단한 실수를 저질렀을 것이다. 감사합니다

+4

오히려 그렇게 코드 들여 쓰기를 시도 – Eric

+0

에 연결하지 않고, 게시물에 코드를 넣어주세요 당신의 코드는 당신이 무슨 일이 일어나고 있는지 볼 수 있습니다. – user3412375

+0

사이트에 편집이 오프 사이트 : – Eric

답변

2
local event = { os.pullEvent() } 
if event == "monitor_touch" then 

os.pullEvent은 튜플을 반환합니다. 코드에서이 튜플을 테이블로 채운다. 괜찮지 만 그 테이블을 문자열과 비교해보십시오. 테이블은 문자열과 같을 수 없습니다. 테이블입니다. 어느 테이블에 튜플 팩, 첫 번째 반환 값 (유형) 보관하지 않습니다

local event = { os.pullEvent() } 
if event[1] == "monitor_touch" then 
+0

시도했지만 그게 아닙니다. 아무것도 바꾸어 라. – user3412375

0

을 비교할 때

local event = os.pullEvent() 
if event == "monitor_touch" then 

또는 첫 번째 요소를 추출 당신은 함수를 호출해야합니다. rubber()

0

당신은 당신이이 작은 단어

1

문제는 당신이 무한히 반복하는 기능을 가지고 싶어입니다을 만들 필요가

function rubber() 

    monitor.setCursorPos(1,1) 

    monitor.clearLine() 
end 

end이 그것을 당신의 기능을 닫아야합니다,하지만 당신은하지 않은 귀하의 함수 밖에서 함수를 호출 .... 또한 while 루프를 사용하여 살펴 봐야한다

while true do 
//stuff here 
end 

그냥 추가하십시오.

rubber() 

마지막 끝 태그 다음의 마지막 줄에 추가하십시오.

0

이것은 간단합니다. 기능 고무를 작성한 후에 원인 고무를 작성했기 때문에 rubber()를 추가하기 만하면됩니다. 아직 시작하지 않으 셨습니다.

0

"monitor_touch"이벤트는 사용해야 할 이벤트입니다. 또한 사용중인 모니터가 고급 모니터 (노란색 테두리가있는 모니터)인지 확인하십시오.

당신이 이벤트를 이해하는 데 도움이 필요하면,이 페이지 체크 아웃 : http://computercraft.info/wiki/Monitor_touch_(event)

관련 문제