How to make latch switch
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi, i am making a animation but i want to be able to pause it when i press space and continue again when i press space (just like youtube). This is what i have but im not sure what to put in the while loop.
function myfun(~,event)
if event.Key == "space"
pause(0.1)
while event.Key ~= "space"
end
end
end
I feel like a simaler function needs to be inside the while loop but if i try that i get an error. Currently this function works as a press switch and not as a latch. And the pause doesnt work great either, once in a while it still continues a frame if i hold space. I'm not sure if the explanation is clear, so i attached the .m file.
댓글 수: 0
채택된 답변
추가 답변 (1개)
Walter Roberson
2024년 2월 9일
You have the difficulty that the event field is not going to update as long as you are inside the KeyPressFcn handler.
You will have to do something along the lines of setting a control variable to indicate "go ahead", and then inside the keypress fnc handler, set the control variable to "pause" if it is currently "go ahead" and space is detected, but set it to "go ahead" if it is currently "pause" and space is detected. The control loop would look something like
while TheControlVariable == "pause"
pause(); %to give a chance for the KeyPressFcn handler to activate
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Environment and Settings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!