<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>紫キャ.net</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/" />
    <link rel="self" type="application/atom+xml" href="http://murakya.net/atom.xml" />
    <id>tag:murakya.net,2010-12-15://1</id>
    <updated>2012-04-30T10:52:52Z</updated>
    <subtitle>オリジナルゲームを公開中</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.04</generator>

<entry>
    <title>Javascriptで物理演算エンジンつくったよ！！（2） - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2012/04/javascript2.html" />
    <id>tag:murakya.net,2012:/blog//2.45</id>

    <published>2012-04-30T10:32:14Z</published>
    <updated>2012-04-30T10:52:52Z</updated>

    <summary> どーしても摩擦の計算が気に入らなかったので、変更しました。 当然、正しい摩擦計...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
どーしても摩擦の計算が気に入らなかったので、変更しました。<br>
<br>
当然、正しい摩擦計算ができるわけないので、というか私には理解できないので、<br>
めり込み補正力を利用して摩擦を計算。<br>
現実にはありえない力ですが、それっぽく動いてくれました（＾＾<br>
<br>
そのほかもちょろちょろ変更、だいぶ満足な動きになってきました。<br>
容量はちょっと増えて14kB、だんだん増えてく。。。<br>
<br>
あとはポルターガイスト現象（笑）をなんとかしたいなぁ。<br>
</p>
<p style="text-align:center">
<a href="http://murakya.net/dev/nbee2d/nbee2d0.0.2.3/"><img alt="20120410.png" src="http://murakya.net/blog/2012/04/10/20120410.png" width="359" height="240" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" />
デモ</a>
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Javascriptで物理演算エンジンつくったよ！！ - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2012/04/javascript.html" />
    <id>tag:murakya.net,2012:/blog//2.44</id>

    <published>2012-04-09T21:42:58Z</published>
    <updated>2012-04-09T21:57:55Z</updated>

    <summary> プログラムやってると、ふと物理演算エンジン作ってみたくなることがあるよね！！ ...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
プログラムやってると、ふと物理演算エンジン作ってみたくなることがあるよね！！<br>
ってことで作ってみました。
</p>
<p style="text-align:center">
<a href="http://murakya.net/dev/nbee2d/nbee2d0.0.1.1/"><img alt="20120410.png" src="http://murakya.net/blog/2012/04/10/20120410.png" width="359" height="240" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" />
デモ</a>
</p>
<p>
できるだけシンプルになるよう作ったので、必要な機能もないかも（笑<br>
物体が積み重なると震えがとまらないし、物体同士がめり込みすぎるし。。。<br>
まあ、コア部分が12kBで作れたので満足です。<br>
これでゲームでも作って、実用レベルだったらライブラリとして公開しようかな。<br>
</P>]]>
        
    </content>
</entry>

<entry>
    <title>Diana&apos;s Shower Room - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2012/02/dianas-shower-room.html" />
    <id>tag:murakya.net,2012:/blog//2.43</id>

    <published>2012-02-24T13:47:19Z</published>
    <updated>2012-02-24T14:56:42Z</updated>

    <summary> 新作ゲーム完成しました！！ murakya.net初のアンドロイドゲーム、アン...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
<a href="https://market.android.com/details?id=net.murakya"><img alt="ic_launcher.png" src="http://murakya.net/blog/2012/02/24/ic_launcher.png" width="72" height="72" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a>
新作ゲーム完成しました！！<br>
murakya.net初のアンドロイドゲーム、<a href="https://market.android.com/details?id=net.murakya">アンドロイドマーケットからダウンロード</a>できます。<br>
落ちものゲーム？水道管ゲーム？、なんというのかわかりませんが、そんな感じのジャンルです（＾＾；<br>
当然無料なので、ちょっとした暇つぶしにでも、お楽しみください。<br>
</p>]]>
        <![CDATA[<p style="border : 1px solid black; background : #FFE4E1; padding : 8px">
大変だ、ダイアナさんのシャワー室が壊れて水が出なくなってしまった。<br>
早く直したいんだけど、ダイアナさんが怒るとびっくりして手を離しちゃう。<br>
だから怒られる前に狙いを定めなくちゃ。<br>
ダイアナさんが風邪を引く前にシャワー室を直すぞ！！<br>
</p>
<p>
<a href="http://murakya.net/blog/2012/02/24/ss1.png"><img alt="ss1.png" src="http://murakya.net/blog/assets_c/2012/02/ss1-thumb-200x333-100.png" width="200" height="333" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a>
ということで、ちょっと気の短いダイアナさんの罵声に耐えつつ水道管をつないでいくゲームです。<br>
</p>
<p style="clear:both">
<a href="http://murakya.net/blog/2012/02/24/ss2.png"><img alt="ss2.png" src="http://murakya.net/blog/assets_c/2012/02/ss2-thumb-200x333-103.png" width="200" height="333" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a>
ダイアナさんが怒鳴るとびっくりして、水道管を落としてしまうので、そのまえに落としたい位置に移動して狙いを定め、最終的にシャワー口につなぐことが目的です。<br>
難易度は高目かもしれませんが、ミスしても安心、時々出てくる石で間違ったところにおいた水道管を壊すことができます。<br>
ダイアナさんお罵声に負けないで、落ち着いてプレーしてください。（＾＾<br>
</p>
<p style="clear:both">
<a href="http://murakya.net/blog/2012/02/24/ss3.png"><img alt="ss3.png" src="http://murakya.net/blog/assets_c/2012/02/ss3-thumb-200x333-105.png" width="200" height="333" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></a>
早くつなぐほどダイアナさんの機嫌が良くなり、水道管が長いほど得点が高くなります。<br>
このバランスを考えつつ、高得点をめざしてください。<br>
得点はそのままtwitterにつぶやくことができます。<br>
</p>
<p style="clear:both; font-size:200%;border:2px solid black;background:silver;border-radius: 10px;text-align:center">
<a href="https://market.android.com/details?id=net.murakya" style="text-decoration:none">アンドロイドマーケットからダウンロード</a>
</p>]]>
    </content>
</entry>

<entry>
    <title>忍者じゃり丸のプレー動画 - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2012/01/post-20.html" />
    <id>tag:murakya.net,2012:/blog//2.42</id>

    <published>2012-01-06T04:59:42Z</published>
    <updated>2012-01-06T10:51:08Z</updated>

    <summary> 忍者じゃり丸のプレー動画をYoutubeにアップしました。 マウスカーソル付き...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="ブラウザゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="日記" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
<a href="http://murakya.net/game/yokoaction_beta/">忍者じゃり丸</a>のプレー動画をYoutubeにアップしました。<br>
マウスカーソル付きでキャプチャしたので、操作の仕方もなんとなくわかるかな？<br>
<iframe width="480" height="360" src="http://www.youtube.com/embed/Lpp2e-vj-LI" frameborder="0" allowfullscreen></iframe>
</p>]]>
        
    </content>
</entry>

<entry>
    <title>ゲーム製作でHTML5-Canvasを勉強するぞ！！ 第12回  - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/11/html5-canvas-12.html" />
    <id>tag:murakya.net,2011:/blog//2.41</id>

    <published>2011-11-21T12:38:19Z</published>
    <updated>2011-11-29T12:12:17Z</updated>

    <summary>シューティングといえばレーザー！！ レーザーの表現は、昔は細い線一本でしたが、今...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ゲーム製作でHTML5-Canvasを勉強するぞ！！" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<h3>シューティングといえばレーザー！！</h3>
<p>
<img alt="12-1.png" src="http://murakya.net/blog/2011/11/25/12-1.png" width="263" height="300" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" />
レーザーの表現は、昔は細い線一本でしたが、今では極太レーザーやホーミングでクネクネするものなど、いろいろあります。<br>
どうせ作るなら一本線だとつまらないので、ホーミングレーザーを作ってみます。<br>
</p>
]]>
        <![CDATA[<style>
dl
{
    border : 1px solid silver;
    padding : 8px;
}
dt
{
    font-weight : bold;
}
dd
{
    padding-left : 20px;
}
.demo
{
    font-size : 200%;
    font-weight : bold;
}
</style>
<h3>まずはホーミング弾を</h3>
<p>
<img alt="12-2.png" src="http://murakya.net/blog/2011/11/28/12-2.png" width="200" height="177" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" />
作成します。
移動速度と方向を極座標として持たせ、自機との角度によって移動方向を補正します。<br>
これで徐々に自機の方に近づいていくホーミング弾ができます。<br style="clear:both;">
</p>
<pre name="code" class="src">
var ax = this.x - this.previous.x;
var ay = this.y - this.previous.y;
var bx1 = myShip.x - this.previous.x;
var bx2 = myShip.x + WIDTH - this.previous.x;
var bx3 = myShip.x - WIDTH - this.previous.x;
var bx;
if (Math.abs(bx1) < Math.abs(bx2))
{
	if (Math.abs(bx1) < Math.abs(bx3))
		bx = bx1;
	else
		bx = bx3;
}
else
{
	if (Math.abs(bx2) < Math.abs(bx3))
		bx = bx2;
	else
		bx = bx3;
}
var by = myShip.y - this.previous.y;
var ep = ax * by - bx * ay;
if (0 < ep)
	this.theta += 0.1;
else
	this.theta -= 0.1;
</pre>
<p>
直交座標での右端と左端は繋がっているので、ちょっとソースが長くなっていますが、ようするに進もうとしている方向よりも右側だったら、右に曲がるように、左側だったら左に曲がるようにしているだけです。<br>
</p>

<h3>レーザーっぽくするには</h3>

<p>
<img alt="12-3.png" src="http://murakya.net/blog/2011/11/29/12-3.png" width="339" height="200" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" />過去の位置を保存しておいてそれをつなぎます。<br>
今回は10点分記録しておくようにしました。<br>
ちゃんとしたゲームでは各点にそって画像をコピーしますが、処理速度的に厳しいので今回は直線で結びました。<br>
これでも雰囲気は出ていると思います。<br>
</p>

<h3>まとめると</h3>
<p>
以下のようになりました。
</p>
<pre name="code" class="src">
var EnemyHomingLaser = function (x, y)
{
	this.move = function ()
	{
		this.x = (this.x + this.speed * Math.cos(this.theta) + WIDTH) % WIDTH;
		this.y += this.speed * Math.sin(this.theta);

		if (this.y < HEIGHT * 3 / 4)
		{
			var ax = this.x - this.pos[this.pos.length - 1][0];
			var ay = this.y - this.pos[this.pos.length - 1][1];
			var bx1 = myShip.x - this.pos[this.pos.length - 1][0];
			var bx2 = myShip.x + WIDTH - this.pos[this.pos.length - 1][0];
			var bx3 = myShip.x - WIDTH - this.pos[this.pos.length - 1][0];
			var bx;
			if (Math.abs(bx1) < Math.abs(bx2))
			{
				if (Math.abs(bx1) < Math.abs(bx3))
					bx = bx1;
				else
					bx = bx3;
			}
			else
			{
				if (Math.abs(bx2) < Math.abs(bx3))
					bx = bx2;
				else
					bx = bx3;
			}
			var by = myShip.y - this.pos[this.pos.length - 1][1];
			var ep = ax * by - bx * ay;
			if (0 < ep)
				this.theta += 0.1;
			else
				this.theta -= 0.1;
		}

		this.speed += 0.2;
		
		this.pos.push([this.x, this.y]);
		if (10 < this.pos.length) this.pos.shift();

		var out = true;
		for (var n = 0; n < this.pos.length; n++)
		{
			if (this.pos[n][1] < HEIGHT + 5) out = false;
		}
		if (out) return false;
		return true;
	}

	this.drawPolar = function (ctx)
	{
		var offset = 0;
	
		ctx.save();
		ctx.beginPath();
		ctx.moveTo(this.pos[0][0], this.pos[0][1]);
		for (var n = 1; n < this.pos.length; n++)
		{
			if (WIDTH / 2 < Math.abs(this.pos[n][0] - this.pos[n - 1][0]))
				offset = this.pos[n][0] < this.pos[n - 1][0] ? WIDTH : -WIDTH;
			ctx.lineTo(offset + this.pos[n][0], this.pos[n][1]);
		}
		ctx.strokeStyle = "rgb(192, 0, 128)";
		ctx.lineWidth = 4;
		ctx.lineCap = "round";
		ctx.stroke();

		ctx.strokeStyle = "rgb(255, 192, 255)";
		ctx.lineWidth = 2;
		ctx.stroke();
		ctx.restore();
	}
	
	this.initialize(x, y, 2);

	this.speed = 1;
	this.theta = Math.PI / 2 * 3;
	this.pos = [[x, y]];
}
EnemyHomingLaser.prototype = new BaseObject();
</pre>
<p>
自機にある程度近づいても追尾すると絶対によけられないので、直交座標上で画面の3/4になるまで追尾するようにしています。
</p>

<p class="demo">
<a href="http://murakya.net/dev/canvas/canvas012.html">
<img alt="12-4.png" src="http://murakya.net/blog/2011/11/28/12-4.png" width="150" height="150" class="mt-image-none" style="" /><br>
Play
</a>
</p>]]>
    </content>
</entry>

<entry>
    <title>ゲーム製作でHTML5-Canvasを勉強するぞ！！ 第11回  - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/07/html5-canvas-11.html" />
    <id>tag:murakya.net,2011:/blog//2.34</id>

    <published>2011-07-03T10:38:37Z</published>
    <updated>2011-07-04T01:59:53Z</updated>

    <summary>そろそろ自機にもあたり判定を 自機がダメージを受けた場合の効果としては、爆発して...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ゲーム製作でHTML5-Canvasを勉強するぞ！！" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<h3>そろそろ自機にもあたり判定を</h3>
<p>
自機がダメージを受けた場合の効果としては、爆発して機数が減ったり、体力が減ったりいろいろなパターンがあります。<br>
今回は後者の体力が減るパターンにしたいと思います。<br>
</p>]]>
        <![CDATA[<style>
dl
{
    border : 1px solid silver;
    padding : 8px;
}
dt
{
    font-weight : bold;
}
dd
{
    padding-left : 20px;
}
.demo
{
    font-size : 200%;
    font-weight : bold;
}
</style>
<h3>あたり判定の処理そのものは敵と自弾の時と同じ</h3>
<p>
ちょっと違うのは自機のあたり判定の範囲を少し小さめにするということです。<br>
特に弾幕シューティングで多くなりますが、ぎりぎりでよけたはずなのにダメージを受けたというと、プレーヤーにとってストレスです。<br>
逆に少しかすったように見えてもダメージを受けなければ、特に気にはされません。<br>
最近のゲームでは自機の絵に比べてはるかにあたり判定が小さいこともあります。<br>
まあ、今回のは極座標系なので自機の範囲とか良くわからないですけどね(^^;<br>
</p>
<h3>ダメージを受けたら体力を減らす</h3>
<p>
現在の体力を知るために体力メーターが必要ですね。<br>
体力メーターは単に現在の状態を表すだけではなく、増減時にちょっとしたアニメーションをさせてみました。<br>
ちょっとしたことですが、なんとなく完成度が高いような気になれます。<br>
</p>
<p>
<pre name="code" class="src">
this.drawNormal = function (ctx)
{
	var bar = function (ctx, x, y, w)
	{
		ctx.moveTo(x, y);
		ctx.lineTo(x + w, y);
		ctx.arcTo(x + w + 5, y + 5, x + w, y + 10, 5);
		ctx.lineTo(x + w, y + 10);
		ctx.lineTo(x, y + 10);
		ctx.arcTo(x - 5, y + 5, x, y, 5);
		ctx.closePath();
	}

	ctx.beginPath();
	ctx.drawImage(this.image, 0, 0, 20, 20, 191, 8, 14, 14);
	
	if (0 &lt; this.hitPointPre)
	{
		ctx.save()
		ctx.beginPath();
		
		var w;
		if (this.hitPoint &lt; this.hitPointPre)
		{
			w = this.hitPointPre;
			ctx.fillStyle = &quot;rgba(255, 0, 0, 0.8)&quot;;
		}
		else
		{
			w = this.hitPoint;
			ctx.fillStyle = &quot;rgba(0, 0, 255, 0.5)&quot;;
		}
	
		bar(ctx, 213, 10, w);
		ctx.fill();
		ctx.restore();
	}
	
	if (0 &lt; this.hitPoint)
	{
		ctx.beginPath();

		var w;
		if (this.hitPoint &lt; this.hitPointPre)
			w = this.hitPoint;
		else
			w = this.hitPointPre;

		bar(ctx, 213, 10, w);
		var grad  = ctx.createLinearGradient(0, 10, 0, 20);
		grad.addColorStop(0, &quot;rgb(0, 0, 255)&quot;);
		grad.addColorStop(0.4, &quot;rgb(192, 192, 255)&quot;);
		grad.addColorStop(1, &quot;rgb(0, 0, 255)&quot;);
		ctx.fillStyle = grad;
		ctx.fill();
	}
}
</pre>
</p>
<p class="demo">
<a href="http://murakya.net/dev/canvas/canvas011.html">
<img alt="11.png" src="http://murakya.net/blog/2011/07/04/11.png" width="150" height="150" class="mt-image-none" style="" /><br>
Play</a>
</p>
<h3>自機に体力が付いたので、敵にもつけよう</h3>
<p>
要するに1撃では倒せない敵ですね。<br>
今まで自機はMyShipクラス、敵はEnemyクラスで、それぞれ何の関係性もなく作成していました。<br>
敵の種類を増やすので、その分クラスを増やしますが、共通している部分が多数ありますので、クラスに親子関係を持たせようと思います。<br>
すべてのクラスはBaseObjectをベースにします。<br>
敵はBaseObjectからEnemyクラスに派生し、Enemyクラスからそれぞれの敵を実装したEnemy1クラスとEnemy2クラスに派生します。<br>
派生方法は今回は簡単にprototypeに親クラスをnewするだけにしました。<br>
</p>
<p>
<pre name="code" class="src">
var BaseObject = function ()
{
	this.initialize = function (x, y, radius)	// 初期化
	{
		this.x = x;
		this.y = y;
		this.radius = radius;
	}

	this.move = function ()				// 移動
	{
		return true;
	}
	
	this.drawPolar = function (ctx)			// 極座標に描画
	{
	}
	
	this.drawNormal = function (ctx)		// 直交座標に描画
	{
	}
	
	this.hit = function (obj)			// 衝突時の処理
	{
		return false;
	}
}
</pre>
</p>
<p>
これで簡単に敵の種類を増やせるようになりました。<br>
</p>
<p class="demo">
<a href="http://murakya.net/dev/canvas/canvas011a.html">
<img alt="11a.png" src="http://murakya.net/blog/2011/07/04/11a.png" width="150" height="150" class="mt-image-none" style="" /><br>
Play</a>
</p>]]>
    </content>
</entry>

<entry>
    <title>HTMLでクリックゲーム 第3回 - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/06/html-3.html" />
    <id>tag:murakya.net,2011:/blog//2.32</id>

    <published>2011-06-27T11:36:20Z</published>
    <updated>2011-06-27T11:48:09Z</updated>

    <summary> p { line-height:200%; } ちょっと方向性を変えてみました...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="HTMLでクリックゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<style>
p
{
line-height:200%;
}
</style>
<p>
ちょっと方向性を変えてみました。<br>
いままでHTMLを手打ちで作っていましたが、シーン数を多くしようと思うとやってられません。<br>
単純で同じパターンの繰り返しのHTMLなので、設定ファイルを作って、そこから自動生成させた方がはるかに楽です。<br>
どうせならオンラインで動いたほうが面白いので、設定ファイルはjson、自動生成プログラムはphpで作りました。<br>
</p>
<p>
必要最低限の情報を記した<a href="http://murakya.net/dev/htmlclick/click3/scenario.js">jsonファイル</a>を作って、それを<a href="http://murakya.net/dev/htmlclick/click3/click.php?scenario=http://murakya.net/dev/htmlclick/click3/scenario.js">phpに食わせる</a>とhtmlを作ります。<br>
</p>
<p>
<a href="http://murakya.net/dev/htmlclick/click3/"><img alt="1-1.png" src="http://murakya.net/blog/2011/05/25/1-1.png" width="150" height="150" /><br>Play<br></a>
</p>
<p>
もうちょっと体裁を整えれば、クリックゲーム作成ツールになるかな（笑<br>
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>コマンドラインでGmailにファイルをバックアップ - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/06/gmail.html" />
    <id>tag:murakya.net,2011:/blog//2.31</id>

    <published>2011-06-21T12:12:03Z</published>
    <updated>2011-06-21T12:36:42Z</updated>

    <summary> em { font-size:150%; font-weight:bold; ...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="WSH" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<style>
em
{
font-size:150%;
font-weight:bold;
font-style:normal;
}
p
{
line-height:200%;
}
</style>
<p>
<em>Gmailの容量は7GBを超え</em>ていますが、普通の使い方をしている限り使い切ると言うことはなさそうですよね。<br>
これをオンラインストレージとして使えるようにするソフトがいろいろ出ています。<br>
</p>
<p>
そこで、<em>バックアップ用途</em>にでも使いたいなぁと思ったのですが、コマンドラインで操作できるようなソフトがあまりない。<br>
やはりバックアップはバックグラウンドで自動で行ってもらいたいので、コマンドラインで動作するアプリを<em>Windowsタスクに登録するのが理想</em>です。<br>
</p>
<p>
この自動バックアップを実現させるためと、どうやってオンラインストレージとして使っているんだろう、と言う興味からちょっと調べてみました。<br>
</p>]]>
        <![CDATA[<p>
具体的なやり方を示しているページは見つかりませんでしたが、いろいろ調べてみてなんとなくわかった気になりました。<br>
まとめると、<br>
<ul>
<li>アップロードはSMTPで添付ファイルとして送信</li>
<li>ダウンロードはIMAPもしくはPOPで受け取る</li>
<li>ストレージっぽいインターフェースをつける</li>
</ul>
ということみたいです。<br>
</p>
<p>
これならコマンドラインで添付ファイル付きメールが送れれば実現できます。<br>
</p>
<p>
<em>コマンドラインでメールを送るにはCDO</em>を使えば良いのですが、GmailはSSLを使うのでちょっと工夫が必要です。<br>
<a href="http://openmya.hacker.jp/hasegawa/public/20070609/admintech.html">ここ</a>や<a href="http://technodoor.com/2007/12/gmail-smtp-cdo-.html">ここ</a>を参考に書いてみました。<br>
</p>
<p>
添付したいファイルをコマンドラインオプションに指定することでアップロードできます。<br>
ドラッグ＆ドロップでも動作します。<br>
</p>
<p>
ついでに、何かに利用できるかもということで、本文にはファイルに関する情報をjson形式で載せるようにしました。<br>
</p>
<p>
下記のソースコードのメールアドレスとパスワードを書き換えて、拡張子「.js」にして適当なファイル名で保存してください。<br>
WSHとして動かせば使用できます。<br>
</p>
<p>
<pre name="code" class="src">
var mail = &quot;????@gmail.com&quot;;
var password = &quot;????&quot;;

if (WScript.Arguments.length == 0) WScript.Quit(-1);

var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);

var generateInfo = function ()
{
	var message =
		'{\n' +
		'    &quot;application&quot; : &quot;Backup Script&quot;,\n' +
		'    &quot;version&quot; : &quot;1.0&quot;,\n' +
		'    &quot;files&quot; :\n' +
		'    [\n';
	for (var n = 0; n &lt; WScript.Arguments.length; n++)
	{
		var file = fso.GetFile(WScript.Arguments(n));
		if (n) message += &quot;        ,\n&quot;;
		message +=
		'        {\n' +
		'            &quot;name&quot; : &quot;' + fso.GetFileName(WScript.Arguments(n)) + '&quot;,\n' +	// ファイル名
		'            &quot;size&quot; : &quot;' + file.Size  + '&quot;,\n' +							// ファイルサイズ
		'            &quot;lastmodified&quot; : &quot;' + file.DateLastModified + '&quot;\n' +			// 最終更新日時
		'        }\n';
	}
	message +=
		'    ],\n' +
		'    &quot;upload&quot; : &quot;' + (new Date()) + '&quot;\n' +									// アップロード日時
		'}\n';
	
	return message;
}

var cdo = new ActiveXObject(&quot;CDO.Message&quot;);
var f = cdo.Configuration.Fields;
var s = &quot;http://schemas.microsoft.com/cdo/configuration/&quot;;

f.Item(s + &quot;sendusing&quot;)			= 2;
f.Item(s + &quot;languagecode&quot;)		= &quot;iso-2022-jp&quot;;
f.Item(s + &quot;smtpserver&quot;)		= &quot;smtp.gmail.com&quot;;
f.Item(s + &quot;smtpauthenticate&quot;)	= 1;
f.Item(s + &quot;sendusername&quot;)		= mail;
f.Item(s + &quot;sendpassword&quot;)		= password;
f.Item(s + &quot;smtpserverport&quot;)	= 465;
f.Item(s + &quot;smtpusessl&quot;)		= true;
f.Update();

cdo.MimeFormatted = true;
cdo.Fields.Update();
cdo.From = mail;
cdo.To = mail;
cdo.Subject = &quot;Backup Script&quot;;
cdo.TextBody = generateInfo();
cdo.TextBodyPart.Charset = &quot;ISO-2022-JP&quot;;

for (var n = 0; n &lt; WScript.Arguments.length; n++)
{
	cdo.AddAttachment(&quot;file://&quot; + WScript.Arguments(n))
}

cdo.Send();

WScript.Quit(0);
</pre>
</p>
<p>
これで<em>手軽にGmailにバックアップできる</em>ようになりました(^^<br>
</p>
<p>
使用上の注意ですが、Gmailには<em>添付ファイルのサイズ制限（25MB）</em>がありますので、それ以上のものはアップロードできません。<br>
それ以外にもいろいろあると思いますので、<em>節度を持って利用</em>しましょう(^^;<br>
</p>
]]>
    </content>
</entry>

<entry>
    <title>続・続・ペーパークラフトで変形ロボット！！ - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/06/post-12.html" />
    <id>tag:murakya.net,2011:/blog//2.30</id>

    <published>2011-06-18T02:01:44Z</published>
    <updated>2011-06-18T03:37:47Z</updated>

    <summary> 完成です。 100均で買ってきた色画用紙で作りました。 ...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="ペーパークラフト" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
完成です。<br>
100均で買ってきた色画用紙で作りました。<br>
</p>
<p>
<a href="http://murakya.net/blog/2011/06/post-12.html">
<img alt="20110617b.jpg" src="http://murakya.net/blog/2011/06/18/20110617b.jpg" width="468" height="60" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" />
</a>
</p>]]>
        <![CDATA[<p>
飛行機形態
</p>
<p>
<a href="http://murakya.net/blog/2011/06/18/201106170.jpg"><img alt="201106170.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106170-thumb-200x166-73.jpg" width="200" height="166" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/18/201106171.jpg"><img alt="201106171.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106171-thumb-200x146-75.jpg" width="200" height="146" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/18/201106172.jpg"><img alt="201106172.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106172-thumb-200x99-77.jpg" width="200" height="99" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/18/201106174.jpg"><img alt="201106174.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106174-thumb-200x116-79.jpg" width="200" height="116" class="mt-image-none" style="vertical-align:middle" /></a>
</p>
<p>
飛行機形態から、足を付け替えてロボット形態に変形します。<br>
</p>
<p>
<a href="http://murakya.net/blog/2011/06/18/201106179.jpg"><img alt="201106179.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106179-thumb-200x192-81.jpg" width="200" height="192" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/18/201106178.jpg"><img alt="201106178.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106178-thumb-200x178-83.jpg" width="200" height="178" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/18/201106177.jpg"><img alt="201106177.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106177-thumb-200x181-85.jpg" width="200" height="181" class="mt-image-none" style="vertical-align:middle" /></a>
</p>
<p>
ロボット形態
</p>
<p>
<a href="http://murakya.net/blog/2011/06/18/201106175.jpg"><img alt="201106175.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106175-thumb-200x250-87.jpg" width="200" height="250" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/18/201106176.jpg"><img alt="201106176.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106176-thumb-200x170-89.jpg" width="200" height="170" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/18/201106173.jpg"><img alt="201106173.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106173-thumb-200x195-91.jpg" width="200" height="195" class="mt-image-none" style="vertical-align:middle" /></a>
</p>
<p>
本当はもっとディテールにこだわりたかったのですが、作りやすさを優先してこれぐらいで抑えておきました。<br>
型紙は気が向いたら公開します。<br>
<p>
]]>
    </content>
</entry>

<entry>
    <title>続・ペーパークラフトで変形ロボット！！ - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/06/post-11.html" />
    <id>tag:murakya.net,2011:/blog//2.29</id>

    <published>2011-06-16T06:30:46Z</published>
    <updated>2011-06-15T13:40:53Z</updated>

    <summary> 前回なかなかの出来だったので、どうせならちゃんと設計図を描いてきれいに作りたい...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="ペーパークラフト" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
<a href="http://murakya.net/blog/2011/06/post-10.html">前回</a>なかなかの出来だったので、どうせならちゃんと設計図を描いてきれいに作りたい！！<br>
息子のために作ったはずが、お父ちゃんがはまってしまいました(^^;<br>
</p>]]>
        <![CDATA[<p>
まず3Dの絵を描きます。<br>
今回は３DCADを使ってみたいと思い、初めて<a href="http://sketchup.google.com/intl/ja/">GoogleSketchup</a>を使いました。<br>
GoogleSketchup、最高です(^^<br>
いままでの３Dモデリングツールとは違い直感的に操作できて、<a href="http://www.pumpkinpirate.info/flattery/">プラグイン</a>で展開図作って糊代まで作れます。<br>
</p>
<p>
<a href="http://murakya.net/blog/2011/06/15/201106160.jpg"><img alt="201106160.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106160-thumb-200x155-60.jpg" width="200" height="155" class="mt-image-none" style="" /></a>
<a href="http://murakya.net/blog/2011/06/15/201106161.jpg"><img alt="201106161.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106161-thumb-200x155-62.jpg" width="200" height="155" class="mt-image-none" style="" /></a>
<a href="http://murakya.net/blog/2011/06/15/201106162.jpg"><img alt="201106162.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106162-thumb-200x155-64.jpg" width="200" height="155" class="mt-image-none" style="" /></a>
</p>
<p>
まさにペーパークラフトに最適、しかも全部無料！！<br>
あとは出来上がった展開図をsvgで出力して、<a href="http://inkscape.org/">Inkscape</a>に持っていって、印刷するだけ。<br>
ただ、Inkscapeに面の色をうまく持っていけませんでした。<br>
やり方が悪いのかもしれませんが、今回は最終的には色画用紙に印刷するつもりなので気にしません(^^;<br>
</p>
<p>
とりあえず白い紙に印刷して試作しました。<br>
</p>
<p>
<a href="http://murakya.net/blog/2011/06/15/201106163.jpg"><img alt="201106163.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106163-thumb-200x149-66.jpg" width="200" height="149" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/15/201106164.jpg"><img alt="201106164.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106164-thumb-200x212-68.jpg" width="200" height="212" class="mt-image-none" style="vertical-align:middle" /></a>
<a href="http://murakya.net/blog/2011/06/15/201106165.jpg"><img alt="201106165.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106165-thumb-200x238-70.jpg" width="200" height="238" class="mt-image-none" style="vertical-align:middle" /></a>
</p>
<p>
ちょっと修正が必要そうですが、おおむね予定通りです。<br>
</p>
]]>
    </content>
</entry>

<entry>
    <title>ペーパークラフトで変形ロボット！！ - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/06/post-10.html" />
    <id>tag:murakya.net,2011:/blog//2.28</id>

    <published>2011-06-12T00:53:31Z</published>
    <updated>2011-06-12T01:19:21Z</updated>

    <summary> 息子がおもちゃを買って、買って、うるさいので、 おもちゃは自分で作るものじゃ！...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="ペーパークラフト" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
息子がおもちゃを買って、買って、うるさいので、<br>
<br>
<big>
おもちゃは自分で作るものじゃ！！<br>
お父ちゃんが見本を見せてやる！！<br>
</big>
<br>
ってことで、厚手の広告を適当に切って、セロハンテープでくっつけて変形ロボットを作成しました。<br>
飛行機形態からロボット形態へ変形します。<br>
腕はうまいこと取り外さず変形出来る仕組みを考え付いたのですが、足はアイデアが浮かばず取り外し式。<br>
ペーパークラフトの魅力はこういった自分が考えたものを簡単に立体化できるというところですね。<br>
設計図なしで作った割には満足な出来です(^^<br>
</p>
<p>
<a href="http://murakya.net/blog/2011/06/12/201106120.jpg"><img alt="201106120.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106120-thumb-200x152-52.jpg" width="200" height="152" class="mt-image-none" style="" /></a>
<a href="http://murakya.net/blog/2011/06/12/201106121.jpg"><img alt="201106121.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106121-thumb-200x159-54.jpg" width="200" height="159" class="mt-image-none" style="" /></a><br>
飛行機形態
</p>
<p>
<a href="http://murakya.net/blog/2011/06/12/201106122.jpg"><img alt="201106122.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106122-thumb-200x210-56.jpg" width="200" height="210" class="mt-image-none" style="" /></a>
<a href="http://murakya.net/blog/2011/06/12/201106123.jpg"><img alt="201106123.jpg" src="http://murakya.net/blog/assets_c/2011/06/201106123-thumb-200x181-58.jpg" width="200" height="181" class="mt-image-none" style="" /></a><br>
ロボット形態
</p>
<p>
惜しむらくは、息子の反応がいまいち・・・。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>HTMLでクリックゲーム 第2回 - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/05/html-2.html" />
    <id>tag:murakya.net,2011:/blog//2.27</id>

    <published>2011-05-29T07:05:00Z</published>
    <updated>2011-05-28T13:49:50Z</updated>

    <summary> 何とか2回目を続けてみよう(^^; 前回のゲームとしてもプログラムとしても面白...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="HTMLでクリックゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
何とか2回目を続けてみよう(^^;<br>
</p>
<p>
前回のゲームとしてもプログラムとしても面白くないクリックゲーム、問題点はいろいろありますが、せめて快適に動作させたいと思います。<br>
快適性を損なっている要素としては、下記のものがあげられます。<br>
<br>
・シーン毎にHTMLファイルが分かれているため、クリックするたびにHTMLの読み込みが発生する<br>
・上記問題に起因して、画像の先読みができない<br>
<br>
今回これらを改善するため、シーンをある程度（アイテムを取る前後で）グループ化し、1つのHTMLにまとめました。<br>
これによりグループ内での移動はHTMLの読み込みが発生しません。<br>
また、グループ内の画像も一気に読み込まれます。<br>
クリックによる移動はページ内リンクで実現しました。<br>
HTML5からはページ内リンクの名前付けはname属性ではなく、id属性でやるようになったそうですので、要注意ですね。<br>
</p>
<p>
<a href="http://murakya.net/dev/htmlclick/click2/"><img alt="1-1.png" src="http://murakya.net/blog/2011/05/25/1-1.png" width="150" height="150" /><br>Play<br></a>
</p>
<p>
・・・相変わらず面白くもなんともありません(^^;<br>
<p>
]]>
        
    </content>
</entry>

<entry>
    <title>HTMLでクリックゲーム 第1回 - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/05/html-1.html" />
    <id>tag:murakya.net,2011:/blog//2.26</id>

    <published>2011-05-25T11:11:44Z</published>
    <updated>2011-05-25T11:18:22Z</updated>

    <summary> ときどき、ふとどうでも良いことをやってみたくなることがありませんか？ 私はあり...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="HTMLでクリックゲーム" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
ときどき、ふとどうでも良いことをやってみたくなることがありませんか？<br>
<br>
私はあります。というか、やりました(^^;<br>
</p>
<p>
HTML5でいろいろできるようになったし、Javascriptを使わなくてもクリックゲームぐらい作れるんじゃね？ということで挑戦！！<br>
結果は・・・一応できたけど、HTML5関係ない昔ながらの紙芝居程度しか作れませんでした（涙<br>
</p>
<p>
<a href="http://murakya.net/dev/htmlclick/click1/"><img alt="1-1.png" src="http://murakya.net/blog/2011/05/25/1-1.png" width="150" height="150" /><br>Play</a>
</p>
<p>
アイテムの有無を含む全シーンのHTMLを用意しています。<br>
各HTMLは画像とクリッカブルマップがあるだけ。<br>
</p>
<p>
記事のタイトルを第1回にしたけど、これネタ的に続くのか？<br>
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>JavascriptでPCエミュレータ - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/05/javascriptpc.html" />
    <id>tag:murakya.net,2011:/blog//2.25</id>

    <published>2011-05-21T00:48:07Z</published>
    <updated>2011-05-21T00:53:00Z</updated>

    <summary> こいつはすげぇ。 Javascript PC Emulator QEMUの作者...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
こいつはすげぇ。<br>
<br>
<a href="http://bellard.org/jslinux/">Javascript PC Emulator</a><br>
<br>
<a href="http://wiki.qemu.org/Main_Page">QEMU</a>の作者がJavascriptでPCエミュレータを作ったそうです。<br>
で、その上でLinuxを動かしていると。<br>
やっぱすごい人はなにやってもすごいねぇ。<br>
</p>]]>
        
    </content>
</entry>

<entry>
    <title>ゲーム製作でHTML5-Canvasを勉強するぞ！！ 第10回 - 紫キャ日記</title>
    <link rel="alternate" type="text/html" href="http://murakya.net/blog/2011/03/html5-canvas-10.html" />
    <id>tag:murakya.net,2011:/blog//2.23</id>

    <published>2011-03-09T05:09:13Z</published>
    <updated>2011-03-09T05:24:15Z</updated>

    <summary> 今回も演出関連です。 ゲームを作るうえで重要なことは、プレーヤーの作業に対して...</summary>
    <author>
        <name>紫キャベツ</name>
        
    </author>
    
        <category term="Javascript" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ゲーム製作でHTML5-Canvasを勉強するぞ！！" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://murakya.net/blog/">
        <![CDATA[<p>
今回も演出関連です。<br>
</p>
<p>
<img alt="10.png" src="http://murakya.net/blog/2011/03/09/10.png" width="150" height="150" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" />
ゲームを作るうえで重要なことは、プレーヤーの作業に対して見返りを与えるということだと思います。<br>
別に金銭的な見返りというわけではありません。<br>
RPGならモンスターを倒すという作業を行えば、経験値、アイテムなどがもらえますね、それが見返りです。<br>
シューティングでもいろいろあると思いますが、最も初歩的なところ「敵を倒したぞ！！」という印象・達成感？を与えるために、爆発アニメーションを作ります。<br>
</p>]]>
        <![CDATA[<style>
dl
{
    border : 1px solid silver;
    padding : 8px;
}
dt
{
    font-weight : bold;
}
dd
{
    padding-left : 20px;
}
.demo
{
    font-size : 200%;
    font-weight : bold;
}
</style>
<p>
爆発もクラスにして、敵が消去されるときに敵がいた位置に作成します。<br>
見返りなので、もっとディテールにこだわる必要があると思いますが、今回はarcにグラデーションで適当に色をつけただけにしました(^^;<br>
<pre name="code" class="src">
var Explosion = function (x, y)
{
	var sx, sy;
	sy = Math.sqrt((HEIGHT - y - 1) / HEIGHT);
	sy = r - sy * r;
	this.coeff = Math.abs(sy / HEIGHT);
	
	sx = sy * Math.cos(x * Math.PI * 2 / WIDTH + Math.PI) + hw;
	sy = sy * Math.sin(x * Math.PI * 2 / WIDTH + Math.PI) + hh;

	this.x = sx;
	this.y = sy;
	
	this.count = 0;

	this.limit = 10;

	this.move = function ()
	{
		if (this.limit &lt; ++this.count) return false;
		return true;
	}

	this.draw = function (ctx)
	{
		var radius = (140 - (this.limit - this.count) * (this.limit - this.count) * 140 / (this.limit * this.limit)) * this.coeff;
		var alpha = 1;
		if (this.limit - 4 &lt;= this.count)
			alpha = (this.limit - this.count) / 4;
	
		ctx.save();
		ctx.translate(this.x, this.y);
		ctx.beginPath();
		ctx.arc(0, 0, radius, 0, Math.PI * 2, false)
		var grad  = ctx.createRadialGradient(0, 0, 0, 0, 0, radius);
		grad.addColorStop(0, &quot;rgba(255, 255, 255,&quot; + alpha + &quot;)&quot;);
		grad.addColorStop(0.5, &quot;rgba(255, 255, 255,&quot; + alpha + &quot;)&quot;);
		grad.addColorStop(0.8, &quot;rgba(255, 255, 0,&quot; + alpha + &quot;)&quot;);
		grad.addColorStop(1, &quot;rgba(255, 0, 0,&quot; + alpha + &quot;)&quot;);
		ctx.fillStyle = grad;
		ctx.fill();
		ctx.restore();
	}
}
</pre>
これを直交座標に描いてから極座標に変換すると円がゆがんで大変なことになるので、極座標に変換した後の画面に直接描画します。<br>
作成時に直交座標上での敵の位置を与えて、極座標への変換をして爆発のx座標、y座標としています。<br>
</p>
<p class="demo">
<a href="http://murakya.net/dev/canvas/canvas010.html">
<img alt="10.png" src="http://murakya.net/blog/2011/03/09/10.png" width="150" height="150" class="mt-image-none" style="" /><br>
Play</a>
</p>
<p>
演出ついでに、自機弾を発射したときにエフェクトをつけました。<br>
あまり目立ちませんが、ないよりはましでしょう。<br>
<pre name="code" class="src">
var Spark = function (x, y)
{
	this.x = x;
	this.y = y;
	this.count = 0;

	this.move = function ()
	{
		if (1 &lt; ++this.count) return false;
		return true;
	}
	
	this.draw = function (ctx)
	{
		ctx.save();
		ctx.beginPath();
		ctx.translate(this.x, this.y);
		ctx.moveTo(0, 0);
		ctx.lineTo(-9, 1);
		ctx.lineTo(-4, -1);
		ctx.lineTo(-10, -3);
		ctx.lineTo(-4, -3);
		ctx.lineTo(-10, -7);
		ctx.lineTo(0, -4);
		ctx.lineTo(9, -7);
		ctx.lineTo(4, -3);
		ctx.lineTo(11, -3);
		ctx.lineTo(5, -1);
		ctx.lineTo(10, 1);
		ctx.fillStyle = &quot;rgb(255, 128, 128)&quot;;
		ctx.fill();
		ctx.restore();
	}
}
</pre>
</p>
<p class="demo">
<a href="http://murakya.net/dev/canvas/canvas010a.html">
<img alt="10a.png" src="http://murakya.net/blog/2011/03/09/10a.png" width="150" height="150" class="mt-image-none" style="" /><br>
Play</a>
</p>
]]>
    </content>
</entry>

</feed>

