<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" version="2.0">
  <channel>
    <title>もうちょっと なんとか…</title>
    <link>https://raseene.asablo.jp/blog/</link>
    <description/>
    <language>ja</language>
    <generator>mc 0.0</generator>
    <pubDate>Wed, 15 Mar 2023 08:31:41 +0900</pubDate>
    <item>
      <title>「スーパー新幹線ゲーム」が「Appliv」で紹介されました</title>
      <link>https://raseene.asablo.jp/blog/2023/03/14/9569358</link>
      <guid>https://raseene.asablo.jp/blog/2023/03/14/9569358</guid>
      <pubDate>Tue, 14 Mar 2023 19:52:36 +0900</pubDate>
      <dcterms:modified>2023-03-15T08:31:41+09:00</dcterms:modified>
      <dcterms:created>2023-03-14T19:55:03+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&#13;
&lt;div style="line-height: 1.8em"&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
&#13;
Androidアプリ「&lt;A target="_blank" href="http://market.android.com/details?id=jp.so_raseene.shinkansen"&gt;スーパー新幹線ゲーム&lt;/A&gt;」が、&lt;br&gt;&#13;
アプリ紹介サイト「&lt;A target="_blank" href="http://market.android.com/details?id=jp.so_raseene.shinkansen"&gt;Appliv&lt;/A&gt;」に掲載されました。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;div style="text-align: center;"&gt;&lt;SPAN class="asahi_editor_styling" style="font-size: x-large; font-weight: bold;"&gt;&lt;A target="_blank" href="https://app-liv.jp/5346572/"&gt;【すぐわかる！】『スーパー新幹線ゲーム』 - Appliv&lt;/A&gt;&lt;br&gt;&lt;/SPAN&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="https://appliv-domestic.akamaized.net//v1/s1bb/s3-ap-northeast-1.amazonaws.com/img.app-liv.jp/articles/140469/904966_1678325857_003276600_0_547_308.gif" style="width: 365px; height: 206px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
ゲームの基本的な動きや操作方法、コースの種類などが紹介されています。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
ゲームのジャンルは、&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;カジュアルゲーム &amp;gt; カジュアルアクションゲーム &amp;gt; 動体視力・反射神経系カジュアルゲーム &amp;gt; タイミングゲーム&lt;/SPAN&gt;&lt;br&gt;&#13;
となりました。&lt;br&gt;&#13;
&lt;br&gt;&#13;
ということで、こちらは「&lt;A target="_blank" href="https://app-liv.jp/games/casual/2048/"&gt;タイミングゲームアプリおすすめランキング&lt;/A&gt;」です。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2023/03/14/66e61b.jpg" style="width: 314px; height: 271px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
新作御祝儀で、今のところ上位に入っています（画像が１位になってるのは、「&lt;A target="_blank" href="https://app-liv.jp/games/casual/2048/?sort=new#ranking"&gt;新作順&lt;/A&gt;」でソートしたからなんですが）。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;/SPAN&gt;&lt;/div&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/30a4010c.ccc25adf.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjoxLCJjYXQiOiI1IiwiYmFuIjoiMjA4ODg3MiIsImFtcCI6ZmFsc2V9" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/30a4010c.ccc25adf.151c3799.9267d381/?me_id=1&amp;me_adv_id=2088872&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;&#13;
&lt;br&gt;
</description>
      <dc:subject>アプリ</dc:subject>
      <dc:subject>ゲーム</dc:subject>
    </item>
    <item>
      <title>スーパー新幹線ゲーム（旧「新・新幹線ゲームNEO」）</title>
      <link>https://raseene.asablo.jp/blog/2023/02/25/9565314</link>
      <guid>https://raseene.asablo.jp/blog/2023/02/25/9565314</guid>
      <pubDate>Sat, 25 Feb 2023 13:43:01 +0900</pubDate>
      <dcterms:modified>2023-03-02T18:41:31+09:00</dcterms:modified>
      <dcterms:created>2023-02-25T13:44:38+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&#13;
&lt;div style="line-height: 1.8em"&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
&#13;
力を溜めて、勢いをつけて新幹線を発車！&lt;br&gt;&#13;
下に落ちないように気をつけながら、東京から博多・盛岡まで運行しよう！&lt;br&gt;&#13;
&lt;br&gt;&#13;
駄菓子屋の前なんかで見かける、新幹線に見立てた10円玉を弾いてゴールまで運ぶ「新幹線ゲーム」を元にした物理演算系のゲームです。&lt;br&gt;&#13;
&lt;br&gt;&lt;br&gt;&#13;
&lt;div style="text-align: center;"&gt;&lt;SPAN class="asahi_editor_styling" style="font-size: x-large; font-weight: bold;"&gt;Androidアプリ 「&lt;A target="_blank" href="http://market.android.com/details?id=jp.so_raseene.shinkansen"&gt;スーパー新幹線ゲーム&lt;/A&gt;」&lt;br&gt;&lt;/SPAN&gt;&lt;br&gt;&lt;/div&gt;&#13;
&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2023/02/22/66abcd.jpg" alt="東海道・山陽新幹線" title="東海道・山陽新幹線" style="width: 320px; height: 180px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;A target="_blank" href="https://game.nicovideo.jp/atsumaru/"&gt;ゲームアツマール&lt;/A&gt;上で発表した&lt;A target="_blank" href="https://game.nicovideo.jp/atsumaru/games/gm18154"&gt;ゲーム&lt;/A&gt;でしたが、アツマールが終了するということでAndroidに移植してみました。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2023/02/22/66abcf.jpg" alt="東北新幹線" title="東北新幹線" style="width: 320px; height: 180px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&#13;
難易度を上げた「東北新幹線」コースを追加しています。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;h3&gt;ゲームのコツ&lt;/h3&gt;&#13;
コツというよりは、細かい仕様。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;・溜めのキャンセル&lt;/SPAN&gt;&lt;br&gt;&#13;
新幹線をタッチすると力を溜め始めますが、画面をタッチしたままで新幹線からフォーカスを外すことで溜めをキャンセルすることができます。&lt;br&gt;&#13;
動く線路の前でタイミングを間違ってしまったときは、発車をキャンセルしましょう。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;・発車方向&lt;/SPAN&gt;&lt;br&gt;&#13;
新幹線は前方か後方、上を向いている方に発車します。&lt;br&gt;&#13;
これはひっくり返ってしまった場合も同じです。また、さかさまの状態でも通常と同様の挙動をします。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;・ひとつ戻る&lt;/SPAN&gt;&lt;br&gt;&#13;
BACKボタンで、最後に正しく駅を発車した態に戻ります。&lt;br&gt;&#13;
新幹線がおかしな向きで停まってしまったときは、BACKボタンでやり直した方が無難です。そこから発車して立て直せることもありますが。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;h3&gt;アツマール版との差異&lt;/h3&gt;&#13;
「東海道・山陽新幹線」コースは基本的にアツマール版と同じコースですが、物理エンジンの細かい演算の差などによりまったく同じ挙動をするというわけではありません。&lt;br&gt;&#13;
また、動く線路に速度を設定することにより動きが自然になっています。&lt;br&gt;&#13;
そのためアツマール版での（無茶な）攻略法は使えない場合があります。ご了承ください。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;h3&gt;謝辞&lt;/h3&gt;&#13;
画像・BGMに、次の方々の素材を使用させていただきました。&lt;br&gt;&#13;
&lt;br&gt;&#13;
・ゲーム中の画像&lt;br&gt;&#13;
&lt;A target="_blank" href="https://www.irasutoya.com/"&gt;いらすとや&lt;/A&gt; さん&lt;br&gt;&#13;
&lt;br&gt;&#13;
・アイコン画像&lt;br&gt;&#13;
&lt;A target="_blank" href="https://freecut.xyz/"&gt;フリーカット&lt;/A&gt; さん&lt;br&gt;&#13;
&lt;A target="_blank" href="https://www.pakutaso.com/"&gt;ぱくたそ&lt;/A&gt; さん&lt;br&gt;&#13;
&lt;br&gt;&#13;
・BGM&lt;br&gt;&#13;
&lt;A target="_blank" href="http://dova-s.jp/"&gt;フリーBGM DOVA-SYNDROME&lt;/A&gt;より、&lt;A target="_blank" href="http://dova-s.jp/_contents/author/profile055.html"&gt;かずち&lt;/A&gt; さん&lt;br&gt;&#13;
&lt;br&gt;&#13;
どうもありがとうございます。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;/SPAN&gt;&lt;/div&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/14ebb01e.2dc96c34.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjoxLCJjYXQiOiI5NSIsImJhbiI6IjY2OTEyNiIsImFtcCI6ZmFsc2V9" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/14ebb01e.2dc96c34.151c3799.9267d381/?me_id=1&amp;me_adv_id=669126&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;&#13;
&lt;br&gt;
</description>
      <dc:subject>アプリ</dc:subject>
      <dc:subject>ゲーム</dc:subject>
    </item>
    <item>
      <title>Bevy 0.6 に対応</title>
      <link>https://raseene.asablo.jp/blog/2022/01/13/9455941</link>
      <guid>https://raseene.asablo.jp/blog/2022/01/13/9455941</guid>
      <pubDate>Thu, 13 Jan 2022 22:36:48 +0900</pubDate>
      <dcterms:modified>2022-01-13T22:57:41+09:00</dcterms:modified>
      <dcterms:created>2022-01-13T22:48:26+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&#13;
&lt;div style="line-height: 1.8em"&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
&#13;
Rust + Bevyで作成したゲーム「くるんくる～ぱ」を、&lt;A target="_blank" href="https://bevyengine.org/news/bevy-0-6/"&gt;Bevy 0.6&lt;/A&gt;に対応させました。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;div style="text-align: center;"&gt;&lt;SPAN class="asahi_editor_styling" style="font-size: x-large; font-weight: bold;"&gt;「&lt;A target="_blank" href="https://raseene.github.io/Bevy_Kurunku/"&gt;くるくるアクションパズル　くるんくる～ぱ&lt;/A&gt;」&lt;br&gt;&lt;/SPAN&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;div style="text-align: right;"&gt;ブラウザ等、環境によっては動かないかもしれません。&lt;br&gt;&lt;/div&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;&lt;div style="text-align: center;"&gt;開発プロジェクト（&lt;A target="_blank" href="https://github.com/raseene/Bevy_Kurunku"&gt;GitHub&lt;/A&gt;）&lt;br&gt;&lt;/div&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;A target="_blank" href="https://bevyengine.org/learn/book/migration-guides/0.5-0.6/"&gt;ガイド&lt;/A&gt;に従えば0.6への移行自体はそんなに難しくはありませんが、0.5で作成した&lt;A target="_blank" href="http://raseene.asablo.jp/blog/2021/12/22/9450037"&gt;前回の記事&lt;/A&gt;で挙げられた点が結構改修されていますので、その辺りを主に並べてみます。&lt;br&gt;&#13;
&lt;br&gt;&lt;br&gt;&#13;
&#13;
&lt;h3&gt;スプライトを半透明にする&lt;/h3&gt;&#13;
&lt;A target="_blank" href="https://docs.rs/bevy/0.6.0/bevy/prelude/struct.SpriteSheetBundle.html"&gt;SpriteSheetBundle&lt;/A&gt;と同じような感じで、&lt;A target="_blank" href="https://docs.rs/bevy/0.6.0/bevy/prelude/struct.SpriteBundle.html"&gt;SpriteBundle&lt;/A&gt;でもカラーのパラメータが&lt;A target="_blank" href="https://docs.rs/bevy/0.6.0/bevy/sprite/struct.Sprite.html"&gt;Sprite&lt;/A&gt;に含まれるようになった。&lt;br&gt;&#13;
これで透明度を変えるときでも、Assets&amp;lt;ColorMaterial&amp;gt;を持ち歩かなくて済む。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;h3&gt;スプライトの加算合成&lt;/h3&gt;&#13;
&lt;A target="_blank" href="https://docs.rs/bevy/0.6.0/bevy/pbr/prelude/enum.AlphaMode.html"&gt;AlphaMode&lt;/A&gt;なんてのがあったから、これは？と思って見てみたが、どうも2Dのスプライトに使うものでもないらしい。そもそも、ブレンドモードに加算合成が無い……&lt;br&gt;&#13;
&lt;br&gt;&#13;
需要はありそうなもんだが、何か見落としているのだろうか？&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;h3&gt;テキスト描画&lt;/h3&gt;&#13;
&lt;A target="_blank" href="https://docs.rs/bevy/0.6.0/bevy/prelude/struct.Text2dBundle.html"&gt;Text2dBundle&lt;/A&gt;の&lt;A target="_blank" href="https://docs.rs/bevy/0.6.0/bevy/transform/components/struct.Transform.html"&gt;Transform&lt;/A&gt;が、テキストの拡大率や回転角に影響するように変更された。&lt;br&gt;&#13;
&lt;A target="_blank" href="https://bevyengine.org/news/bevy-0-6/#text2d-transforms"&gt;紹介ページ&lt;/A&gt;では、サイズを変えたきゃ「フォントサイズ」を変えることを勧められているけど。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;h3&gt;Web対応&lt;/h3&gt;&#13;
標準でWeb対応されて、特にプラグインを入れることなくコマンドオプションだけでWeb用にコンパイルできる。&lt;br&gt;&#13;
そのためなのか、それとは別の話なのかはわからないが、Web版のテストには&lt;A target="_blank" href="https://github.com/jakobhellermann/wasm-server-runner"&gt;wasm-server-runner&lt;/A&gt;を使うようになっている。&lt;br&gt;&#13;
&lt;br&gt;&#13;
いくつか注意点があって、wasm-server-runnerではこちらの用意したhtmlを介さないからなのか&lt;A target="_blank" href="https://docs.rs/bevy/0.6.0/bevy/window/struct.WindowDescriptor.html"&gt;WindowDescriptor&lt;/A&gt;でcanvasを設定すると動かなかった。少なくともデバッグビルドでは設定を外す必要がある。&lt;br&gt;&#13;
&lt;br&gt;&#13;
また同様に、&lt;A target="_blank" href="https://developers.google.com/web/updates/2018/11/web-audio-autoplay#moving-forward"&gt;小細工&lt;/A&gt;ができないので音が鳴らない。&lt;br&gt;&#13;
&lt;br&gt;&#13;
wasm-server-runnerの設定かなんかでやりようがあるのかもしれないが、致命的な問題でもなかったのでほっといている。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;h2&gt;最後に&lt;/h2&gt;&#13;
コンパイル・デバッグの方法の変更でちょっと手間取ったりもしましたが、プログラム自体のBeby0.6への対応は難しくありませんでした。カプセル化されたクラスで変更点を吸収してしまうようなオブジェクト指向型のエンジンに比べると、修正箇所が多いような気もしますが。&lt;br&gt;&#13;
&lt;br&gt;&#13;
スプライトの半透明（カラー）設定なんかは、0.6ですっきりした形になって扱いやすくなりました。むしろ、0.6を待ってからゲームを作り始めていればあんな苦労は……&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;/SPAN&gt;&lt;/div&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/23582020.f9f0dc76.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjoxLCJjYXQiOiIxMDEiLCJiYW4iOiIxNjEzMTg2IiwiYW1wIjpmYWxzZX0%3D" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/23582020.f9f0dc76.151c3799.9267d381/?me_id=1&amp;me_adv_id=1613186&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;&#13;
&lt;br&gt;
</description>
      <dc:subject>ゲーム</dc:subject>
      <dc:subject>ブラウザゲーム プログラミング</dc:subject>
    </item>
    <item>
      <title>Rust + Bevyでゲーム作成</title>
      <link>https://raseene.asablo.jp/blog/2021/12/22/9450037</link>
      <guid>https://raseene.asablo.jp/blog/2021/12/22/9450037</guid>
      <pubDate>Wed, 22 Dec 2021 19:47:18 +0900</pubDate>
      <dcterms:modified>2021-12-22T21:05:55+09:00</dcterms:modified>
      <dcterms:created>2021-12-22T19:52:19+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&#13;
&lt;div style="line-height: 1.8em"&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
&#13;
&lt;p&gt;&#13;
何か必要に迫られてというわけではないけれど、&lt;br&gt;&#13;
　Rustあたりは触っておいた方が良いかなと、&lt;br&gt;&#13;
　ゲームエンジン&lt;A target="_blank" href="https://bevyengine.org/"&gt;Bevy&lt;/A&gt;を使用してミニゲームを作ってみました。&#13;
&lt;/p&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;A target="_blank" href="http://raseene.asablo.jp/blog/img/2021/12/19/616840.jpg" onclick="return asablo.expandimage(this,640,360,&amp;#x27;http://raseene.asablo.jp/blog/img/2021/12/19/616840.jpg&amp;#x27;)"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/12/19/61683f.jpg" alt="くるんくる～ぱ" title="くるんくる～ぱ" style="width: 300px; height: 168px; border: none;"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;p style="text-align: center;"&gt;&lt;SPAN class="asahi_editor_styling" style="font-size: x-large; font-weight: bold;"&gt;「&lt;A target="_blank" href="https://raseene.github.io/Bevy_Kurunku/"&gt;くるくるアクションパズル　くるんくる～ぱ&lt;/A&gt;」&lt;/SPAN&gt;&lt;/p&gt;&#13;
&lt;p style="text-align: right;"&gt;ブラウザ等、環境によっては動かないかもしれません。&lt;/p&gt;&#13;
&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;&lt;p style="text-align: center;"&gt;開発プロジェクト（&lt;A target="_blank" href="https://github.com/raseene/Bevy_Kurunku"&gt;GitHub&lt;/A&gt;）&lt;/p&gt;&lt;/SPAN&gt;&#13;
&lt;p&gt;&#13;
&lt;br&gt;&#13;
Bevyの基本的な使い方は&lt;A target="_blank" href="https://bevyengine.org/news/introducing-bevy/"&gt;紹介ページ&lt;/A&gt;もありますし日本語でもいろいろな所で解説されていますが、実際にゲームを作るとなるとそれ以外にも必要な事が出てきたり様々な問題にぶつかったりもします。&lt;br&gt;&#13;
今回の経験から、そういった点をいくつか挙げてみます。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&#13;
&lt;p&gt;&#13;
&lt;h3&gt;スプライトを半透明にする&lt;/h3&gt;&#13;
　アルファ値（を含めたカラー）を設定するには、&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/prelude/struct.ColorMaterial.html"&gt;ColorMaterial&lt;/A&gt;のcolor:&lt;A target="_blank" href="https://docs.rs/bevy/0.4.0/bevy/prelude/struct.Color.html"&gt;Color&lt;/A&gt;を変更する。&lt;br&gt;&#13;
　同じ大きさのスプライトを複数まとめた&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/prelude/struct.SpriteSheetBundle.html"&gt;SpriteSheetBundle&lt;/A&gt;を使った場合には&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/sprite/struct.TextureAtlasSprite.html"&gt;TextureAtlasSprite&lt;/A&gt;を持ってきて、そのメンバのcolorを変更すれば良い。&lt;br&gt;&#13;
　ただし &lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/sprite/entity/struct.SpriteBundle.html"&gt;SpriteBundle&lt;/A&gt;では materialがHandle&amp;lt;ColorMaterial&amp;gt;なので、ResMut&amp;lt;Assets&amp;lt;ColorMaterial&amp;gt;も持ってきてそこからget_mutで&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/prelude/struct.ColorMaterial.html"&gt;ColorMaterial&lt;/A&gt;を取り出す必要がある。&lt;br&gt;&#13;
　&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/sprite/entity/struct.SpriteBundle.html"&gt;SpriteBundle&lt;/A&gt;も&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/prelude/struct.SpriteSheetBundle.html"&gt;SpriteSheetBundle&lt;/A&gt;も似たようなものだと思うのだが、何でやり方が異なるのだろうか？&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
ちなみに&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/sprite/entity/struct.SpriteBundle.html"&gt;SpriteBundle&lt;/A&gt;でもスプライト作成時に設定するのなら、ResMut&amp;lt;Assets&amp;lt;ColorMaterial&amp;gt;&amp;gt;にaddする前に変更してしまえば良い。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;p&gt;&#13;
&lt;h3&gt;スプライトの加算合成&lt;/h3&gt;&#13;
　加算合成を含めた描画モードの変更の仕方だが、結局わからなかった。&lt;br&gt;&#13;
　このゲームでは省いても何とかなったけど、エフェクトなど他のゲームではよく使われる手法なのでやり方がわからないと困りそう。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;p&gt;&#13;
&lt;h3&gt;テキスト描画&lt;/h3&gt;&#13;
　テキストの描画は&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/text/prelude/struct.Text2dBundle.html"&gt;Text2dBundle&lt;/A&gt;でエンティティを生成&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
は良いとして、&lt;br&gt;&#13;
transformのscaleを変更しても、拡大率が変わらなかった。&lt;br&gt;&#13;
何か使い方を間違えているのか、そういうものなのか……&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;p&gt;&#13;
&lt;h3&gt;場面の切替え&lt;/h3&gt;&#13;
　タイトル画面からゲームへなど場面を設定して移行する機能で、他のエンジンでは&amp;quot;シーン&amp;quot;などと呼ばれることもあるが、Bevyでは&amp;quot;&lt;A target="_blank" href="https://bevy-cheatbook.github.io/programming/states.html"&gt;State&lt;/A&gt;&amp;quot;となっている。&lt;br&gt;&#13;
　&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/ecs/schedule/struct.SystemSet.html"&gt;SystemSet&lt;/A&gt;で各Stateごとにシステムを登録することによって、動作を切り替えることができるようになっている。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
切り替え時には画面も変わるということでそのStateで生成したエンティティなんかを削除してまっさらにして欲しいものだが、それは自前で行う必要がある。&lt;br&gt;&#13;
　エンティティをすべてクリアするとか、ある時点の状態に戻すとかそういう機能があれば便利なのだが、そんなのは見つからなかったのでこのゲームでは&lt;br&gt;&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
&lt;em&gt;State開始時に存在しているエンティティのidを記録しておいて、終了時にそれ以外のエンティティを全部削除&lt;/em&gt;&lt;br&gt;&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
するようにしている。あまりカタギじゃないやり方なので真似しない方が良いかも。&lt;br&gt;&#13;
　そのState中で作られるエンティティに目印としての構造体を insertしておくという手もあるが、面倒だし付け忘れても動作はしてしまうのが怖いところ。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
また、あるStateから同じStateに直接切り替えることはできない。&lt;br&gt;&#13;
　GAME OVERの後、同じゲームStateを最初からやり直したかったのだが、一旦ダミーのStateに切り替えてからすぐにゲームのStateに戻すようにしている。めんどくさいことに。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
あとフレーム処理絡みで問題があるのだが、それは次の項で。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;p&gt;&#13;
&lt;h3&gt;フレーム処理&lt;/h3&gt;&#13;
　１秒間に60回とか30回とか、決まった間隔で処理を行う機能。&lt;br&gt;&#13;
　&lt;A target="_blank" href="https://bevy-cheatbook.github.io/features/fixed-timestep.html"&gt;ここ&lt;/A&gt;にあるように、フレーム処理させたいシステムの前に&#13;
&lt;em&gt;　.with_run_criteria(&lt;A target="_blank" href="https://docs.rs/bevy/0.5.0/bevy/core/struct.FixedTimestep.html"&gt;FixedTimestep&lt;/A&gt;::step( 間隔 ))&lt;/em&gt;&lt;br&gt;&#13;
を差し込むだけ。簡単。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
なのだが&lt;br&gt;&#13;
　一つ問題があって、これを差し込んだ後のシステムは Stateを無視して実行される（っぽい）。&lt;br&gt;&#13;
　他のStateの実行中に、そのStateの初期化部分も通らず繰り返し部分が実行されてしまうので当然エラーになる（むしろエラーで止まってくれて助かった）。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
そのために、with_run_criteriaにchainで&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
&lt;em&gt;　現在そのStateの実行中か&lt;/em&gt;&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
という判定を挟んで対処している。なんなんだ一体。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;p&gt;&#13;
&lt;h3&gt;Web対応&lt;/h3&gt;&#13;
　チートブックには&lt;A target="_blank" href="https://bevy-cheatbook.github.io/platforms/wasm.html"&gt;２つのやり方&lt;/A&gt;が示されているが、&lt;A target="_blank" href="https://github.com/mrk-its/bevy_webgl2_app_template/tree/ad71db7b7d1b91d92e3875cc50d2ddfd166c994a"&gt;bevy_webgl2_app_template&lt;/A&gt;を使う方を選択。Webに対応するというよりは、Webに対応されたひな型を元にプロジェクトを作るという感じ。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
ただ、ブラウザで実行させてみるとちょっと画面が荒い。なぜかサイズが1.2倍に拡大されている。どこかに設定でもあるのかと探してみたが見つからなかったので、プログラム側で対処してみた。&lt;br&gt;&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
具体的には、&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
&lt;em&gt;&#13;
・ウィンドウ生成時のサイズを1.2分の１&lt;br&gt;&#13;
　・カメラのスケールを1.2に&lt;br&gt;&#13;
　・マウスカーソルの座標を1.2倍に&lt;br&gt;&#13;
&lt;/em&gt;&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
の３ヵ所。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;p&gt;&#13;
&lt;h3&gt;オーディオ再生&lt;/h3&gt;&#13;
　WebではBevyの標準のサウンドシステムは使えないらしいので、&lt;A target="_blank" href="https://bevy-cheatbook.github.io/features/audio.html"&gt;ここ&lt;/A&gt;に従って&lt;A target="_blank" href="https://github.com/NiklasEi/bevy_kira_audio"&gt;bevy_kira_audio&lt;/A&gt;を組み込んでみた。&lt;br&gt;&#13;
　featuresに&amp;quot;mp3&amp;quot;を含めるとコンパイルエラーが出るけど、どうせoggしか使っていないので他は削除して対処。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
ブラウザで実行してみると音が出ない。どうも、Webページではユーザーのアクションがあるまで音を鳴らしてはいけないという規則のせいらしい。&lt;br&gt;&#13;
　画面をクリックしても音は出なかったが、おそらくクリック前にオーディオの初期化をしているとかそんな感じなんだろう。よくわからないが。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
よくわからないまま、&lt;A target="_blank" href="https://developers.google.com/web/updates/2018/11/web-audio-autoplay#moving-forward"&gt;Googleのページ&lt;/A&gt;のコードをhtmlに張り付けて、無事に音が出るようになった。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;p&gt;&#13;
&lt;h2&gt;この記事について&lt;/h2&gt;&#13;
　いろいろと問題点やその対処法を挙げてみましたが、いかんせんRust・Bevyの初心者が見よう見まねとその場しのぎでゲームを作っただけなので、もっとシンプルでスタンダードな手法があるとか、そもそも何か勘違いしているとか怪しい点もあるかと思います。&#13;
&lt;/p&gt;&#13;
&lt;p&gt;&#13;
この記事はこれからBevyで何かを作ろうとする方ではなく、よくBevyをわかっている方に初心者がつまずく点ということで参考にしてもらえるとありがたいです。&#13;
&lt;/p&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;/SPAN&gt;&lt;/div&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/143f52fd.f8eed6e4.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjoxLCJjYXQiOiI1OCIsImJhbiI6IjQ5OTk2NiIsImFtcCI6ZmFsc2V9" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/143f52fd.f8eed6e4.151c3799.9267d381/?me_id=1&amp;me_adv_id=499966&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;&#13;
&lt;br&gt;
</description>
      <dc:subject>ゲーム</dc:subject>
      <dc:subject>ブラウザゲーム プログラミング</dc:subject>
    </item>
    <item>
      <title>P/ECE ゲームとアプリ</title>
      <link>https://raseene.asablo.jp/blog/2021/09/10/9422094</link>
      <guid>https://raseene.asablo.jp/blog/2021/09/10/9422094</guid>
      <pubDate>Fri, 10 Sep 2021 20:11:52 +0900</pubDate>
      <dcterms:modified>2021-09-27T23:38:04+09:00</dcterms:modified>
      <dcterms:created>2021-09-10T20:13:12+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&#13;
&lt;div style="line-height: 1.8em"&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
&#13;
大昔に作った&lt;A target="_blank" href="https://aquaplus.jp/piece/"&gt;P/ECE&lt;/A&gt;のゲームとアプリ。&lt;br&gt;&#13;
なぜだかまだ需要があるらしいので、ここに並べておきます。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;center&gt;&#13;
&#13;
&lt;hr width="90%" id="ishikari"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;反射パズル　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;いしかり mini&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/27/6060f8.png" alt="いしかり mini" title="いしかり mini" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/Ishikari.zip"&gt;ダウンロード（Ishikari.zip：42.4KB）&lt;/A&gt;&#13;
&lt;p&gt;&#13;
&lt;A target="_blank" href="https://github.com/raseene/PIECE_Ishikari"&gt;開発プロジェクト（GitHub）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="ruppa"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;アクションパズル　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;くるんく・るっぱ&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a41.png" alt="くるんく・るっぱ" title="くるんく・るっぱ" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/Ruppa.zip"&gt;ダウンロード（Ruppa.zip：27.6KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="drivef"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;3Dドライブゲーム　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;ドライブ風&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a42.png" alt="ドライブ風" title="ドライブ風" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/DriveF.zip"&gt;ダウンロード（DriveF.zip：29.7KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="shikaku"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;アクションパズル　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;しかくーる&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a43.png" alt="しかくーる" title="しかくーる" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/Shikaku.zip"&gt;ダウンロード（Shikaku.zip：31.4KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="yokogiro"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;パズルゲーム　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;よこぎろ&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a44.png" alt="よこぎろ" title="よこぎろ" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/Yokogiro.zip"&gt;ダウンロード（Yokogiro.zip：28.2KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="yomyamo"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;格闘カードゲーム　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;よむやも&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a47.png" alt="よむやも" title="よむやも" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/YomYamo.zip"&gt;ダウンロード（YomYamo.zip：48.9KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="hantena"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;パズルゲーム　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;はんてーな&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a50.png" alt="はんてーな" title="はんてーな" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/Hantena.zip"&gt;ダウンロード（Hantena.zip：20.2KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="kurun"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;パズルゲーム　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;くるんくる&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a55.png" alt="くるんくる" title="くるんくる" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/Kurun.zip"&gt;ダウンロード（Kurun.zip：11.3KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&#13;
&lt;hr width="90%" id="fortune"&gt;&#13;
&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;占い？　&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large; color: rgb(0, 0, 128);"&gt;今日の運勢&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;br&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG src="http://raseene.asablo.jp/blog/img/2021/09/10/602a5a.png" alt="今日の運勢" title="今日の運勢" style="width: 256px; height: 176px; border: none;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;A target="_blank" href="http://www.asahi-net.or.jp/~dw3a-hni/piece/Fortune.zip"&gt;ダウンロード（Fortune.zip：7.75KB）&lt;/A&gt;&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;hr width="90%"&gt;&#13;
&#13;
&lt;/SPAN&gt;&lt;/div&gt;&lt;/DIV&gt;&#13;
&#13;
&#13;
&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/143f52fd.f8eed6e4.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjoxLCJjYXQiOiI1OCIsImJhbiI6IjQ5OTk2NiIsImFtcCI6ZmFsc2V9" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/143f52fd.f8eed6e4.151c3799.9267d381/?me_id=1&amp;me_adv_id=499966&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;
</description>
      <dc:subject>アプリ</dc:subject>
      <dc:subject>ゲーム</dc:subject>
    </item>
    <item>
      <title>Akashic Engine プログラミングでの注意点</title>
      <link>https://raseene.asablo.jp/blog/2020/04/04/9231662</link>
      <guid>https://raseene.asablo.jp/blog/2020/04/04/9231662</guid>
      <pubDate>Sat, 04 Apr 2020 22:03:04 +0900</pubDate>
      <dcterms:modified>2020-04-04T23:25:43+09:00</dcterms:modified>
      <dcterms:created>2020-04-04T22:31:28+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&#13;
&lt;div style="line-height: 1.8em"&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
「今日からはじめるニコ生ゲーム制作」&lt;br&gt;&#13;
なんて放送もあって、新たに &lt;A href="https://akashic-games.github.io/" target="_blank"&gt;Akashic Engine&lt;/A&gt;を使ってみようという方も出てきそうなこの頃。&lt;br&gt;&#13;
&lt;br&gt;&#13;
しかし放送でやっていたように画像を差し替えるくらいなら良いのですが、プログラムを組んでゲームを作るとなるといろいろ注意しなければいけない点も出てきます。&lt;br&gt;&#13;
一応 Akashic Engineで何本かゲームを作ってきた身として、そのあたりをいくつか挙げてみたいと思います。&lt;br&gt;&#13;
&lt;br&gt;&#13;
なお、サンプルコードは TypeScriptで書かれています。&lt;br&gt;&#13;
JavaScriptの方は型宣言等、読み飛ばしちゃってください。&lt;br&gt;&#13;
&lt;br&gt;&lt;br&gt;&#13;
&lt;/SPAN&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large;"&gt;1.マルチタッチ&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
PCで開発してマウスでテストプレイしていると気づきにくいのですが、Akashic Engineはマルチタッチに対応しています。画面の2点以上を同時にタッチすると、それぞれのポイントのイベントが発生します。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;code&gt;pointDown&lt;/code&gt;でタッチを見るだけなら、気にする必要はありません。&lt;br&gt;&#13;
&lt;code&gt;pointMove&lt;/code&gt;や&lt;code&gt;pointUp&lt;/code&gt;で移動したとき・離したときのイベントを使うときは、引数のメンバ&lt;code&gt;pointerId&lt;/code&gt;でそれぞれ区別・対応するようにしましょう。&lt;br&gt;&#13;
一緒にすると、スマホだけの裏技なんてものができてしまうかもしれません。&lt;br&gt;&#13;
&lt;br&gt;&lt;br&gt;&#13;
&lt;/SPAN&gt;&#13;
&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large;"&gt;2.シーンオブジェクトのポイントイベント&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
エンティティ毎のポイントイベントとは別に、シーンオブジェクトの&lt;code&gt;pointDownCapture&lt;/code&gt;でシーン全体のポイントイベントを取得することができます。&lt;br&gt;&#13;
タッチした座標は引数のメンバ&lt;code&gt;point&lt;/code&gt;で得られるのですが、&lt;code&gt;touchable&lt;/code&gt;なエンティティの上をクリックした場合、その値が画面上の座標ではなくエンティティ上での相対座標になってしまいます。&lt;br&gt;&#13;
&lt;br&gt;&#13;
例えば (100, 100) - (200, 200)の座標・大きさで&lt;code&gt;touchable&lt;/code&gt;なエンティティがあったときに画面上の座標(120, 120)をクリックすると、取得される値は(20, 20)になってしまいます。&lt;br&gt;&#13;
&lt;br&gt;&#13;
画面上の座標を得るには、メンバ&lt;code&gt;target&lt;/code&gt;を見てエンティティの行列で変換する必要があります。&lt;br&gt;&#13;
&lt;div style="line-height: 1.0em"&gt;&#13;
&lt;pre&gt;&lt;code class="language-javascript"&gt;scene.pointDownCapture.add((ev: g.PointDownEvent) =&amp;gt;&#13;
{&#13;
    let pos: g.CommonOffset;&#13;
    if ( ev.target ) {&#13;
        pos = ev.target.getMatrix().multiplyPoint(ev.point);&#13;
    }&#13;
    else {&#13;
        pos = ev.point;&#13;
    }&#13;
&#13;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#13;
&lt;br&gt;&lt;br&gt;&#13;
&lt;/SPAN&gt;&#13;
&#13;
&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: x-large;"&gt;3.アンカーポイント&lt;br&gt;&lt;/SPAN&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
エンティティはアンカーポイントによって表示する座標の原点や拡大・縮小・回転の位置を指定することができます。&lt;br&gt;&#13;
原点を指定するようなものなのですが、&lt;code&gt;append&lt;/code&gt;で追加した子エンティティの相対座標に親のアンカーポイントは影響しません。&lt;br&gt;&#13;
&lt;br&gt;&#13;
例えば次のように、&lt;br&gt;&#13;
&lt;div style="line-height: 1.0em"&gt;&#13;
&lt;pre&gt;&lt;code class="language-javascript"&gt;const   parent: g.FilledRect = new g.FilledRect(&#13;
{&#13;
    scene: scene,&#13;
    cssColor: "#ff0000",&#13;
    x: 100,&#13;
    y: 100,&#13;
    width:  64,&#13;
    height: 64,&#13;
    anchorX: 0.5,&#13;
    anchorY: 0.5,&#13;
});&#13;
scene.append(parent);&#13;
&#13;
const   child: g.FilledRect = new g.FilledRect(&#13;
{&#13;
    scene: scene,&#13;
    cssColor: "#0000ff",&#13;
    x: 100,&#13;
    y: 100,&#13;
    width:  32,&#13;
    height: 32,&#13;
    anchorX: 0.5,&#13;
    anchorY: 0.5,&#13;
});&#13;
scene.append(child);&#13;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#13;
&lt;br&gt;&#13;
中心をアンカーポイントとした2つのエンティティを、それぞれ同じ座標(100, 100)に表示すると&lt;br&gt;&lt;br&gt;&#13;
&lt;/SPAN&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG title="Akashic Engine アンカーポイントの例" alt="Akashic Engine アンカーポイントの例" src="http://raseene.asablo.jp/blog/img/2020/04/04/591c5a.png" style="border: medium; border-image: none; width: 200px; height: 200px;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
２つは同じ座標を中心として表示されます。当然ながら。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;div style="line-height: 1.0em"&gt;&#13;
&lt;pre&gt;&lt;code class="language-javascript"&gt;const   child = new g.FilledRect(&#13;
{&#13;
    scene: scene,&#13;
    cssColor: "#0000ff",&#13;
    x: 0,&#13;
    y: 0,&#13;
    width:  32,&#13;
    height: 32,&#13;
    anchorX: 0.5,&#13;
    anchorY: 0.5,&#13;
});&#13;
parent.append(child);&#13;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#13;
&lt;br&gt;&#13;
そこで座標が同じなんだから相対位置は(0, 0)だろうと、青い方の位置を x: 0, y: 0にして 赤い方に appendしてみると&lt;br&gt;&lt;br&gt;&#13;
&lt;/SPAN&gt;&#13;
&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG title="Akashic Engine アンカーポイントの例" alt="Akashic Engine アンカーポイントの例" src="http://raseene.asablo.jp/blog/img/2020/04/04/591c81.png" style="border: medium; border-image: none; width: 200px; height: 200px;"&gt;&lt;/DIV&gt;&lt;br&gt;&#13;
&lt;SPAN class="asahi_editor_styling" style="font-size: large;"&gt;&#13;
左上にずれます。&lt;br&gt;&#13;
アンカーポイントに依らず、相対座標は親エンティティの左上を原点としているようです。&lt;br&gt;&#13;
&lt;br&gt;&#13;
中心を合わせるには、&lt;br&gt;&#13;
&lt;div style="line-height: 1.0em"&gt;&#13;
&lt;pre&gt;&lt;code class="language-javascript"&gt;    x: 64/2 + 0,&#13;
    y: 64/2 + 0,&#13;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#13;
親エンティティのサイズを考慮する必要があります。&lt;br&gt;&#13;
&lt;br&gt;&#13;
&lt;div style="line-height: 1.0em"&gt;&#13;
&lt;pre&gt;&lt;code class="language-javascript"&gt;    x: parent.width*parent.anchorX + 0,&#13;
    y: parent.height*parent.anchorY + 0,&#13;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#13;
汎用的に書くと、こんな感じです。&lt;br&gt;&#13;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&#13;
&#13;
というわけで、自分が Akashic Engineを使う上で実際にぶつかった点を３つ程挙げてみました。&lt;br&gt;&#13;
&lt;br&gt;&#13;
あとはラベルやフォントなんかで気になる点もあるのですが、よくわからないままその場しのぎで対応してたりするので、ここでは割愛致します。&lt;br&gt;&#13;
&lt;br&gt;&lt;br&gt;&#13;
&lt;/SPAN&gt;&lt;/div&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/143f52fd.f8eed6e4.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjowLCJjYXQiOiI1OCIsImJhbiI6IjQ5OTk2NiJ9" target="_blank" rel="nofollow noopener noreferrer" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/143f52fd.f8eed6e4.151c3799.9267d381/?me_id=1&amp;me_adv_id=499966&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;
</description>
      <dc:subject>ブラウザゲーム プログラミング</dc:subject>
    </item>
    <item>
      <title>Akashic Engine 知られざる機能</title>
      <link>https://raseene.asablo.jp/blog/2019/11/28/9182595</link>
      <guid>https://raseene.asablo.jp/blog/2019/11/28/9182595</guid>
      <pubDate>Thu, 28 Nov 2019 18:56:43 +0900</pubDate>
      <dcterms:modified>2019-11-28T21:04:33+09:00</dcterms:modified>
      <dcterms:created>2019-11-28T18:58:10+09:00</dcterms:created>
      <description>&lt;div style="line-height: 1.5em"&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;A href="http://raseene.asablo.jp/blog/2019/11/25/9181347" target="_blank"&gt;アツマールAPIの話&lt;/A&gt;をしたので、Akashic Engineの方も少し。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;「&lt;A href="https://game.nicovideo.jp/atsumaru/games/gm12772" target="_blank"&gt;反射パズル　みんなで いしかり&lt;/A&gt;」で使った&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;Akashic Engineの知られざる機能&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;……というより、知っておくと便利な機能&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;……というか、このくらい知らせておいた方が良いんじゃないの？という機能を2つほど挙げてみます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;1.グローバルアセット&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;いわゆる常駐データです。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;通常アセットはシーン(g.Scene)毎に読み替えられますが、グローバルアセットに指定されたアセットはずっと常駐しています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;そのため、シーンに依らない共通データをシーンが変わるたびに読み直す必要がありません。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;グローバルアセットの指定は game.jsonでおこなわれ、アセット定義の&amp;quot;global&amp;quot;を trueにすることでグローバルアセットとして扱われます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;グローバルアセットはアプリ開始時に自動的に読み込まれ、アクセスするときは&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt; g.game.assets[&amp;quot;data&amp;quot;]のように g.Gameから参照されます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;詳しくは、&lt;A href="https://akashic-games.github.io/guide/game-json.html" target="_blank"&gt;game.json の仕様&lt;/A&gt;で。&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;2.スプライトへの描画&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&#13;
&lt;IMG title="みんなでいしかり ステージ選択" alt="みんなでいしかり ステージ選択" src="http://raseene.asablo.jp/blog/img/2019/11/27/574e10.jpg" style="border: medium; border-image: none; width: 384px; height: 216px;"&gt;&#13;
&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;「みんなで いしかり」のステージ選択画面は、各ステージの配置画像がボタンとなって並んでいます。つまりステージを直接画面に描画するのではなく、一旦ボタン用のスプライトに描画してから、そのボタンを画面に描画しているわけです。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;このスプライトの作成には、エンティティ(g.E)からスプライト(g.Sprite)を作成する関数である&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;g.Util.createSpriteFromE(scene: g.Scene, e: g.E, camera?: g.Camera): g.Sprite&lt;/SPAN&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;を使用しています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;元になるのはエンティティということでスプライトでもラベルでも良く、また他のエンティティを子として appendすることもできます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;注意点としては、使用したエンティティは自分で destroy()する必要があるということです。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;……なんて断言はできませんが、たぶんそういうことになってるんじゃないかと思います。少なくとも destroyして悪いことはないはず……&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;関数の詳しい使い方は、&lt;A href="https://akashic-games.github.io/reference/akashic-engine-v2/modules/_lib_main_d_.g.util.html" target="_blank"&gt;リファレンス&lt;/A&gt;で。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;というわけで、おそらくあまり知られていない Akashic Engineの機能を挙げてみました。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;……が、使いどころが限られる「スプライトへの描画」はともかく、「グローバルアセット」なんかはもっと周知させておくべきなんじゃないでしょうか？&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;データの読み込み頻度は、アプリの快適さに関わってくるものですし……&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;前述の通り &lt;A href="https://akashic-games.github.io/guide/game-json.html" target="_blank"&gt;game.json の仕様&lt;/A&gt;に記載はありますが、なかなかそこまでは読まんわー。&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;script type="text/javascript"&gt;rakuten_design="slide";rakuten_affiliateId="1036d58f.c754918d.1036d590.f64609f2";rakuten_items="ranking";rakuten_genreId="0";rakuten_size="468x160";rakuten_target="_blank";rakuten_theme="gray";rakuten_border="off";rakuten_auto_mode="on";rakuten_genre_title="off";rakuten_recommend="on";rakuten_ts="1574934962852";&lt;/script&gt;&lt;script type="text/javascript" src="https://xml.affiliate.rakuten.co.jp/widget/js/rakuten_widget.js"&gt;&lt;/script&gt;
</description>
      <dc:subject>ブラウザゲーム プログラミング</dc:subject>
    </item>
    <item>
      <title>「みんなで いしかり」でのアツマールAPIの使い方</title>
      <link>https://raseene.asablo.jp/blog/2019/11/25/9181347</link>
      <guid>https://raseene.asablo.jp/blog/2019/11/25/9181347</guid>
      <pubDate>Mon, 25 Nov 2019 22:00:27 +0900</pubDate>
      <dcterms:modified>2019-11-28T18:40:08+09:00</dcterms:modified>
      <dcterms:created>2019-11-25T22:01:29+09:00</dcterms:created>
      <description>&lt;div style="line-height: 1.5em"&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;「&lt;A href="https://game.nicovideo.jp/atsumaru/games/gm12772" target="_blank"&gt;反射パズル　みんなで いしかり&lt;/A&gt;」&lt;/SPAN&gt;では、ユーザーがオリジナルステージを作成・公開することができます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ステージデータの管理などアツマールAPIの機能を使っているのですが、その具体的な方法を以下に挙げてみます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;1.ステージデータの取得&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;公開されたステージでのデータは、制作したユーザーの&lt;A href="https://atsumaru.github.io/api-references/shared-save" target="_blank"&gt;共有セーブ&lt;/A&gt;に保存されています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;それらの取得のために必要な共有セーブを持つユーザーのリストは、ランキング機能である&lt;A href="https://atsumaru.github.io/api-references/scoreboard" target="_blank"&gt;スコアボード&lt;/A&gt;を利用しています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;こういう場合&lt;A href="https://atsumaru.github.io/api-references/user" target="_blank"&gt;ユーザー情報API&lt;/A&gt;で最近プレイしたユーザーの情報を取得して使うのが一般的なようですが、このゲームでのステージエディットは少しハードルが高いこともありステージを公開しているユーザーが押し出されてしまう可能性があります。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ステージを公開した時だけプレイヤー間通信の有効化を行うという手もありますが、一旦公開したステージを非公開にして共有データが無くなる可能性も考慮して、スコアボードを使うことにしました。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ステージ作成側は、&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・ステージ公開時&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・起動時&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;にスコアボードに日にちをスコアとして登録します。起動時にも登録しているのは、新しいステージを作成しなくても埋もれてしまわないようにするためです。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;そして作成ステージをプレイする側は、&lt;A href="https://atsumaru.github.io/api-references/scoreboard/api" target="_blank"&gt;scroreboards.getRecords&lt;/A&gt;でユーザーのリストを取得します。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;日にち（1970/1/1からの日数）をスコアとしているので新しいほど上位にきますが、リストにさえ入っていれば順位は処理に関係ありません。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;2.作成したステージをTwitterで紹介&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;APIの使い方自体は、特に変わったことはありません。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;A href="https://atsumaru.github.io/api-references/screenshot" target="_blank"&gt;screenshot.setTweetMessage&lt;/A&gt;で、クエリ文字列を設定して、&lt;A href="https://atsumaru.github.io/api-references/screenshot" target="_blank"&gt;screenshot.displayModal&lt;/A&gt;でユーザーがツイート、&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;そのリンクで起動した側はquery[key]でステージ情報を得る&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;という処理になっています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;クエリ文字列には、ステージのデータと作成したユーザーの情報が丸々入っています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ステージ情報をデータベース等で一括管理していれば通し番号でもやり取りすれば良いのですが、データ自体が個々のユーザーの共有セーブにあり変更されたり無くなったりすることもあるので、パラメータの文字列だけでステージを再現できるようにしました。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;3.ステージ作者情報の表示&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;A href="https://atsumaru.github.io/api-references/creator-modal" target="_blank"&gt;そういうAPI&lt;/A&gt;があったので、せっかくだから使ってみました。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ステージを作ってくださったユーザー様の宣伝に、少しでもなってくれればというところでもあります。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;4.できなかったこと&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ユーザーシグナルあたりを使って、オリジナルステージを遊んだ人の数やクリアした人の数を制作者に伝えるようにしてみたかったのですが、取りこぼしがあったり制作者が定期的に起動する必要があったりするのであきらめました。値が不正確では、あまり意味もありませんので。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;何かしらのフィードバックがあった方がステージの作り甲斐もあるのですが、そこはTwitterでのステージ紹介を使ってなんとか……&lt;/DIV&gt;&#13;
&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/151c62a9.360aef61.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjowLCJjYXQiOiI0NCIsImJhbiI6IjQ2MDEzNSJ9" target="_blank" rel="nofollow noopener noreferrer" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/151c62a9.360aef61.151c3799.9267d381/?me_id=1&amp;me_adv_id=460135&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;
</description>
      <dc:subject>ゲーム</dc:subject>
      <dc:subject>ブラウザゲーム プログラミング</dc:subject>
    </item>
    <item>
      <title>「みんなで いしかり」 エディットモードの詳しい説明</title>
      <link>https://raseene.asablo.jp/blog/2019/11/23/9180399</link>
      <guid>https://raseene.asablo.jp/blog/2019/11/23/9180399</guid>
      <pubDate>Sat, 23 Nov 2019 14:33:18 +0900</pubDate>
      <dcterms:modified>2019-11-23T14:47:59+09:00</dcterms:modified>
      <dcterms:created>2019-11-23T14:36:15+09:00</dcterms:created>
      <description>&lt;div style="line-height: 1.5em"&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;A href="https://game.nicovideo.jp/atsumaru/?link_in=gamepage_atsumaru-header" target="_blank"&gt;RPGアツマール&lt;/A&gt;で発表した&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;「&lt;A href="https://game.nicovideo.jp/atsumaru/games/gm12772?link_in=index" target="_blank"&gt;反射パズル　みんなで いしかり&lt;/A&gt;」&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&#13;
&lt;A href="https://game.nicovideo.jp/atsumaru/games/gm12772?link_in=index" target="_blank"&gt;&#13;
&lt;IMG title="みんなでいしかり" alt="みんなでいしかり" src="http://raseene.asablo.jp/blog/img/2019/11/23/573ba2.jpg" style="border: medium; border-image: none; width: 384px; height: 216px;"&gt;&#13;
&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;オリジナルステージ作成のための、エディットモードの詳しい説明です。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;DIV class="asahi_editor_line"&gt;はじめにタイトル画面で「ステージ作成」を選ぶと、ステージ選択画面に移行します。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&#13;
&lt;IMG title="みんなでいしかり　自作ステージ選択" alt="自作ステージ選択" src="http://raseene.asablo.jp/blog/img/2019/11/18/572cac.jpg" style="border: medium; border-image: none; width: 384px; height: 216px;"&gt;&#13;
&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;最初はまだ作成されたステージが無いので、光線発射台だけのブランクステージが並んでいます。先頭のステージだけが選択可能なのでタップすると、テストプレイ画面になります。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ここでは作成されたステージのクリア確認や公開の設定等を行うのですが、まずはそのステージを作るために右上の「エディット」ボタンを押してステージエディット画面に移ってください。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&#13;
&lt;IMG title="みんなでいしかり　エディット画面" alt="エディット画面" src="http://raseene.asablo.jp/blog/img/2019/11/18/572cb0.jpg" style="border: medium; border-image: none; width: 384px; height: 216px;"&gt;&#13;
&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;右側に4色それぞれの石が並んでいます。これらの石をドラッグ＆ドロップで左側のステージ上に配置して、オリジナルステージを作っていきます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;一旦ステージ上に置いた石も同様に動かすことができます。また、ステージ外に置くと消去されます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ステージ上・右側どちらの石もタップで、反射板の向きそして反射板無しを切り替えます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;光線発射台も石と同じようにドラッグ＆ドロップで動かすことができます。ただし、画面外に置いても消去されることはありません。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;また、タップすると光線発射の向きが変わります。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;オリジナルステージが完成したら、「プレイ」ボタンでテストプレイ画面に戻ってください。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ここでは通常のゲームプレイ同様に、ステージを楽しむことができます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&#13;
&lt;IMG title="みんなでいしかり　テストプレイ画面" alt="みんなでいしかり　テストプレイ画面" src="http://raseene.asablo.jp/blog/img/2019/11/18/572cb4.jpg" style="border: medium; border-image: none; width: 384px; height: 216px;"&gt;&#13;
&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;作成されたステージを解いて、クリア可能であることを確認してください。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;一度クリアが確認されれば、「メニュー」から「ステージを公開する」や「Twitterで紹介」で、ステージを他のユーザーに公開することができます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ステージを修正したい場合は「エディット」ボタンで再びエディットモードに移ってください。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;石の配置を変えたりするとまたクリア確認が必要になりますが、以下のような解き方が変わらないような変更の場合はクリア状態が維持されます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・反射板の向きを変える&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・別の色の石に替える&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・反射板の無い石をある石に替える&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・反射板の無い石を取り除く&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;・補足&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;エディットモード時の「メニュー」→「ステージチェック」で、現状のステージがクリア可能かどうかチェックすることができます。あくまでクリア可能かどうかのチェックで、解答を教えてくれるわけではありません。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;この機能を利用して、まず適当に石を配置してクリア可能であることをチェック。そしてテストプレイで挑戦してみる、というように手軽に新しいステージで楽しむことができます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;自分で解くことができたら少し体裁を整えて、ぜひ他のユーザーに公開してみてください。&lt;/DIV&gt;&#13;
&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;script type="text/javascript"&gt;rakuten_design="slide";rakuten_affiliateId="1036d58f.c754918d.1036d590.f64609f2";rakuten_items="ctsmatch";rakuten_genreId="0";rakuten_size="468x160";rakuten_target="_blank";rakuten_theme="gray";rakuten_border="off";rakuten_auto_mode="on";rakuten_genre_title="off";rakuten_recommend="on";rakuten_ts="1574487480543";&lt;/script&gt;&lt;script type="text/javascript" src="https://xml.affiliate.rakuten.co.jp/widget/js/rakuten_widget.js"&gt;&lt;/script&gt;
</description>
      <dc:subject>ゲーム</dc:subject>
    </item>
    <item>
      <title>くるんくる～ぱ マニアックス</title>
      <link>https://raseene.asablo.jp/blog/2019/06/03/9080378</link>
      <guid>https://raseene.asablo.jp/blog/2019/06/03/9080378</guid>
      <pubDate>Mon, 03 Jun 2019 00:04:22 +0900</pubDate>
      <dcterms:modified>2019-06-06T22:37:48+09:00</dcterms:modified>
      <dcterms:created>2019-06-03T00:07:41+09:00</dcterms:created>
      <description>&lt;div style="line-height: 1.5em"&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;A href="https://game.nicovideo.jp/atsumaru/?link_in=gamepage_atsumaru-header" target="_blank"&gt;RPGアツマール&lt;/A&gt;で発表中のゲーム&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-size: larger;"&gt;「&lt;A href="https://game.nicovideo.jp/atsumaru/games/gm9112?link_in=index" target="_blank"&gt;くるくるアクションパズル　くるんくる～ぱ&lt;/A&gt;」&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;の詳しい内部処理やデータ値をまとめてみました。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;A onclick="return asablo.expandimage(this,640,360,&amp;#x27;http://raseene.asablo.jp/blog/img/2019/06/02/54b00e.jpg&amp;#x27;)" href="http://raseene.asablo.jp/blog/img/2019/06/02/54b00e.jpg" target="_blank"&gt;&lt;IMG title="くるんくる～ぱ" alt="くるんくる～ぱ" src="http://raseene.asablo.jp/blog/img/2019/06/02/54b00d.jpg" style="border: medium; border-image: none; width: 300px; height: 168px;"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ありがたいことにまだプレイ数は増えているようで、しかもハイスコア上位は製作者の自分も到底手の届かないハイレベルなものになっています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;この記事の情報で攻略法が変わるようなことは無いと思いますが、何かしらの参考になればと思います。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;1.各動作のフレーム数&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;このゲームのフレームレートは30fpsなので、１フレーム＝1/30秒となっています。&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;まず、回転軸をタッチすると4フレームかけて右に120°回転します。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;回転中にタッチすると、そこから４フレームで次の回転を行います。&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;回転の終わった６フレーム後に、三角に並んだ球の消去判定を行います。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;少し間を置くのは、操作上左回転が無いので右回転２回の確認を待っているため、そして適当な回転で適当に消えるのをなるべく避けるためです。&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;消去判定を受けた球は、12フレームかけて消去されます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;このとき消去開始から８フレームまでは、他の三角形の判定に使うことができます。つまり、消去中の三角形に他の球をくっつけて新たにできた三角形も同様に消去されます。&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;球が消えるとその上の球は、4フレームで球一つ分の速度で落下します。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;落下終了の８フレーム後、次の消去判定が行われます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;2.COMBO数とCOMBOゲージ&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;球が消去されると三角形1つにつきCOMBO数が1上昇、COMBO数×5点がスコアに加算されます。COMBO数の上限は99となっています。（上限に達することなんて滅多に無いと思っていたのに……）&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;COMBOゲージは三角形1つで、まず4/5倍された上で18を加算されます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;これにより値が大きくなるほど実質的な上昇値は小さくなり、90という上限を超えることはありません。上限は持ちたいが、そこでぶった切るのではなく滑らかに上昇（微分が連続）させたくて、こんな処理になっています。&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;球を回転させたとき、&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・COMBOゲージが０より大きい場合、COMBOゲージから８減算します（下限は０）&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;・COMBOゲージが０の場合、COMBO数を1つ減らします（下限は０）&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ただし、同じ場所を連続で回転した場合は最初だけ上記の処理を行います。これもまた、左回転が無いための処置です。&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;また毎フレーム、球が稼働（落下・消去）していないときはCOMBOゲージから１減算します（下限は０）。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;3.その他&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;球が消去され上から新たな球が落ちてくるとき、そのすぐ下にある球と同じ色の球は選ばれないようになっています。落ちてきた球で勝手に消えるのをなるべく避けるためです。&lt;/DIV&gt;&#13;
&lt;div style="line-height: 0.7em"&gt;&lt;br&gt;&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;また、ゲーム開始から40秒後（残り20秒）盤上に一番少ない色の球は、それ以降出現しなくなります。最後の追い込みのために、色を減らして消しやすくなるようにしています。&lt;/DIV&gt;&#13;
&lt;/div&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/143f52fd.f8eed6e4.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjowLCJjYXQiOiI1OCIsImJhbiI6IjQ5OTk2NiJ9" target="_blank" rel="nofollow noopener noreferrer" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/143f52fd.f8eed6e4.151c3799.9267d381/?me_id=1&amp;me_adv_id=499966&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;
</description>
      <dc:subject>ゲーム</dc:subject>
    </item>
    <item>
      <title>プライバシーポリシー（アプリ）</title>
      <link>https://raseene.asablo.jp/blog/2018/09/24/8964611</link>
      <guid>https://raseene.asablo.jp/blog/2018/09/24/8964611</guid>
      <pubDate>Mon, 24 Sep 2018 20:44:04 +0900</pubDate>
      <dcterms:modified>2018-09-24T20:45:06+09:00</dcterms:modified>
      <dcterms:created>2018-09-24T20:45:06+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;1.個人情報の取得について&lt;/SPAN&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;当アプリでは、個人情報の取得は行っておりません。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ネットワークへのアクセスは、以下で必要となっています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;　・広告表示（nend）&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　　　　　&lt;A href="https://nend.net/privacy/sdkpolicy" target="_blank"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 0, 255);"&gt;nendのプライバシーポリシー&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;2.ポリシーの変更について&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;当アプリのバージョンアップ等により、本ポリシーの内容が変更される場合があります。&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;3.お問い合わせ窓口&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;本ポリシーに関するお問い合わせは、下記のメールアドレスまでお願い致します。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;E-mail：&lt;A target="_blank"&gt;&lt;/A&gt;&lt;A href="mailto:so.raseene.68@gmail.com" target="_blank"&gt;so.raseene.68@gmail.com&lt;/A&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;
</description>
      <dc:subject>アプリ</dc:subject>
    </item>
    <item>
      <title>プライバシーポリシー（ゲーム）</title>
      <link>https://raseene.asablo.jp/blog/2018/09/24/8964609</link>
      <guid>https://raseene.asablo.jp/blog/2018/09/24/8964609</guid>
      <pubDate>Mon, 24 Sep 2018 20:39:28 +0900</pubDate>
      <dcterms:modified>2023-03-14T18:42:25+09:00</dcterms:modified>
      <dcterms:created>2018-09-24T20:40:56+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;1.個人情報の取得について&lt;/SPAN&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;当アプリでは、個人情報の取得は行っておりません。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ネットワークへのアクセスは、以下で必要となっています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;　・Google Play ゲームサービス&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;　　　　　&lt;A href="https://policies.google.com/privacy" target="_blank"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 0, 255);"&gt;Googleのプライバシーポリシー&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;　・広告表示（AdMob）&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　　　　　&lt;A href="https://policies.google.com/technologies/ads" target="_blank"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 0, 255);"&gt;広告 – ポリシーと規約 – Google&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;　・広告表示（nend）&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　　　　　&lt;A href="https://nend.net/privacy/sdkpolicy" target="_blank"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 0, 255);"&gt;nendのプライバシーポリシー&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;2.ポリシーの変更について&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;当アプリのバージョンアップ等により、本ポリシーの内容が変更される場合があります。&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold; font-size: larger;"&gt;3.お問い合わせ窓口&lt;/SPAN&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;本ポリシーに関するお問い合わせは、下記のメールアドレスまでお願い致します。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;E-mail：&lt;A target="_blank"&gt;&lt;/A&gt;&lt;A href="mailto:so.raseene.68@gmail.com" target="_blank"&gt;so.raseene.68@gmail.com&lt;/A&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;
</description>
      <dc:subject>アプリ</dc:subject>
    </item>
    <item>
      <title>現金しか信じられない社会</title>
      <link>https://raseene.asablo.jp/blog/2017/08/18/8649306</link>
      <guid>https://raseene.asablo.jp/blog/2017/08/18/8649306</guid>
      <pubDate>Fri, 18 Aug 2017 00:06:03 +0900</pubDate>
      <dcterms:modified>2017-08-18T00:09:57+09:00</dcterms:modified>
      <dcterms:created>2017-08-18T00:09:27+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;　知ってる人は知ってるんでしょうが、&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　店の支払いでQUOカードを使ったときに、足りない分を電子マネーでは支払いできないそうです。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　コンビニ（サンクス）で1000円ちょっとの買い物をして、残高700円程のQUOカードを出した後、残りを電子マネー（Edy）で払おうとしたら断られました。&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　現金で払ってくれと言われましたが、手持ちが無いので仕方なく返品しようとしたら、それもできないと断られました。一旦出したQUOカードは引っ込められないそうです。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　というわけで詰みです。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　電子マネーで支払いはできない、しかし返品もできない。&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　決まり事には従いますし、別に客の権利だと無理を通すつもりもありません。&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　しかしその決まり事を知らなかったからといって、客がどうにもできない状態になるってのは何かおかしくないですかね？&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　こういうことがあり得るので、現金は常に持ち歩かないといけないってことでしょうか？&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　だったら一体、何のための電子マネーなんだと思ってしまいます。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　自分は電子マネーを使えるところでは使うし、他の人も会計をスムーズにするために使ってほしいと考えています。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　しかしこれでは、使わない人の「何かあるかもしれないから」「現金の方が安心だから」という言い訳に反論できねぇや……&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　ちなみに&lt;A href="http://www.quocard.com/" target="_blank"&gt;QUOカードのサイト&lt;/A&gt;を見てみましたが、足りない分を電子マネーで支払うことはできないという注意を見つけることはできませんでした。&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hgc/15f241de.56fb70ff.151c3799.9267d381/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fedyshop%2Fedy-rpoint_red%2F&amp;m=http%3A%2F%2Fm.rakuten.co.jp%2Fedyshop%2F&amp;link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjowLCJjYXQiOiIxIiwiYmFuIjoiNjY4NTMxIn0%3D" target="_blank" rel="nofollow" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/15f241de.56fb70ff.151c3799.9267d381/?me_id=1258569&amp;me_adv_id=668531&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;
</description>
      <dc:subject>雑談</dc:subject>
    </item>
    <item>
      <title>画面に浮かぶ その顔は……</title>
      <link>https://raseene.asablo.jp/blog/2017/08/11/8644440</link>
      <guid>https://raseene.asablo.jp/blog/2017/08/11/8644440</guid>
      <pubDate>Fri, 11 Aug 2017 10:14:56 +0900</pubDate>
      <dcterms:modified>2017-08-11T10:27:54+09:00</dcterms:modified>
      <dcterms:created>2017-08-11T10:15:57+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;夏の夜、&lt;BR&gt;いつものスマホの画面に浮かび上がる&lt;BR&gt;その顔は……&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;Androidアプリ&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 64, 128); font-size: larger;"&gt;「&lt;A href="http://market.android.com/details?id=jp.so_raseene.yourface" target="_blank"&gt;お前だ！ ～ 画面に顔が浮かび上がる いたずらアプリ&lt;/A&gt;」&lt;/SPAN&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;A onclick="return asablo.expandimage(this,480,710,&amp;#x27;http://raseene.asablo.jp/blog/img/2017/08/11/49c6c0.jpg&amp;#x27;)" href="http://raseene.asablo.jp/blog/img/2017/08/11/49c6c0.jpg" target="_blank"&gt;&lt;IMG title="いたずらアプリ「お前だ！」" alt="いたずらアプリ「お前だ！」" src="http://raseene.asablo.jp/blog/img/2017/08/11/49c6bf.jpg" style="border: currentColor; border-image: none; width: 300px; height: 443px;"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;ホーム画面や別のアプリなど、スマホの画面に使用者の顔を浮かび上がらせる、いたずらアプリです。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;アプリを起動すると、開始画面になります。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;A onclick="return asablo.expandimage(this,480,710,&amp;#x27;http://raseene.asablo.jp/blog/img/2017/08/11/49c6c2.jpg&amp;#x27;)" href="http://raseene.asablo.jp/blog/img/2017/08/11/49c6c2.jpg" target="_blank"&gt;&lt;IMG title="いたずらアプリ「お前だ！」" alt="いたずらアプリ「お前だ！」" src="http://raseene.asablo.jp/blog/img/2017/08/11/49c6c1.jpg" style="border: currentColor; border-image: none; width: 300px; height: 443px;"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;ここで「ホーム画面」をタッチするとスマホのホーム画面に移動しますが、プログラムは実行したままです。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;そのまま画面を見ていると、しばらくして……&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;A onclick="return asablo.expandimage(this,480,710,&amp;#x27;http://raseene.asablo.jp/blog/img/2017/08/11/49c6c4.jpg&amp;#x27;)" href="http://raseene.asablo.jp/blog/img/2017/08/11/49c6c4.jpg" target="_blank"&gt;&lt;IMG title="いたずらアプリ「お前だ！」" alt="いたずらアプリ「お前だ！」" src="http://raseene.asablo.jp/blog/img/2017/08/11/49c6c3.jpg" style="border: currentColor; border-image: none; width: 300px; height: 443px;"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;画面にあなたの顔が浮かび上がります。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;A onclick="return asablo.expandimage(this,480,710,&amp;#x27;http://raseene.asablo.jp/blog/img/2017/08/11/49c6c6.jpg&amp;#x27;)" href="http://raseene.asablo.jp/blog/img/2017/08/11/49c6c6.jpg" target="_blank"&gt;&lt;IMG title="いたずらアプリ「お前だ！」" alt="いたずらアプリ「お前だ！」" src="http://raseene.asablo.jp/blog/img/2017/08/11/49c6c5.jpg" style="border: currentColor; border-image: none; width: 300px; height: 443px;"&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;他のアプリを起動しても出てきます。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;実行を停止するときは、いったんアプリ「お前だ！」を起動し直して「終了」を選んでください。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;このアプリを起動したスマホを何も知らない人に貸して操作させると、驚かれるかもしれません。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;他人のスマホにこっそり仕込むのは、ちょいと趣味が悪いのでやめておきましょう。&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;script type="text/javascript"&gt;var ronl_site_code="49hVEU2x8TI";var ronl_oid="270022";var ronl_searchCondition="1";var ronl_genreId="101164";var ronl_layoutType="2";var ronl_vertical="2";var ronl_horizontal="2";var ronl_alignment="1";var ronl_frame="1";var ronl_ranking="1";&lt;/script&gt;&lt;script type="text/javascript" src="http://r-ad.linkshare.jp/js/rank_ichiba.js"&gt;&lt;/script&gt;
</description>
      <dc:subject>アプリ</dc:subject>
    </item>
    <item>
      <title>共有メニュー追加</title>
      <link>https://raseene.asablo.jp/blog/2017/06/13/8594981</link>
      <guid>https://raseene.asablo.jp/blog/2017/06/13/8594981</guid>
      <pubDate>Tue, 13 Jun 2017 22:36:38 +0900</pubDate>
      <dcterms:modified>2017-06-13T22:49:10+09:00</dcterms:modified>
      <dcterms:created>2017-06-13T22:44:29+09:00</dcterms:created>
      <description>&lt;DIV class="asahi_editor_line"&gt;Androidカメラアプリ&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 64, 128); font-size: larger;"&gt;「&lt;A href="http://market.android.com/details?id=jp.so_raseene.camera2" target="_blank"&gt;おかしなカメラ・改&lt;/A&gt;」&lt;/SPAN&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;p&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(128, 64, 0); font-size: larger;"&gt;「&lt;A href="http://market.android.com/details?id=jp.so_raseene.facecamera" target="_blank"&gt;おかしな（ヵ_ォ）カメラ&lt;/A&gt;」&lt;/SPAN&gt;&lt;BR&gt;&lt;p&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;に、画像の共有機能を追加しました。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;p&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;撮った画像や動画を、すぐにTwitterに投稿したりメールに添付したりすることができます。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG title="共有メニュー" alt="共有メニュー" src="http://raseene.asablo.jp/blog/img/2017/06/13/48c2c7.jpg" style="border: currentColor; border-image: none; width: 300px; height: 100px;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;「静止画キャプチャ」「動画キャプチャ」後の確認画面、タイトルバーに共有ボタン（&lt;IMG title="共有メニューボタン" alt="共有メニューボタン" src="http://raseene.asablo.jp/blog/img/2017/06/13/48c2c9.jpg" style="border: currentColor; border-image: none; width: 36px; height: 36px; vertical-align: middle;"&gt;）が追加されています。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG title="共有メニュー" alt="共有メニュー" src="http://raseene.asablo.jp/blog/img/2017/06/13/48c2ce.jpg" style="border: currentColor; border-image: none; width: 300px; height: 340px;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;ボタンを押すと共有先のメニューが現れます。端末にインストールされているアプリによってメニューの内容は変わります。&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;DIV class="msg-pict-2" style="text-align: center;"&gt;&lt;IMG title="Twitter共有" alt="Twitter共有" src="http://raseene.asablo.jp/blog/img/2017/06/13/48c2d1.jpg" style="border: currentColor; border-image: none; width: 300px; height: 400px;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;例えば Twitterを選択すると、このように投稿画面に遷移します。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;ここからそのまま画像を Twitterに投稿することができます。&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;撮った画像の共有はアルバム等、別アプリで行えば良いと思っていましたが、調べてみたらそう難しいものではなかったので機能を追加してみました。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;ということで、アプリに共有機能を追加する手順をごく簡単に挙げてみます。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;詳しくはここにあるキーワードで検索して、ちゃんと解説しているサイトをご覧ください。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 128, 64); font-size: larger;"&gt;・共有メニュー&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;&lt;A href="https://www.google.co.jp/#q=ShareActionProvider" target="_blank"&gt;ShareActionProvider&lt;/A&gt;&lt;/SPAN&gt;を使用。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;リソースにメニューを追加して、&lt;A href="https://www.google.co.jp/#q=onCreateOptionsMenu" target="_blank"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;onCreateOptionsMenu()&lt;/SPAN&gt;&lt;/A&gt;で設定します。&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;任意のタイミングで共有ボタンを追加・削除するときは &lt;A href="https://www.google.co.jp/#q=invalidateOptionsMenu" target="_blank"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;invalidateOptionsMenu()&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;&lt;/SPAN&gt;を呼びます。&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;&lt;SPAN class="asahi_editor_styling" style="color: rgb(0, 128, 64); font-size: larger;"&gt;・共有データ&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;画像や動画を共有する場合 Intentにそのファイルの Urlを設定しますが、Android7.0からセキュリティの強化でちょっと準備が必要になりました。&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　共有ディレクトリをリソースで指定&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　AndroidManifest.xmlで FileProviderタグを追加&lt;BR&gt;&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;　&lt;A href="https://www.google.co.jp/#q=FileProvider.getUriForFile" target="_blank"&gt;&lt;SPAN class="asahi_editor_styling" style="font-weight: bold;"&gt;FileProvider.getUriForFile&lt;/SPAN&gt;&lt;/A&gt;で Urlを取得&lt;/DIV&gt;&lt;DIV class="asahi_editor_line"&gt;という手順になります。&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&lt;DIV class="asahi_editor_line"&gt;&lt;BR&gt;&lt;/DIV&gt;&#13;
&#13;
&lt;a href="https://hb.afl.rakuten.co.jp/hsc/15d0cd9c.d826b974.151c3799.9267d381/?link_type=pict&amp;ut=eyJwYWdlIjoic2hvcCIsInR5cGUiOiJwaWN0IiwiY29sIjowLCJjYXQiOiI4NSIsImJhbiI6IjEzNjA3MDIifQ%3D%3D" target="_blank" rel="nofollow" style="word-wrap:break-word;"  &gt;&lt;img src="https://hbb.afl.rakuten.co.jp/hsb/15d0cd9c.d826b974.151c3799.9267d381/?me_id=1&amp;me_adv_id=1360702&amp;t=pict" border="0" style="margin:2px" alt="" title=""&gt;&lt;/a&gt;
</description>
      <dc:subject>アプリ</dc:subject>
      <dc:subject>Android プログラミング</dc:subject>
    </item>
  </channel>
</rss>
