머리 자르기/js: 두 판 사이의 차이
< 머리 자르기
백괴게임>Lemminkäinen 잔글편집 요약 없음 |
백괴게임>Lemminkäinen 잔글 (역시 경고 메시지는 무시하는 게 이로웠다 카더라) |
||
17번째 줄: | 17번째 줄: | ||
var cut_line=$('#cutline').text(); | var cut_line=$('#cutline').text(); | ||
var cut_initial=cut_now-cut_line; | var cut_initial=cut_now-cut_line; | ||
var cut_diff=($('#cut_diff').text() | var cut_diff=($('#cut_diff').text()==0 || isNaN($('#cut_diff').text()))?(0.5):($('#cut_diff').text()); | ||
var cut_speed=cut_now/cut_diff; | var cut_speed=cut_now/cut_diff; | ||
var cut_result1=0; var cut_result2=0; | var cut_result1=0; var cut_result2=0; |
2018년 6월 24일 (일) 23:09 판
응? 이 간단한 게임을, 소스를 뜯어보면 아는 걸 왜 여기에 와서 묻나? 뭐, 알 게 뭐야.
혹시라도 로딩이 오래 걸리면 0으로 나누기나 그에 준하는 계산 작업을 하고 있을 수 있습니다. 그 전에 최신버전 정식판이면 애초에 그럴 리가...??!
그래도 없으리란 보장은 없으니.... 버그가 생기면 기타 사항 참고.
과정
- 처음 가위 애니메이션 시 cut_again을 불러와서 실행합니다. 가위가 딱 한 번만 일방통행하면 그게 게임입니까. 해당 함수는 애니메이션 무한 반복을 위해 만들었습미다.
- 이제 stop 지점(id cut)을 누르면 cut_calc를 불러옵니다. 자르는 거죠.
- 여기에서 님이 경계선 위쪽을 클릭했다는 걸 발견하면 cut_rescalc를 불러옵니다. 그럼 게임하던 거 죄다 숨기고 스토리 불러 옵니다.
cut_diff
id cut_diff 엘리먼트를 불러옵니다. 일단 0과 똑같거나 2보다 클 시 내 맘대로 0.5로 강제 지정합니다. 아, NaN일 때도 강제 지정합니다. 뻘짓하지 마십셔.
cut_diff는 대충 0.x에서 1 사이를 매우 권장합니다.
기타 사항
제가 괴겜에 잘 안 들어오니 버그가 있고 원인이 확실하면 직접 고쳐도 뭐라 하지는 않겠습니다만, 그 외의 수정은 전부 금지하고 있습니다.
// 이부분에 코드 입력 // var cut_now=$('#cuthair').text(); var cut_line=$('#cutline').text(); var cut_initial=cut_now-cut_line; var cut_diff=($('#cut_diff').text()==0 || isNaN($('#cut_diff').text()))?(0.5):($('#cut_diff').text()); var cut_speed=cut_now/cut_diff; var cut_result1=0; var cut_result2=0; $('#cut_res_container').hide(); $('#cut_container').height(cut_now); $("#cut_line").height(cut_line); function cut_again(){ $('#scissors').animate({ top:"100%" },cut_speed,'linear',function(){ $('#scissors').animate({ top:0 },cut_speed,'linear',function(){ cut_again() }); }); } cut_again(); function cut_calc(pos){ if(pos<cut_line){ cut_rescalc(pos); return; } cut_now=pos; cut_speed=cut_now/cut_diff; $("#cut_container").height(cut_now); $("#cuthair").text(cut_now); } function cut_rescalc(pos){ $('#cuthair_info').hide(); $('#cut_container').hide(); $('#cut').hide(); $('#cut_res_container').show(); cut_result1=(100*(1-(cut_now-cut_line)/cut_initial)); cut_result2=(100*(pos/cut_line)); $('#cut_result1').text(cut_result1); $('#cut_result2').text(cut_result2); if(cut_result1===0){ $('#cut_story0').show(); $('#cuts_story').hide(); } else if(cut_result1<90){ $('#cut_story1').show(); } else if(cut_result1<95){ $('#cut_story2').show(); } else if(cut_result1<98){ $('#cut_story3').show(); } else if(cut_result1<=100){ $('#cut_story4').show(); } /* story2 (cut_result2, cuts) */ if(cut_result2<90){ $('#cuts_story1').show(); } else if(cut_result2<95){ $('#cuts_story2').show(); } else if(cut_result2<98){ $('#cuts_story3').show(); } else if(cut_result2<=100){ $('#cuts_story4').show(); } } $('#cut').click(function(){ cut_calc($('#scissors').position().top ); }); // 여기까지 코드 입력 //