공이 당구처럼 튀는 애니메이션 라이브러리
웹 페이지에서 "볼이 당구처럼 튀는 애니메이션"을 쉽게 구현할 수 있는 JavaScript 라이브러리를 만들었습니다.
만들었지만, 어디에도 소개하지 않고 방치하고 있었기 때문에 조금 기억이 그렇습니다만…
개요
간단한 Canvas 애니메이션입니다.
라이브러리를 읽으면
new
끝납니다. API는 중지/다시 열립니다.사용 예
자세한 내용은 GitHub 또는 데모 HTML을 살펴보십시오.
자동 생성된 canvas 요소가
document.body
에 추가됩니다. <script src="./billiards.min.js"></script>
<script>
new Billiards({});
</script>
<canvas class="canvas"></canvas>
<script>
new Billiards({
'canvas': document.querySelector('.canvas')
});
</script>
<div class="canvas-container"></div>
<script>
new Billiards({
'parent': document.querySelector('.canvas-container')
});
</script>
new Billiards({
'width': '640',
'height': '480',
'fillStyle': 'rgba(0, 0, 0, 0.25)'
});
new Billiards({
'fitToWindow': true
});
자동으로 부모 요소의 크기에 맞추기
fitToParentW
및 fitToParentH
도 있습니다.자세한 내용은 여기. RGBA 값, 반경 및 속도는
[ 最小値, 最大値 ]
범위에서 무작위로 결정됩니다.반경
r
은 픽셀 지정이 아니라 Canvas의 크기에 대한 백분율을 지정합니다. new Billiards({
'number': 8,
'r': [ 0.1, 0.2 ],
'color': {
'r': [ 192, 255 ],
'g': [ 128, 255 ],
'b': [ 0, 255 ],
'a': [ 1.0, 1.0 ]
},
'composite': 'lighter',
'velocity': [ 1.0, 2.0 ]
});
new Billiards({
'rebound': false
});
new Billiards({
'collide': false
});
기존
requestAnimationFrame
에 포함하고 싶을 때. const billiards = new Billiards({
'autoPlay': false
});
const update = () => {
requestAnimationFrame(() => {
billiards.update();
update();
});
};
이미지를 그리기를 원할 때.
billiards
는 인스턴스, billiards._
는 설정, sprite
는 현재 스프라이트입니다. new Billiards({
'render': (billiards, sprite) => {
billiards.context.fillStyle = sprite.color;
billiards._.composite && (billiards.context.globalCompositeOperation = billiards._.composite);
billiards.context.beginPath();
billiards.context.arc(sprite.x, sprite.y, sprite.r, 0, Math.PI * 2);
billiards.context.closePath();
billiards.context.fill();
}
});
그건 그렇고
왜 내 문서라든지 에세 영어로 썼을까요.
Reference
이 문제에 관하여(공이 당구처럼 튀는 애니메이션 라이브러리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mimonelu/items/161a7546d844aa1372d7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)