sunmon / cube Goto Github PK
View Code? Open in Web Editor NEW3x3 루빅스 큐브를 돌리는 사이트
3x3 루빅스 큐브를 돌리는 사이트
Describe Task
모듈화를 잘 했으니 테스트코드도 작성해본다
Relative Issue
서버 테스트코드 작성후 프론트도 작성할 예정
서버는 테스트 코드 먼저 작성 후 기능 만들기 (야매 TDD)
Is your feature request related to a problem? Please describe.
처음 큐브가 보일때 살짝 위에서 떨어지는 모션이 있었으면 좋겠다
Describe the solution you'd like
통통 살짝 튀다가 가만히 있는 그런 모션
Is your feature request related to a problem? Please describe.
사진을 추가하여 큐브 색상 인식하는 기능
Describe the solution you'd like
빈 큐브에 버튼을 눌러 사진을 입력한다 (카메라 찍기, 사진 업로드)
사진대로 색깔을 인식하여 큐브 텍스쳐 생성
아래 부분은 고민이 필요함
Describe alternatives you've considered
오류 처리
Additional context
Describe Task
webpack에 모든 파일을 다 넣어서 번들링하는중
=> 크기가 너무 크다!
웹팩 적용하여 깃허브 서버로 돌리기
결과적으로는 동일한 면을 회전시키나 방법이 다른 경우는 버그가 발생하지 않음.
큐빅이 포함된 layer를 선택할때 발생하는 것으로 생각됨
이슈 #11 과 연관됨
Describe Task
웹팩 데브서버를 이용하여 개발할 예정
사진 파일 (텍스쳐 등) & 모듈들 import 경로 수정이 필요하다
왜? 서버에서 모든 파일을 서브할수없기 때문이다.
Relative Issue
related issue #6
Is your feature request related to a problem? Please describe.
자유롭게 회전하기에 폭발 버튼 추가
Describe the solution you'd like
폭발 버튼 누르면 큐브 내부에서 폭발이 일어나서 큐빅이 후두둑 떨어지고 큐브는 산산조각난다
(물리엔진 필요)
복구 버튼을 누르면 다시 큐브가 휘리리릭 하고 코어에 돌아가서 붙는다
Describe Task
현재 빌드 과정
위 과정을 gulp를 이용하여 자동화할수 있을 것 같다.
Is your feature request related to a problem? Please describe.
큐브가 작아서 잘 안눌린다는 의견이 있다
모바일에서 두 손가락으로 확대 / 축소되는 기능을 만들면 좋겠다
Describe the solution you'd like
줌인 / 줌아웃 기능
화면에 꽉 찰 정도로만 줌인/ 원래 크기까지만 줌아웃
큐브 상태에 따라 회전방향이 동일하지 않음
같은 위치에서 같은 방향으로 마우스를 이동하더라도 큐브의 기존 회전상태에 따라 결과가 달라짐
회전 알고리즘을 수정할것
버그가 정확히 어떤 과정으로 발생하는지는 파악되지 않았으나,
버그를 재현하는 방법 중 한 가지를 영상으로 첨부함
Describe the bug
큐브의 한 레이어만 움직일때는 역치값이 적용되지 않는다.
큐브 몸통은 역치값대로 회전이 동작함
그러나 레이어만 움직일때는 역치값과 상관없이 45도 이상 회전하여야 회전한다
To Reproduce
Steps to reproduce the behavior:
Expected behavior
몸통과 레이어의 역치값이 같다
Additional context
레이어 역치값을 30도로 줄이는 것이 좋을 것 같다.
Describe the bug
마우스를 한 방향으로 이동 후 다른 방향으로 움직이면 큐빅 레이어가 대각선으로 꺾인채로 돌아간다.
컴퓨터와 모바일에서 둘 다 발생한다.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
처음 움직였던 방향대로(step 1에서 움직인 방향) 큐브가 돌아간다
Screenshots
https://user-images.githubusercontent.com/26290571/108352602-6eeab300-722a-11eb-963f-26fe89ce5c11.mp4
Desktop (please complete the following information):
Smartphone (please complete the following information):
고민 1.
리액트를 도입해야 할까?
이유는?
고민 2.
컴포넌트와 상태관리를 도입해야 할까?
이유는?
고민 3.
바닐라 js로 상태관리 및 컴포넌트를 만들어 재사용할 순 없을까?
mouseleave, mouseout 발생시 큐브가 멈춤
ExtrudeGeometry
이용)MeshToonMaterial
)Describe the solution you'd like
사용법을 알려주는 팝업 오버레이가 있으면 좋겠다.
Describe Task
버전 1.0.0 브랜치 생성
터치 에러 고친것도 머지하여 브랜치 생성할 것
참고
https://gmlwjd9405.github.io/2018/05/11/types-of-git-branch.html
2.0.0는 서버작업과 병행
Describe the bug
애니메이션이 동작하는 도중에 다시 마우스를 조작하면 큐브가 꼬인다
To Reproduce
Steps to reproduce the behavior:
모바일 기준으로 확인함
Expected behavior
애니메이션이 수행되는 도중에는 이벤트 리스너가 동작하지 않아야 한다
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
깃허브 페이지로 샘플 페이지 구현
큐브 이동 페이지의 경우 서버의 역할이 없어서 가능할듯하다
코드에 클린 아키텍쳐를 적용한다
Is your feature request related to a problem? Please describe.
이벤트 리스너 삭제 없이 객체만 삭제하는 경우 메모리 누수가 발생함
Describe the solution you'd like
객체를 삭제할때 (큐빅 삭제 등) 이벤트 리스너도 삭제해주어야 한다.
나중에 리액트 쓸때도 컴포넌트 삭제 전에 리스너 삭제해야 할듯.
+)
큐빅 하나하나에 이벤트 달면 또 메모리 누수 일어나지 않나?
매번 이벤트 추가 삭제해야하지 않나?
이벤트 위임도 살펴볼 것
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.