<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>仮ぶろぐ &#187; iphone</title>
	<atom:link href="http://plusb.jp/blog/?feed=rss2&#038;tag=iphone" rel="self" type="application/rss+xml" />
	<link>http://plusb.jp/blog</link>
	<description>今更なことをそれでもつらづらと書くブログ</description>
	<lastBuildDate>Tue, 07 May 2013 09:06:48 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title></title>
		<link>http://plusb.jp/blog/?p=675</link>
		<comments>http://plusb.jp/blog/?p=675#comments</comments>
		<pubDate>Wed, 13 Jul 2011 16:21:09 +0000</pubDate>
		<dc:creator>M. K.</dc:creator>
				<category><![CDATA[dq]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ゲーム作成]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://plusb.jp/blog/?p=675</guid>
		<description><![CDATA[ナイトリービルドを更新。 iPhone向けに少しだけまじめにバーチャルパッドを実装しました。もう一つ、デフォルトで遅延読み込みをするライブラリを整理して読み込みの高速化を図りました（ブロードバンド環境では関係ないですけど &#8230; <a href="http://plusb.jp/blog/?p=675">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ナイトリービルドを更新。<br />
iPhone向けに少しだけまじめにバーチャルパッドを実装しました。もう一つ、デフォルトで遅延読み込みをするライブラリを整理して読み込みの高速化を図りました（ブロードバンド環境では関係ないですけどね）。<br />
<span id="more-675"></span><br />
ソース:<a href="http://plusb.jp/dqfw/js/dq-virtualpad.js">dq-virtualpad.js</a></p>
<p>バーチャルパッドですがtouchしたまま方向を検知するので、なんだか難しく考えていましたがアナログジョイスティックのデジタル変換の様な考えで単純にパッドの領域を９分割して、上下左右に二値化しました。<br />
あと追加するのなら、逆にアナログジョイスティック機能やキーリピートのエミュレーション（連射モード）とかでしょうか。</p>
<pre>
 var me = this, dir,
    _make_dir = function (e) {
        var dir = 0;
        var dx = e.pageX - pX;
        var dy = e.pageY - pY;
        if (dx &lt;= 35) {
            dir += 1;
        } else if (70 &lt; dx) {
            dir += 2;
        }
        if (dy &lt;= 35) {
            dir += 4;
        } else if (70 &lt; dy) {
            dir += 8;
        }
        return dir;
    },
    touch_start = function (e) {
        $(tt).bind('mousemove', tt, touch_move);
        $(tt).one('mouseup', tt, touch_end);

        if (e.originalEvent.touches &#038;&#038; e.originalEvent.touches.length) {
            e = e.originalEvent.touches[0];
        } else if (e.originalEvent.changedTouches &#038;&#038; e.originalEvent.changedTouches.length) {
            e = e.originalEvent.changedTouches[0];
        }
        me.dir = _make_dir(e);
        me.onMousedown &#038;&#038; me.onMousedown(me.dir, e);

        return false;
    },
    touch_move = function (e) {
        if (e.originalEvent.touches &#038;&#038; e.originalEvent.touches.length) {
            e = e.originalEvent.touches[0];
        } else if (e.originalEvent.changedTouches &#038;&#038; e.originalEvent.changedTouches.length) {
            e = e.originalEvent.changedTouches[0];
        }
        var back = me.dir;
        me.dir = _make_dir(e);
        if (back != me.dir) {
            me.onMousedown &#038;&#038; me.onMousedown(me.dir, e);
        }
        return false;
    },
    touch_end = function (e) {
        $(tt).unbind('mousemove', touch_move);
        me.onMouseup &#038;&#038; me.onMouseup(e);
        me.dir = DQ.DIR.NONE;
        return false;
    }
</pre>
<p><a href="http://plusb.jp/dqfw/">ナイトリービルド</a>を更新。<br />
<a href="http://plusb.jp/dqfw/samples/rpg_learning.html">RPG 習作</a><br />
<a href="http://plusb.jp/dqfw/samples/bt_test.html">戦闘テスト</a></p>
<p>先日のデモに反映しました。まだ、ABボタンは機能していません。<br />
<a href="http://plusb.jp/dqfw/samples/shooting.html">shooting.html</a><br />
<iframe src="http://plusb.jp/dqfw/samples/shooting.html" width="320" height="420" style="overflow: hidden;"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://plusb.jp/blog/?feed=rss2&#038;p=675</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
