ActionScript 3.0で簡易なコマンド入力判定

最近はいろいろなものの合間にアクション的なゲーム作ったりしてます。
公開できるのは大分後になるでしょうけれど(お蔵入りの可能性もあり)

で、あまり複雑ではないコマンド入力が必要なので作った。ソースもあるよ。困った人の参考になれば。たいしたことはしていないけども。

自分用に勢いでつくったから細かいところは書き直す必要があるでしょうが、複雑なのが必要でなければもしかすると使えるんじゃないでしょうか。

波動拳昇竜拳の打ち分け程度の認識はできます。Flashなのでキーボードでしか試せないですが。


ActionScript 3.0 ゲーム用 簡易コマンド入力で入力テストできます。

大まかな仕組みとしては、

  • キー入力履歴(押したキーとフレーム数)を保存
  • 最後に入力したキーからコマンド候補を絞る
  • コマンドの長いもの(もしくは優先度をつけて)からコマンド判定する
  • 履歴中で入力待ちうけ時間以内で必要キーが順番に見つかればコマンド成功
  • 斜めと十字は分けて考える
  • 単ボタンコマンドの判定は数フレーム待つ

といったところ。ActionScriptじゃなくても似たような感じでできます。ゲームによっていろいろ仕様は変わってくるでしょうけれど。

タメとかコマンド優先度とかも実装してませんが、やればすぐできるかと。

※14日11頃更新。ややこしくて誤判別していたコマンドも認識できるようにした。

ドット絵リンク

久しぶりにドット絵を打ってみたら、自分としてはなかなかの出来になったので晒し。

http://heriet.info/image/pixel_001.png
http://heriet.info/image/pixel_002.png


昔はよくがりがりとやってたものです。私の打ったドット絵の黒歴史がいまもHDDに埋まってて久しぶりにみたら恥ずかしくなってしまった。

懐かしいので、ドット絵関連サイトをいろいろ巡ってみた。リンク切れてたり、閉鎖してたり、新しいのがあったりですが、絵をみているとドット絵はやっぱいいなあ、と思うのでした。

以下すばらしきドット絵が置いてあるサイト集

キャラ物多し。サイト上でのハイパーリンクのネットワークが出来てるので、見つけやすかったせいかもしれません。私の趣味とかじゃなく(?)

もっと渋くてメカメカしたりおどろおどろしいモンスターとかのドット絵サイトももっとたくさんあった気がしたのだけれど、みつからず。

とっても格好いいドラゴンの素材があったサイトとかスライムばっかりのサイトとか記憶に残ってたので探してみたのだけど、どこにいったのやら。

Drupalは複数サイト設置・運営がとっても簡単便利

Drupalは一つのパッケージで複数サイトを運営することができます。

他のいくつかのCMSにも、もちろんそのような機能はありますが、Drupalの場合、設置・運営がとっても簡単です。

一つのパッケージでの複数サイト運営のメリット・デメリット

一般的に、CMSパッケージを複数アップロードしてサイトを複数設置する場合と比べ、一つのパッケージでの複数サイト運営する場合、いくつかメリットがあります。

  • 重複するファイル(プログラムや画像などが一つですむ)
  • 保守の手間が軽減(アップデートするにも一つのパッケージだけでよい)

デメリットを挙げるとすれば、

  • 負荷が集中する
  • 各々の柔軟性が失われる(似たような構造のサイトならばむしろメリットになる)

といったところでしょうか。環境にもよりますが、どうにでもなる程度なので、メリットのほうが断然大きいです。

Drupalでの複数サイト設置

Drupalに複数サイトがある場合、閲覧時にアクセスしたURLから判断してサイトを表示します。ドメイン・ホスト名やディレクトリが違うサイトでも運営することができます。

デフォルトでは、sites/defaultにサイト情報(データベース設定など)が保存されています。特に何もしなければ、どこからアクセスしてもsites/default/settings.phpで設定されたサイトが表示されます。

今、「http://www.drupal.org/mysite/test/」にアクセスしたとします。すると、DrupalはそのURLを元にサイト情報が書かれたsettings.phpがあるかどうか、sites以下にあるディレクトリを次の順番で探していきます。

  1. sites/www.drupal.org.mysite.test
  2. sites/drupal.org.mysite.test
  3. sites/org.mysite.test
  4. sites/www.drupal.org.mysite
  5. sites/drupal.org.mysite
  6. sites/org.mysite
  7. sites/www.drupal.org
  8. sites/drupal.org
  9. sites/org
  10. sites/default

http://www.drupal.org/mysite/test/」でも「http://drupal.org/mysite/test/」でも同じサイトにアクセスさせたい場合は、設定ファイルは「sites/drupal.org.mysite.test」より下の形(2〜10)で指定しないとうまくいきません。

http://www.hogehoge.com/」「http://www.drupal.org/mysite/test/」「http://www.drupal.org:8080/」というURLの別々のサイトを設置したい場合、次のようにディレクトリ及びsettings.phpをアップロードするとよいでしょう。

また、サイト固有の「モジュール」「テーマ」を設置することができます。settings.phpと同じディレクトリにそれぞれ「modules」「themes」というディレクトリを置き、それらの中にモジュールやテーマをアップロードしてください。

「sites/drupal.org.mysite.test」に「ex_module1」「ex_module2」という名前のモジュールと「ex_theme1」「ex_theme2」という名前のテーマを独自に組み込みたい場合、sites以下のディレクトリ構造は次のようになります。

  • sites/
    • drupal.org.mysite.test/
      • modules/
        • ex_module1/
        • ex_module2/
      • themes/
        • ex_theme1/
        • ex_theme2/
      • settings.php

必要なファイルをアップロードし、特定のURLから実際にDrupalのindex.phpが設置されているファイルへアクセスできるように設定してから、そのURLにアクセスすると、インストール時のサイト設定画面が現れるので、個別に設定してください。

なお、settings.phpのサイト情報(データベースのURLおよびプレフィクス)を書き換え、データベースを予め作れば、機械的に複数サイトを設置することもできます(そういうモジュールはないんだろうか?)

同じデータベースでもプレフィクスを書き換えれば複数サイトで利用可能です。もちろん、ドメインが違っても使えます。

以後、それぞれのサイトで作成したノードやサイト設定はそれぞれ別のデータベースに保存されるので、独立したサイトを運営させることができます。もちろんテーマやモジュールなどは共有でき、アップデートは一回でOKです(update.phpを動作させるだけ)。cronも一緒に動作するので、保守がとっても楽になることでしょう。

Drupal以外のCMSとの比較

もちろん、複数サイトを運営する機能は他のCMSにもあります。

機能の比較をしようかと思ったのですが、他のCMSについてはまだあまり詳しいわけではないので、またの機会に。

URLをきれいにする

mod_rewriteを使って、index.phpを省略するように設定してみた。いまのところUSBメモリまとめだけ。

いままでは

http://usbmem.heriet.info/index.php/TopPage

だったのが、

http://usbmem.heriet.info/TopPage

でもアクセスできるように。短くていい感じ。

mod_rewrite便利ですね。

Drupal導入メモランダム(さくらインターネット スタンダード)

CMSを運営する機会があったので、勉強することになりました。
CMSがいろいろある中で迷ったのですが、「Drupal(ドルーパル)」を選択。

選択理由は、

  • フリーである
  • 多くのサイトで導入されている
  • 将来性が高そう

といったところ。機能的に他のCMSと比べてどの程度違いがあるかまではまだわかっていませんが、多数のモジュールが公開されてることも考えると、普通に使う分には十分な機能がありそうです。
速度とか使いやすさとか、やたらめったらと使い倒すわけでもなければ気にならないし。

Drupalを設置する

英語のドキュメントが充実しているので読める方はそちらのほうがいいですが、私のように苦手な人は、下のリンクを参考にするとよいでしょう。

さくらインターネット スタンダードでの場合、少し癖があって、そのまま設置するとうまくいきません。

Drupal.0829.info さくらインターネットのとおりにやれば設置できます。

上記のリンクには書かれていないこと(主にさくらの仕様に関すること)を補足しておくと、

  • さくらの場合DBサーバは別なので、インストール時にホスト名を入力。DBサーバはさくらのサーバ設定から見れます。
  • cronの設定にも制限があります。DB同様サーバ設定からcronを設定しましょう。
  • クリーンURLを使用する場合、.htaccessを少し書き換える必要があり。具体的には、
  # Rewrite current-style URLs of the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

  # Rewrite current-style URLs of the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

にする。

テーマの導入

テーマ(Webのデザインを設定するスキンのようなもの)はDrupal.org Themesからいろいろとダウンロードできます。気に入ったものをthemasディレクトリに保存しましょう。

自分でいじる場合は、各テーマを参考にしてPHPCSSのファイルを書き換えるとよいです。

デフォルトでは、

page.tpl.php
ページ全体のテンプレート
block.tpl.php
サイドバーのブロックテンプレート
box.tpl.php
メインのコンテナのテンプレート
comment.tpl.php
コメントのテンプレート
node.tpl.php
ノードのテンプレート

で設定できます。また、○○.tpl.phpというファイルを作って、templete.php内で$variables['template_file'] = '○○';とでもすれば、テンプレートを書き換えられるっぽいです。
あと、特定のノードタイプに対して書き換える場合はnode-○○.tpl.phpを使うとよいみたい。

テンプレート周りはまだ不確かなので間違ってたらすみません。とりあえず、page.tplcssだけでもいじっておけば大体大丈夫です。

にいろいろとTipsが書かれています。

モジュールの導入

5.xでの場合です。

デフォルトでは最低限のモジュールしか入っていないので、インストールしましょう。とりあえず私が入れたのは、

Views
ノードを抽出して表示できる
Spam
スパム対策
PEAR Wiki Filter
いくつかのWiki記法が使えるようになる。別途PEARのパッケージをダウンロードする必要あり
Pathauto
PathモジュールでのURLエイリアス設定を自動化
jTooltips
ツールチップの見栄えがよくなる。Javascript使用

その他のモジュールに関しては、

あたりをどうぞ。でもモジュールは本家を見たほうが早いかもしれない。

サイト構築

コンテンツの作成でページを作成。階層関係があるなら、ブックがオススメ。ページとかストーリーでも似たようなものです。

メニューも追加すれば普通の見た目のサイトは大体構築できるはず。

Tips

自分で困ったときの改善点のメモ

3階層以下のサイトメニューを表示

テンプレートのなかに$secondary_linksなるものがあって、メインのメニューで2階層目にあたるもののリストが格納されてます。

デフォルトでは現在のページがメニュー階層に当てはまるときリスト表示してくれるのですが、2階層までしか表示してくれません。

3階層目以下にもメニューがある場合は、テンプレートに

<?php
$msn = variable_get('menu_primary_menu', 0);
$tertiary_links = menu_primary_links(3, $msn);
if (!empty($tertiary_links)){
  print '<div id="tertiary" class="clear-block">';
  print theme('menu_links', $tertiary_links);
  print '</div>';
}
?>

みたいな感じで追加すればOK。数字を変えれば4階層以下も同様。

おわりに

まだ勉強中なので間違ってるところがあったらすみません。日本ではまだあまり普及していないので、まともにやろうとすると英語を勉強しなければなりますまい。

Web APIのまとめつづき

Web APIまとめサイト作っていたところなんですが、Mashupediaというそのものずばりというかもっとすごいのが少し前にできていた模様。もうちょっと早く見つけていたら思いとどまっていたものを。中途半端なところまで作ってしまったんだけどまとめたデータはどうしてくれようか。

まあ、少し方向性が違うから適度なところで切り上げて公開することにしよう。