Skip to content

ハコニワプラグインに新版が登場!

昨日登場してenchant.js界に衝撃を与えた「ハコニワプラグイン」が、たった一夜でバリエーションが増えたぞ!

改造ハコニワプラグイン パチンコ玉 – jsdo.it – share JavaScript, HTML5 and CSS

今回の改造プラグインは当たり判定処理を立方体と球の当たり判定に変更し、回転をクォータニオンにしたことで重力の表現が簡単にできる模様。

実際にコードを見てみると
確かにクォータニオンで回転を表現しているようだ。

		var player = new Sphere();
		player.radius = 0.5;
		player.px = player.py = player.pz = 2.5;
		player.vx = player.vy = player.vz = 0.0;
		player.addEventListener('enterframe', function(e){
			// 回転のクオータニオンから画面下方向を求めて重力とする
			var vel = [0, -1, 0];
			quat4.multiplyVec3(rotq, vel);
			this.vx += 0.005 * vel[0];
			this.vy += 0.005 * vel[2];
			this.vz += 0.005 * vel[1];
			// 位置計算
			this.altitude = hakoniwa.collision(this);
			this.px += this.vx;
			this.py += this.vy;
			this.pz += this.vz;
			this.x = this.px;
			this.y = this.pz;
			this.z = this.py;
			this.shadow.y = -this.altitude - this.radius;
		});
		trackball.addChild(player);

このコードはあまりに鮮やかにクォータニオンを使っているのでクォータニオンの知識がないと理解するのは難しいと思う(知識があればすごく解り易いコードだが)。

gl.enchant.js自体はまだクォータニオンを本格的にサポートしていないので、ここではglmatrixを使ってクォータニオンの計算をしている。

箱をくるくる回すとパチンコ玉がちゃんと当たり判定を受けて動く様が見ていて楽しい。

このエントリーをはてなブックマークに追加
はてなブックマーク - ハコニワプラグインに新版が登場!
Post to Google Buzz
Share on GREE

No related posts.

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*