如题所述
ãã为äºç¨DOMå2D游æï¼ä½ åºæ¬ä¸è¦å¨æå°è°æ´å
ç´ é£æ ¼ï¼ä»¥ä¾¿å¨é¡µé¢ä¸ç§»å¨å®ãè½ç¶æäºæ¶åDOMä¿®æ¹æ¯å¾å¥½çï¼ä½è¿ä¸æ¬¡æå°éç¹ä»ç»ä½¿ç¨HTML5 Canvasæ¥å¶ä½å¾åï¼å 为对äºç°ä»£æµè§å¨ï¼å®æ¯æçµæ´»çã
ãã页é¢è®¾ç½®
ããé¦å ï¼ä½ è¦å建ä¸ä¸ªHTML页é¢ï¼å ¶ä¸å å«å¦ä¸canvasæ ç¾ï¼
ãã<!doctype html>
ãã<html>
ãã<head>
ãã<title></title>
ãã</head>
ãã<body style=âposition: absolute; padding:0; margin:0; height: 100%; width:100%â>
ãã<canvas id=âgameCanvasâ></canvas>
ãã</body>
ãã</html>
ããå¦æä½ è½½å ¥ä»¥ä¸ä»£ç ï¼å½ç¶ä»ä¹ä¹ä¸ä¼åºç°ãé£æ¯å 为è½ç¶æ们æä¸ä¸ªcanvasæ ç¾ï¼ä½æ们è¿æ²¡å¨ä¸é¢ç»å¶ä»»ä½ä¸è¥¿ãæ们æ¥æ·»å ä¸äºç®åçcanvaså½ä»¤æ¥ç»å¶å°ç®±åå§ã
ãã<head>
ãã<title></title>
ãã<script type=âtext/javascriptâ>
ããvar canvas = null;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããvar ctx = canvas.getContext(â2dâ);
ããctx.fillStyle = â#000000â²;
ããctx.fillRect(0, 0, canvas.width, canvas.height);
ããctx.fillStyle = â#333333â²;
ããctx.fillRect(canvas.width / 3, canvas.height / 3, canvas.width / 3,
ããcanvas.height / 3);
ãã}
ãã</script>
ãã</head>
ãã<body onload=âonload()â â¦
ããå¨è¿ä¸ªä¾åä¸ï¼æå·²ç»å¨bodyæ ç¾ä¸æ·»å äºä¸ä¸ªonloadäºä»¶ï¼ç¶åæ§è¡åè½è·å¾ç»å¸å ç´ ï¼å¹¶ç»å¶å 个箱åãé常ç®åã
ããè¿ä¸ªç®±åä¸éï¼ä½ä½ ä¼æ³¨æå°ï¼ç»å¸æ²¡æéºæ»¡æ´ä¸ªæµè§å¨çªå£ã为äºè§£å³è¿ä¸ªé®é¢ï¼æ们å¯ä»¥å¢å ç»å¸ç宽度åé«åº¦ãææ¯ææ ¹æ®ç»å¸æå å«çæ件å ç´ ç大å°æ¥çµæ´»å°è°æ´ç»å¸å°ºå¯¸ã
ããvar canvas = null;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããcanvas.width = canvas.parentNode.clientWidth;
ããcanvas.height = canvas.parentNode.clientHeight;
ããâ¦
ããå è½½åï¼ä½ ä¼çå°ç»å¸éºæ»¡æ´ä¸ªå±å¹äºã太好äºã
ããåè¿ä¸æ¥ï¼å¦ææµè§å¨çªå£å¤§å°æ¯ç±ç¨æ·è°æ´çï¼æ们è¿è¦éç½®ç»å¸ç尺寸ã
ããvar canvas = null;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããresize();
ãã}
ããfunction resize() {
ããcanvas.width = canvas.parentNode.clientWidth;
ããcanvas.height = canvas.parentNode.clientHeight;
ããvar ctx = canvas.getContext(â2dâ);
ããctx.fillStyle = â#000000â²;
ããctx.fillRect(0, 0, canvas.width, canvas.height);
ããctx.fillStyle = â#333333â²;
ããctx.fillRect(canvas.width/3, canvas.height/3, canvas.width/3, canvas.height/3);
ãã}
ããæ·»å onresizeå½ä»¤å°bodyæ ç¾ã
ãã<body onresize=âresize()â â¦
ããç°å¨ï¼å¦æä½ è°æ´æµè§å¨ç大å°ï¼ç©å½¢åºè¯¥å¦ä¸å¾æ示ã
ããè½½å ¥å¾å
ãã大é¨å游æé½éè¦å¨ç»çåç»é¢ï¼æ以ææ¥æ·»å ä¸äºå¾åå§ã
ããé¦å ï¼ä½ éè¦å¾åèµæºãå 为æ们è¦ç¨javascriptç»å¶å®ï¼æ以æè§å¾å 声æå¾åç¶å设置å®çsrcå±æ§ä¸ºä½ æ³è½½å ¥çå¾åçURLï¼æ¯è¾åçã
ããvar img = null;
ããfunction onload() {
ããâ¦
ããimg = new Image();
ããimg.src = âsimba.pngâ;
ãã}
ããç¶åä½ å¯ä»¥éè¿æ·»å è¿ä¸ªå°resizeæ¹æ³ä¸æ¥ç»å¶å¾åï¼
ããctx.drawImage(img, canvas.width/2 â (img.width/2), canvas.height/2 â (img.height/2));
ããå¦æä½ éæ°è½½å ¥é¡µé¢åï¼å¨å¤§é¨åæ åµä¸ï¼ä½ ä¼çå°å¾ååºç°äºãä¸è¿æ说çæ¯å¤§é¨åæ åµä¸ï¼å 为è¿åå³äºä½ çæºå¨è·å¾æå¤å¿«ãæµè§å¨æ¯å¦å·²ç»ç¼åäºå¾åãé£æ¯å 为resizeæ¹æ³çè°ç¨æ¶é´ä»äºä½ å¼å§è½½å ¥å¾åï¼è®¾ç½®å®çsrcå±æ§ï¼çæ¶é´å°æµè§å¨åå¤å¥½çæ¶é´ä¹é´ã对äºä¸ä¸¤å¼ å¾åï¼è¿ä¸ªæ¹æ³å¯è½ä¸éï¼ä½å½ä½ ç游æå¼å§å大æ¶ï¼ä½ å°±å¿ é¡»çå°ææå¾åå è½½å®æè½æ§è¡æ´»å¨ã
ããç»å¾åæ·»å ä¸ä¸ªéç¥çå¬å¨ï¼è¿æ ·å½å¾ååå¤å°±ç»ªæ¶ä½ å°±ä¼æ¶å°åå«ä¿¡å·ãæå¾éæ°æ´çä¸ä¸ï¼ä»¥ä¸æ¯æ´æ°è¿ç代ç ï¼
ããvar canvas = null;
ããvar img = null; var ctx = null;
ããvar imageReady = false;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããctx = canvas.getContext(â2dâ);
ããimg = new Image();
ããimg.src = âimages/simba.pngâ;
ããimg.onload = loaded();
ããresize();
ãã}
ããfunction loaded() {
ããimageReady = true; redraw();
ãã}
ããfunction resize() {
ããcanvas.width = canvas.parentNode.clientWidth;
ããcanvas.height = canvas.parentNode.clientHeight; redraw();
ãã}
ããfunction redraw() {
ããctx.fillStyle = â#000000â²;
ããctx.fillRect(0, 0, canvas.width, canvas.height);
ããif (imageReady)
ããctx.drawImage(img, canvas.width/2 â (img.width/2), canvas.height/2 â (img.height/2));
ãã}
ããç»æåºè¯¥æ¯ï¼
ããè¿ä¸ªå¾åæ¾ç¤ºäºä¸åªå¸è¡é¬¼ç«ï¼å¥½å§ï¼æ¯æèªå·±è§å¾åï¼ç6个å¥è·å¸§ã为äºæè¿ä¸ªåç»é¢åæå¨ç»ï¼æä»¬å¿ é¡»æ¯æ¬¡ç»å¶ä¸ä¸ªå¸§ã
ãã页é¢è®¾ç½®
ããé¦å ï¼ä½ è¦å建ä¸ä¸ªHTML页é¢ï¼å ¶ä¸å å«å¦ä¸canvasæ ç¾ï¼
ãã<!doctype html>
ãã<html>
ãã<head>
ãã<title></title>
ãã</head>
ãã<body style=âposition: absolute; padding:0; margin:0; height: 100%; width:100%â>
ãã<canvas id=âgameCanvasâ></canvas>
ãã</body>
ãã</html>
ããå¦æä½ è½½å ¥ä»¥ä¸ä»£ç ï¼å½ç¶ä»ä¹ä¹ä¸ä¼åºç°ãé£æ¯å 为è½ç¶æ们æä¸ä¸ªcanvasæ ç¾ï¼ä½æ们è¿æ²¡å¨ä¸é¢ç»å¶ä»»ä½ä¸è¥¿ãæ们æ¥æ·»å ä¸äºç®åçcanvaså½ä»¤æ¥ç»å¶å°ç®±åå§ã
ãã<head>
ãã<title></title>
ãã<script type=âtext/javascriptâ>
ããvar canvas = null;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããvar ctx = canvas.getContext(â2dâ);
ããctx.fillStyle = â#000000â²;
ããctx.fillRect(0, 0, canvas.width, canvas.height);
ããctx.fillStyle = â#333333â²;
ããctx.fillRect(canvas.width / 3, canvas.height / 3, canvas.width / 3,
ããcanvas.height / 3);
ãã}
ãã</script>
ãã</head>
ãã<body onload=âonload()â â¦
ããå¨è¿ä¸ªä¾åä¸ï¼æå·²ç»å¨bodyæ ç¾ä¸æ·»å äºä¸ä¸ªonloadäºä»¶ï¼ç¶åæ§è¡åè½è·å¾ç»å¸å ç´ ï¼å¹¶ç»å¶å 个箱åãé常ç®åã
ããè¿ä¸ªç®±åä¸éï¼ä½ä½ ä¼æ³¨æå°ï¼ç»å¸æ²¡æéºæ»¡æ´ä¸ªæµè§å¨çªå£ã为äºè§£å³è¿ä¸ªé®é¢ï¼æ们å¯ä»¥å¢å ç»å¸ç宽度åé«åº¦ãææ¯ææ ¹æ®ç»å¸æå å«çæ件å ç´ ç大å°æ¥çµæ´»å°è°æ´ç»å¸å°ºå¯¸ã
ããvar canvas = null;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããcanvas.width = canvas.parentNode.clientWidth;
ããcanvas.height = canvas.parentNode.clientHeight;
ããâ¦
ããå è½½åï¼ä½ ä¼çå°ç»å¸éºæ»¡æ´ä¸ªå±å¹äºã太好äºã
ããåè¿ä¸æ¥ï¼å¦ææµè§å¨çªå£å¤§å°æ¯ç±ç¨æ·è°æ´çï¼æ们è¿è¦éç½®ç»å¸ç尺寸ã
ããvar canvas = null;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããresize();
ãã}
ããfunction resize() {
ããcanvas.width = canvas.parentNode.clientWidth;
ããcanvas.height = canvas.parentNode.clientHeight;
ããvar ctx = canvas.getContext(â2dâ);
ããctx.fillStyle = â#000000â²;
ããctx.fillRect(0, 0, canvas.width, canvas.height);
ããctx.fillStyle = â#333333â²;
ããctx.fillRect(canvas.width/3, canvas.height/3, canvas.width/3, canvas.height/3);
ãã}
ããæ·»å onresizeå½ä»¤å°bodyæ ç¾ã
ãã<body onresize=âresize()â â¦
ããç°å¨ï¼å¦æä½ è°æ´æµè§å¨ç大å°ï¼ç©å½¢åºè¯¥å¦ä¸å¾æ示ã
ããè½½å ¥å¾å
ãã大é¨å游æé½éè¦å¨ç»çåç»é¢ï¼æ以ææ¥æ·»å ä¸äºå¾åå§ã
ããé¦å ï¼ä½ éè¦å¾åèµæºãå 为æ们è¦ç¨javascriptç»å¶å®ï¼æ以æè§å¾å 声æå¾åç¶å设置å®çsrcå±æ§ä¸ºä½ æ³è½½å ¥çå¾åçURLï¼æ¯è¾åçã
ããvar img = null;
ããfunction onload() {
ããâ¦
ããimg = new Image();
ããimg.src = âsimba.pngâ;
ãã}
ããç¶åä½ å¯ä»¥éè¿æ·»å è¿ä¸ªå°resizeæ¹æ³ä¸æ¥ç»å¶å¾åï¼
ããctx.drawImage(img, canvas.width/2 â (img.width/2), canvas.height/2 â (img.height/2));
ããå¦æä½ éæ°è½½å ¥é¡µé¢åï¼å¨å¤§é¨åæ åµä¸ï¼ä½ ä¼çå°å¾ååºç°äºãä¸è¿æ说çæ¯å¤§é¨åæ åµä¸ï¼å 为è¿åå³äºä½ çæºå¨è·å¾æå¤å¿«ãæµè§å¨æ¯å¦å·²ç»ç¼åäºå¾åãé£æ¯å 为resizeæ¹æ³çè°ç¨æ¶é´ä»äºä½ å¼å§è½½å ¥å¾åï¼è®¾ç½®å®çsrcå±æ§ï¼çæ¶é´å°æµè§å¨åå¤å¥½çæ¶é´ä¹é´ã对äºä¸ä¸¤å¼ å¾åï¼è¿ä¸ªæ¹æ³å¯è½ä¸éï¼ä½å½ä½ ç游æå¼å§å大æ¶ï¼ä½ å°±å¿ é¡»çå°ææå¾åå è½½å®æè½æ§è¡æ´»å¨ã
ããç»å¾åæ·»å ä¸ä¸ªéç¥çå¬å¨ï¼è¿æ ·å½å¾ååå¤å°±ç»ªæ¶ä½ å°±ä¼æ¶å°åå«ä¿¡å·ãæå¾éæ°æ´çä¸ä¸ï¼ä»¥ä¸æ¯æ´æ°è¿ç代ç ï¼
ããvar canvas = null;
ããvar img = null; var ctx = null;
ããvar imageReady = false;
ããfunction onload() {
ããcanvas = document.getElementById(âgameCanvasâ);
ããctx = canvas.getContext(â2dâ);
ããimg = new Image();
ããimg.src = âimages/simba.pngâ;
ããimg.onload = loaded();
ããresize();
ãã}
ããfunction loaded() {
ããimageReady = true; redraw();
ãã}
ããfunction resize() {
ããcanvas.width = canvas.parentNode.clientWidth;
ããcanvas.height = canvas.parentNode.clientHeight; redraw();
ãã}
ããfunction redraw() {
ããctx.fillStyle = â#000000â²;
ããctx.fillRect(0, 0, canvas.width, canvas.height);
ããif (imageReady)
ããctx.drawImage(img, canvas.width/2 â (img.width/2), canvas.height/2 â (img.height/2));
ãã}
ããç»æåºè¯¥æ¯ï¼
ããè¿ä¸ªå¾åæ¾ç¤ºäºä¸åªå¸è¡é¬¼ç«ï¼å¥½å§ï¼æ¯æèªå·±è§å¾åï¼ç6个å¥è·å¸§ã为äºæè¿ä¸ªåç»é¢åæå¨ç»ï¼æä»¬å¿ é¡»æ¯æ¬¡ç»å¶ä¸ä¸ªå¸§ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-04-17
去w3cschoocl 看看