わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

キャンバスでアニメーション

HTML5のキャンバスを使って複数の画像を読み込んみ、キャラクターを動かしてアニメーションをさせます。

キャラクターは、オノッチさんが描いたキャラクターを使用させて頂きました。

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
	<title>オノッチ画伯キャラクターのお散歩</title>
	<style>
		#canvas {
			display: block;
			margin: 0px auto;
		}
	</style>
	<script>

		var canvas;
		var interval = 0;

		var images = [];
		var nowImage = 1;

		// タイマー
		function OnTimer() {

			// コンテキスト
			var ctx = canvas.getContext( "2d" );

			// キャンバスクリア
			ctx.drawImage(
				  images[ 0 ]
				, 0		// 描画開始位置X
				, 0		// 描画開始位置Y
			);

			// 画像の取得
			var charImg = images[ nowImage ];

			// 描画位置算出
			var posX = canvas.width  - ( interval * 4 ) % ( canvas.width + charImg.width );
			var posY = canvas.height - charImg.height - Math.cos( ( Math.PI * ( ( interval * 2 ) % 90 ) ) / 180 ) * 100;

			// イメージの描画
			ctx.drawImage(
				  charImg
				, posX	// 描画開始位置X
				, posY	// 描画開始位置Y
			);

			interval++;
		}

		// 初期化
		function OnInit() {

			// キャンバス取得
			canvas = document.getElementById( "canvas" );

			// マウスクリック処理
			canvas.addEventListener( "mousedown", function ( e ) {
					nowImage++;
					if ( nowImage >= images.length ) {
						nowImage = 1;
					}
				}
			);

			// タイマー
			setInterval( "OnTimer()", ( 1000 / 100 ) );
        }

		// 画像ロード
		function OnImageLoad( callback ) {

			// 画像のロード
			function LoadImage( index, files ) {
				var img = new Image();
				img.onload = function () {
					console.log( "index = " + index );
					images.push( this );
					if ( files.length > index + 1 ) {
						console.log( "index = " + index );
						LoadImage( index + 1, files );
					}
					else {
						OnInit();
					}
				}
				img.src = files[ index ];
			};

			// ロードするイメージ
			var files = [
				  "./img/onoty_bk_image.png"
				, "./img/onoty_image2.png"
				, "./img/onoty_image3.png"
				, "./img/onoty_image1.png"
				, "./img/onoty_image4.png"
			];

			// イメージのロード
			LoadImage( 0, files );
		}

		function OnLoad() {
			OnImageLoad( OnInit );
		}


	</script>
</head>
<body onload="OnLoad();">
	<h1>オノッチ画伯キャラクターのお散歩</h1>
	<canvas id="canvas" width="640" height="480"></canvas>
	<p>
		画面をクリックすると、キャラクターが変わるよ♥
	</p>
</body>
</html>






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。