Javascript로 음식을 맛있게 보인다 (그 외 외 오버레이)
외에 오버레이에 대한 소개
이미지 위에서 왜곡이 나오므로
뭐든지 맛있을 것 같습니다.
HTML5 캔버스를 사용하여 움직이는 왜곡을 그립니다.
왜곡은 작을수록 속도가 빨라지면 현실이 높아집니다.
Javascript에서
객체 지향적 인 쓰기에 도전하고,
메인 프로그램을 50행으로 맞추는 궁리를 하고 있습니다.
샘플:
h tp // w w. 쉬웠다. 이 m / rks / 쿠이타 / 그 외 ゔ ぇ r ぁ y /
index.html
<!DOCTYPE html>
<html>
<head>
<title>おいしいたこ焼き屋</title>
<script type="text/javascript" src="HokahokaLib.js"></script>
<script type="text/javascript" src="Hokahoka.js"></script>
</head>
<body>
<canvas id="okonomiyaki_canvas" width="200" height="200"></canvas>
</body>
</html>
HokahokaLib.js
//--
// Graphics
// ref.http://www.saturn.dti.ne.jp/npaka/html5/GraphicsEx/index.html
//--
function Graphics(canvas) {
this.canvas =canvas;
this.context=canvas.getContext("2d");
this.loadingCount=0;
}
Graphics.prototype.getLoadingCount=function() {
return this.loadingCount;
}
Graphics.prototype.clearRect=function(x,y,w,h) {
this.context.clearRect(x,y,w,h);
}
Graphics.prototype.loadImage=function(src) {
this.loadingCount++;
var image=new Image();
var source=this;
image.onload=function() {
source.loadingCount--;
}
image.src=src;
return image;
}
Graphics.prototype.drawImage=function(image,x,y) {
this.context.drawImage(image,x,y);
}
Graphics.prototype.drawYuge=function(point,r) {
var i;
for(i=0;i<r;i+=2){
this.context.fillStyle = "rgba(255,255,255,0.05)";
this.context.beginPath();
this.context.arc(point.x,point.y+i/3,i,0,Math.PI*2,true);
this.context.fill();
}
}
Graphics.prototype.getWidth=function() {
return this.canvas.width;
}
Graphics.prototype.getHeight=function() {
return this.canvas.height;
}
//--
// Point
//--
function Point(x,y){
this.x = x;
this.y = y;
return this;
}
Point.prototype.add = function( point ){
this.x += point.x;
this.y += point.y;
}
Hokahoka.js
var YUGE_NUM= 5;
var YUGE_SIZE = 20;
var g,image,i;
var pos = new Array(YUGE_NUM);
var vect = new Array(YUGE_NUM);
window.onload=function() {
g=new Graphics($("okonomiyaki_canvas"));
image=g.loadImage("okonomiyaki.jpg");
//initialize
for (i = 0; i < YUGE_NUM; i++) {
pos[i] = new Point(
Math.random()*g.getWidth(),
Math.random()*g.getHeight());
vect[i] = new Point(0,0);
}
setInterval("motion()",50);
}
function motion() {
if (g.getLoadingCount()>0) return;
g.clearRect(0,0,g.getWidth(),g.getHeight());
g.drawImage(image,0,0);
for (i = 0; i < YUGE_NUM; i++) {
g.drawYuge(pos,YUGE_SIZE);
pos[i].add(vect[i]);
vect[i].add(new Point((1-Math.random()*2)*0.2,-0.1));
if(pos[i].y<-YUGE_SIZE){
pos[i] = new Point(
Math.random()*g.getWidth(),
Math.random()*g.getHeight());
vect[i] = new Point(0,-1);
}
}
}
function $(id) {
return document.getElementById(id);
}
Reference
이 문제에 관하여(Javascript로 음식을 맛있게 보인다 (그 외 외 오버레이)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fatwhale/items/539f102fd466e13b41f0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)