Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
CanvasµÄʹÓÃÑùÀý£º¶¯»­µÄʵÏÖ£¬ÒÔµ¯ÌøÐ¡ÇòΪÀý
 
  3799  次浏览      27
 2018-3-2 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ²©¿Í ,±¾ÎÄHTML5 CanvasµÄʹÓÃѧϰ×ܽáϵÁÐÖ®Ò»£¬¶¯»­µÄʵÏÖ£¬ÒÔµ¯ÌøÐ¡ÇòΪÀý¡£

1£¬CanvasʵÏÖ¶¯»­µÄÔ­Àí

£¨1£©Ê×ÏÈÉèÖÃÒ»¸ö¶¨Ê±Æ÷£¬·´¸´µ÷ÓûæÍ¼º¯Êý£¨Ò»°ãÿÃë30~40´Î£©¡£Ã¿´Îµ÷Ó㬶¼»áÖØ»æÕû¸ö»­²¼¡£Íê³ÉºóµÄЧ¹û¾ÍÏñ¶¯»­Ò»Ñù£¬Ã¿Ò»Ö¡¼ä¹ý¶É»áƽ»¬¶øÁ÷³©¡£

£¨2£©ÓÐÁ½ÖÖ·½·¨¶¼¿ÉÒÔʵÏÖÖØ¸´»æÖÆ£ºsetTimeout()ºÍsetInterval()¡£ÓÃÄĸö¿ÉÒÔ×ÔÐоö¶¨¡£

£¨3£©setInterval() Äܱ£Ö¤¾«È·µØ°´Ê±Öػ棬µ±ÓÖ¿ÉÄÜÒò´ËÎþÉüÐÔÄÜ£¨Èç¹û»æÍ¼´úÂëÖ´ÐÐʱ¼ä±ÈÉ趨ʱ¼ä»¹Òª³¤£¬ä¯ÀÀÆ÷½«ºÜÄѸúÉÏ£¬Ëæ×Å»æÍ¼´úÂëµÄÁ¬ÐøÖ´ÐУ¬Ò³Ãæ»á³öÏÖ¶ÌÔݵØÍ£¶Ù£©

£¨4£©±¾ÀýʹÓà setTimeout()£¬ÆäÔËÐеȴýʱ¼äÉèΪ20ºÁÃ루Õâ¸öÊǵäÐ͵͝»­ÑÓ³Ùʱ¼ä£©¡£

2£¬Ð¡Çòµ¯Ìø¶¯»­

£¨1£©µã»÷¡°Ìí¼ÓСÇò¡±°´Å¥£¬»áÔÚ»­²¼ÉÏÌí¼ÓÒ»¸öСÇò¡£

£¨2£©Ìí¼ÓµÄСÇò»áÏòÓÒÏÂ×ö×ÔÓÉÂäÌåÔ˶¯£¬Åöµ½µØ°å¡¢Ç½±Úºó»á·´µ¯¡£Í¬Ê±Ã¿´Î·´µ¯»áÊܵ½×èÁ¦µÄÓ°Ï죬ÉÔÉÔ¼õÉÙËÙ¶È¡£

£¨3£©Êó±êµã»÷ÈÎÒâСÇò£¬»áÈøÃСÇòͻȻ¼ÓËÙ£¬ÈÃËüÏòij¸ö·½Ïòµ¯¿ª¡£

£¨4£©µã»÷¡°Çå¿Õ»­²¼¡±°´Å¥£¬»áÇå³ýÒ³ÃæÉϵÄËùÓÐСÇò¡£

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hangge.com</title>
<style>
canvas {
cursor: pointer;
border: 1px solid black;
}
</style>
<script>
// ÓÃÓÚ±íʾÇòµÄËùÓÐϸ½ÚµÄBallº¯Êý
function Ball(x, y, dx, dy, radius) {
this.x = x;
this.y = y;
this.dx = dx;
this.dy = dy;
this.radius = radius;
this.strokeColor = "black";
this.fillColor = "red";
}

// Õâ¸öÊý×éÓÃÓÚ±£´æ»­²¼ÉϳöÏÖµÄËùÓÐÇò
var balls = [];

var canvas;
var context;

window.onload = function() {
canvas = document.getElementById("canvas");
context = canvas.getContext("2d");
canvas.onmousedown = canvasClick;
// ÿ0.02Ãë»æÖÆÒ»´Î»­²¼
setTimeout(drawFrame, 20);
};

function addBall() {
// СÇò°ë¾¶
var radius = 20;
// ´´½¨ÐµÄball¶ÔÏó
var ball = new Ball(50,50,1,1,radius);
// ½«Æä±£´æÔÚballsÊý×éÖÐ
balls.push(ball);
}

function clearBalls() {
// ɾ³ýËùÓÐÇò¶ÔÏó
balls = [];
}

function drawFrame() {
// Çå³ý»­²¼
context.clearRect(0, 0, canvas.width, canvas.height);

context.beginPath();

// Ñ­»·ËùÓеÄÇò
for(var i=0; i<balls.length; i++) {
// °Ñÿ¸öÇòÒÆ¶¯µ½ÐµÄλÖÃ
var ball = balls[i];
ball.x += ball.dx;
ball.y += ball.dy;

// Ìí¼ÓÖØÁ¦×÷ÓõÄЧ¹û£¬ÈÃÇò¼ÓËÙÏÂÂä
if ((ball.y) < canvas.height) ball.dy += 0.22;
// Ìí¼ÓĦ²ÁÁ¦×÷ÓõÄЧ¹û£¬¼õÂý×óÓÒÒÆ¶¯ËÙ¶È
ball.dx = ball.dx * 0.998;
// Èç¹ûÇòÅöµ½Ä³Ò»±ß£¬¾Í·´µ¯»ØÀ´
if ((ball.x + ball.radius > canvas.width) || (ball.x - ball.radius < 0)) {
ball.dx = -ball.dx;
}
// Èç¹ûÇòÅöµ½µ×²¿£¬·´µ¯»ØÀ´£¬µ«ÂýÂýµØ¼õËÙ
if ((ball.y + ball.radius > canvas.height) || (ball.y - ball.radius < 0)) {
ball.dy = -ball.dy*0.96;
}

context.beginPath();
context.fillStyle = ball.fillColor;

// »æÖÆÇò
context.arc(ball.x, ball.y, ball.radius, 0, Math.PI*2);
context.lineWidth = 1;
context.fill();
context.stroke();
}

// 20ºÁÃëºó»æÖÆÏÂÒ»Ö¡
setTimeout(drawFrame, 20);
}

function canvasClick(e) {
// »ñÈ¡µã»÷µÄ×ø±ê
var clickX = e.pageX - canvas.offsetLeft;
var clickY = e.pageY - canvas.offsetTop;

// ÕÒµ½µãÖеÄСÇò
for(var i in balls)
{
var ball = balls[i];
if ((clickX > (ball.x-ball.radius)) && (clickX < (ball.x+ball.radius)))
{
if ((clickY > (ball.y-ball.radius)) && (clickY < (ball.y+ball.radius)))
{
// ¸Ä±äµã»÷µÄСÇòËÙ¶È
ball.dx -= 2;
ball.dy -= 3;
return;
}
}
}
}
</script>
</head>
<body>
<canvas id="canvas" width="400" height="300">
</canvas>
<div>
<button onclick="addBall()">Ìí¼ÓСÇò</button>
<button onclick="clearBalls()">Çå¿Õ»­²¼</button>
</div>
</body>
</html>
   
3799 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì