티스토리 뷰
반응형
요약
1. F12를 누르고 나오는 개발자 도구의 콘솔창에서 'window.timeAll = 초;'를 입력하면 제한 시간 조작 가능. 기본값은 120.
2. 콘솔창에 '
Object.defineProperty(window, 'timeRemain', {get: () => 120,set: () => {},});'를 입력하면 제한 시간 없앨 수 있음.
자세히
無料ゲーム「フルーツボックス」
画面上をマウスでドラッグして、数字の合計が10になるようにリンゴを囲むパズルゲームです。(説明) iPhone,iPadやAndroidでも動作します。
www.gamesaien.com
- F12를 눌러 개발자 모드에 진입해 주세요.
- 개발자 모드에서 'Console' 버튼을 눌러주세요.
1. Unlimited 모드 (시간 무제한)
- 콘솔의 하단 입력창(>로 시작하는 부분)에 아래 코드를 붙여 넣은 뒤 엔터를 쳐주세요.
Object.defineProperty(window, 'timeRemain', {
get: () => 120,
set: () => {},
});
- 이제 시간 제한 없이 게임을 즐 길 수 있습니다.
- 콘솔 창에 아래 코드를 입력할 경우, 최종 Score 확인 화면도 볼 수 있습니다.
delete window.timeRemain; // 정의된 프로퍼티 삭제
window.timeRemain = 120; // 원하는 초기값으로 다시 생성
- 감쪽같죠? ^^;
더보기
- JavaScript에서 timeRemain 변수의 동작을 완전히 가로채는 기법.
- Object.defineProperty(): 어떤 객체(window, obj, array 등)의 특정 속성에 대해 읽기(get), 쓰기(set), 속성 설정 가능 여부 등을 제어할 수 있게 해주는 함수.
- 요소 설명
window | 전역 객체 (즉, 전역 변수처럼 쓰이는 timeRemain은 여기 소속됨) |
'timeRemain' | 우리가 컨트롤하려는 속성 이름 |
get: () => 120 | 누가 timeRemain을 읽으려고 할 때 항상 120을 반환 |
set: () => {} | 누가 timeRemain = 0처럼 값을 바꾸려 해도 무시 (빈 함수) |
- 저렇게 설정하면 아래와 같이 동작함.
console.log(timeRemain); // 무조건 120
timeRemain = 0;
console.log(timeRemain); // 여전히 120
- 왜냐면
- get() 함수로 값을 고정했고
- set() 함수에서 아무 처리도 안 하기 때문
- 효과
- timeRemain은 이제 절대 줄어들지 않음
- 누가 timeRemain -= 1, timeRemain = 0 해도 무시됨
- 게임은 "아직 시간이 120초 남았네~" 라고 착각함
- 결과적으로 시간 제한이 무력화됨
사과 게임은 단순히 setTimeout(120000) 같은 방식이 아니라
timeStart ~ timeNow를 비교해서 timeRemain을 계산하고, 0이 되면 게임 종료하는 구조.
그러니까:
setTimeout 차단만으로는 해결이 안 됨.
→ 직접 timeRemain의 동작 제어 필요.
2. 제한 시간 변경
(시작 전에, 새로고침을 한 번 하시는 걸 추천 드려요!)
window.timeAll = 240;
그후 콘솔창에 위 코드를 입력하고 엔터를 쳐주시면 시간 제한이 240초로 변경 됩니다.
물론 10초나 30초로 변경할 수도 있어요. 🍎🍏
반응형
'computer' 카테고리의 다른 글
DBeaver 에서 MySQL 서버 연결 (0) | 2024.06.23 |
---|---|
jupyter notebook에서 바로가기 목차 (0) | 2023.05.02 |
m1 에서 scikit learn 설치하는 법 (3) | 2023.04.28 |
conda offline 등 (0) | 2023.04.28 |
mysqldump, 컬럼명가져오기 (0) | 2023.04.19 |
댓글
- Total
- Today
- Yesterday
공지사항
최근에 올라온 글
글 보관함