2007年12月31日月曜日

Flexドキュメント一覧

0 コメント


以下、zipの内容をざっとみた感じの内容


flex201_documentation.zip
















fds2javadocFlashDataServiceのapiマニュアル(html)
langrefflexAPIマニュアル(html)
flex2_buildanddeploy.pdfflexを使ったサーバアプリ(デプロイ法など)
flex2_compiler_api_ug.pdfコンパイラをアプリから呼ぶ方法?
flex2_createextendcomponents.pdfカスタムコンポーネントの作成方法
flex2_devguide.pdf開発ガイド
flex2_gettingstarted.pdfflexBuilderを使った基本
flex2_migrationguide.pdf過去のflashからflex2への移行方法
flex2_testing_with_mercury_qtp.pdf大規模アプリのテスト方法?
flex2_usingflexbuilder.pdfflexBuilderの使い方
prog_actionscript30.pdfアクションスクリプト

この中で重要そうなのは




  • flex2_gettingstarted.pdf flexBuilderを使った基本

  • flex2_devguide.pdf 開発ガイド

  • prog_actionscript30.pdf アクションスクリプト


この辺かな?しかし、これだけ充実してれば他に本買う必要ないね。





Ecmascript用のモード導入

0 コメント


ここから


ダウンロードしたelをコピー



~/Desktop/javascript.el /usr/share/emacs/site-lisp/




;; javascript-mode


(add-to-list 'auto-mode-alist (cons "\\.\\(js\\|as\\|json\\|jsn\\)\\'" 'javascript-mode))


(autoload 'javascript-mode "javascript" nil t)


(setq js-indent-level 4)






flexを始めてみる

0 コメント


ここからSDKとランゲージパックをダウンロード




  • /Applications下に展開

  • flex2_sdkにリネーム

  • ランゲージパックを上書き。


以上で使える。必要におうじて/Applications/flex2_sdk/binへのパスを通せば良い。


あとドキュメントはここの一番したにあるzipをダウンロード。





以下、俺が使ってるコンパイルスクリプト。antが使えるらしいのでそのうち試す。



#!/bin/sh


/Applications/flex2_sdk/bin/mxmlc -default-size 800 400 -default-frame-rate=60 -default-background-color=0xFFFFFF Main.as


cp Main.swf /Library/WebServer/Documents/downloads/flex/turi/



上記でも良いが、コンパイル時間がかかり過ぎなので、メモリ上でコンパイルする以下をインストール。


ここからfcshをダウンロード



cd ~/Downloads/flex_compiler_shell_012307


cp -r bin/* /Applications/flex2_sdk/bin/


cp -r lib/* /Applications/flex2_sdk/lib/



以下で実行



/Applications/flex2_sdk/bin/fcsh


(fcsh) mxmlc -default-size 800 400 -default-frame-rate=60 -default-background-color=0xFFFFFF Main.as






Flexで釣り竿デモ

0 コメント


flexで釣り竿っぽいものをつくってみた。


釣り竿デモ





剛体デモ(Applet対応)

0 コメント


アプレットに対応してみた。一応JavaWebStartも利用してる。


なぜかテクスチャロードに時間がかかり、一瞬フリーズしたか?と思った頃に起動する。


アプレットを起動


やはりjoglつかってアプレットは無謀かw。


いずれにしろjavaでゲーム作るモチベーションが急激に下がってきた今日この頃。


FlexでPapervision3Dでもいじるか。もしくはレンダラ自前で書くのもおもしろいかも。


ochaglをflexに移植してみるか。。。





2007年12月29日土曜日

Macのコンピュータ名の変更方法

0 コメント




  • システム環境設定→共有を選択





sourceforgeでの鍵の編集方法

0 コメント




  • ログイン→アカウント管理

  • 一番下にスクロールさせると、「シェルアカウント情報」というのがある

  • 「鍵の編集」をクリック





sourceforgeのCVSへのsshアクセス

0 コメント


まず鍵をつくる



 ssh-keygen -t dsa



できたファイルのうち、id_dsa.pubの中身を上記「鍵の編集」フォームに貼付ける。


CVSサーバにssh接続(おまじない)



ssh ocha@cvs.sourcefoge.jp



ログインと同時に切られるが、とりあえずこれでOK。


(初SSH接続したとき出されるユーザ入力を出さないようにするため、あらかじめ一回だけ接続する必要がある)





やよい導入

0 コメント


まず、CD-ROM版のやよい06をインストール


そのご、やよいを起動し、ナビゲータから以下をたる。


「サポート&サービス」→ダウンロード→弥生アップデート→弥生07シリーズはこちら


やよいの青色申告07があるので、古い順にインストールしていく。





MACのユーザの追加

0 コメント




  • システム環境設定→ユーザアカウントを選択

  • 鍵アイコンをクリックしてパスワード入力

  • +アイコンがアクティブになるのでクリックすればユーザを追加できる





Macでapache

0 コメント


cgiディレクトリ



/Library/WebServer/CGI-Executables



ドキュメントルート



/Library/WebServer/Documents



ユーザディレクトリ



/Users/{USER}/Sites/



設定ファイル



/private/etc/apache2



ログ



/private/var/log/apache2/error_log


/private/var/log/apache2/access_log






Macでphp

0 コメント


下記のコメントを外すだけ。



/private/etc/apache2/httpd.conf


#LoadModule php5_module libexec/apache2/libphp5.so






2007年12月28日金曜日

sourceforgeへのhikiのインストール

0 コメント


まず、sourceforge上では、rubyはcgiとしてしか使えない。


なのでcgi-binしたに配置する訳だが、cgi-bin配下はいろいろ制限がある。




  • .htaccessが効かない

  • .cgiファイル以外はアクセスできない

  • なので、cssなどのリソースファイルもアクセスできない

  • cgi-bin下で動かすと、出力されるHTML内のリンクがcgi-binからのURLパスになるため、403が発生する。


このため、無理矢理ドメイン直下で動かす必要があり、これにRwriteRuleを使用し実現する。


このとき、hiki.cgiから出力されるリソースファイルは、ドメイン直下からのパスに変換される。


このため、themeなどはhtdocs下に配置する必要がある。


以下にスクリプトをコピー



/home/groups/{GROUP}/cgi-bin



以下、/home/groups/{GROUP}を{ROOT}とする


hiki.cgiの先頭を修正



修正前


#!/usr/local/bin/ruby


修正後


#!/usr/bin/env ruby



hikiconf.cgiを修正



@data_path = '{ROOT}/privates/hiki/data'


@theme_url = '../theme'


@theme_path = '../htdocs/theme'



.htaccessをリネーム(バックアップ)





テーマを移動



cp {ROOT}/cgi-bin/theme {ROOT}/htdocs/theme



データを非公開ディレクトリに移動。ここではprivatesディレクトリを作成



mkdir -p {ROOT}/privates/hiki


mv {ROOT}/cgi-bin/data {ROOT}/privates/hiki/



{ROOT}/htdocsに.htaccessを作成



RewriteEngine on


RewriteRule ^$ /cgi-bin/hiki.cgi


RewriteRule ^index.html /cgi-bin/hiki.cgi


RewriteRule ^hiki.cgi /cgi-bin/hiki.cgi






2007年12月27日木曜日

soucdforgeでDokuWikiのインストールを試みるが、断念。

0 コメント


一応履歴を残しておく。


tarを落として展開後、下記にアクセス


http://ochagl.sourceforge.jp/install.php


右上に使用言語のプルダウンメニューがあるので日本語を選択する。


以下のエラーが発生してしまい、書き込めない。


Writing /home/groups/o/oc/ochagl/htdocs/data/cache/2/2cc2f7de4729ce0806e317bbda88ed0c.i failed


dokuwikiのFAQで調べてみると、phpがsafe-modeで動いているのが原因らしい。


sourceforge.jpでは、www-dataユーザ&グループで書き込みが発生している模様。





しかし、これを回避する方法があるらしい。セーフモードをPHPのFTP機能を使ってハックするという内容。


http://wiki.splitbrain.org/wiki:safemodehack


だが残念ながらsourceforgeでは、セキュリティのためにftpが使用できない!


その後、phpをcgiモードで動かすことができれば、safe_modeを回避できることがわかったが、これもsourceforgeではNG。





で、さらに調べてみると、おあつらえ向きの情報が!


以下のURLにある「SourceforgeでDokuWikiを使うには?」を参照する。


http://wiki.splitbrain.org/wiki:ja:faq


sourceforgeではphpをとおしてファイルの書き込みができない。


ならば、データをtmpファイルに残そうという内容。


tmp/persitent/(たぶんこのディレクトリは削除されなくなる?)下にconfとdataをおいてシンボリッックリンクを張るという内容。



mkdir -p /tmp/persistent/ochagl/


mv /home/groups/o/oc/ochagl/htdocs/dokuwiki/data /tmp/persistent/ochagl/


mv /home/groups/o/oc/ochagl/htdocs/dokuwiki/conf /tmp/persistent/ochagl/


cd /home/groups/o/oc/ochagl/htdocs/dokuwiki


ln -s /tmp/persistent/ochagl/conf


ln -s /tmp/persistent/ocahgl/data


chmod -R 777 /tmp/persistent/ochagl



この通りにやったが、なぜか/tmp/persistent/配下のファイルにアクセスできない。


しかし、pukiwikiでは普通に新規ページの追加ができるのになぜだろう。。。





2007年12月13日木曜日

マックが使いにくい

0 コメント

macbook買ってもう1ヶ月。それにしても使いにくい。いつまでたっても慣れないよ。

会社ではWindows,家ではMacというのがダメなのか。

プログラマになってから10年以上Windowsを使い続けてるせいか、Macを操作してるとき、頭のコンテキストをMacに切り換えられない。

以下に不満点を箇条書きしてみる。


  • ウィンドウサイズ
    • 右下の隅でしかサイズを変更できない。なぜ?マカーはイライラしないのか??
  • コピペの修飾キーがウィンドウズでいうALTキーに割り当てられている。ALTーC&ALTーVですよ。
  • コマンドキーがすべてALTキーに割り当てられているなら、飲み込みやすいが、ALTはALTでしっかり用意されており覚えずらい。
  • HomeやEndキーの割り当てられ方がなんか違う。
  • ドックのキーボードショートカットがいまいち。
    • SilverLight使えばいいんだろうけど。てかマウス使えよっていわれそw
  • 同じグループだとCommand+Tabキーで切り替えられない。
    • マカーはエクスポ使うから気にならないんだろうな。
  • 右クリックがしずらい(タッチパッド)
    • やっぱ素直に右クリックボタンつくれよ!とか思ってしまう。
  • ファンクションキーにOS用のショートカットが優先して割り当てられているため、今まで使い慣れたアプリのキーが乗っ取られている。カスタマイズすればいいんだろうけど。
  • Fifoxとか同じアプリなのに、Windowsとキーバインドが微妙に違う。
    • これは使いずらいよ。Windows使ってるときはC-bでブックマークなのにマックだとCommand+b。これはWindowsだとAlt+bに当たるんだよね。
    • あとは、最大化したときアドレスバーが見えなくなるのが嫌
    • あと、ダイアログが上からすーっと出てくるのもヤだな。真ん中に出ろよ!と思う。視線が上にいって見ずらいんだよ。
  • ディレクトリがキャメルケースなのがなんかイヤ
    • 伝統的なUnixのディレクトリ構成とMac特有のディレクトリが変な混ざりかたしてる感じ。
  • パラレルズがやたら不安定。
    • カーネルパニックがよく発生する。弥生のデータが消えた。これが一番むかついた。
  • キーボードが効かなくなる。
    • これも困ったよ。買って3日ぐらいで発生したからね。ヨドバシに問い合わせたけど再現性が確立しないから、交換しにくいとか言われた。ショッチュウ再現すれば即交換できるんだけど、たまにしか発生しないからなー。外れを掴んだのか、アップルはよくあることなのか。。。

まあほかにもこまかいところでいろいろあるけど、もう疲れてきた。

MacではOS自体の基本操作としていろいろショートカットが割り当てられているんだけどそれを優先させるとWindowsとどうしてもキーバインドがかぶってしまうんだよね。だから余計にストレスが溜まる。カスタマイズすればいいんだろうけどそしたらMacをWindows化するわけになるし。そうなるとMacを使う意味って何?って話になる。

2007年11月7日水曜日

iTunesデータの移行

0 コメント


サイトを軽く検索して方法を調べたら、「Windows上のiTunesフォルダをそのままコピーするだけで、簡単に移行できるよ」とあった。


しかし、俺の場合、ライブラリ表示はできても実際にはファイルがなかったり(パス情報が壊れてる)再生できても、曲名が文字化けしてしまったりなど、結構ハマったのでメモ(簡単に移行できるケースは、すべてのファイルがiTunes上で管理されてる場合のみみたい。俺の場合はいろんな出所のファイルを使用してるので手こずった)。


準備として、WindowsのiTunesフォルダがみれるようにネットワークの設定をすましておくこと。WindowsのiTunesフォルダは、MyDocumentsのミュージックフォルダにあるはず。


まず、Windows側のiTunesでライブラリの統合をすませる。






メニュー→詳細→ライブラリの統合



これにより、分散している音楽ファイルがすべてiTunesフォルダにコピーされる。


さらに、曲を全選択して、文字コードに小細工をする必要がある。



左ペインからミュージックを選択後、曲を全選択→右クリッック→ID3タグを変換→Unicodeを元に戻す



これは、iTunesを使用せずに作成したMp3ファイルをMacに持っていくと文字化けしてしまうのを防ぐため。


続いてMac側のiTunesフォルダをバックアップ(リネーム)しておく。


次にWindows側のiTunesフォルダを/Users/ユーザ名/Music/にコピーし、iTunesフォルダにある「iTunes Music Library.xml」を編集する。Windowsパスになっている部分を以下に置換する。



/Users/ユーザ名/Music/



最後に、iTunesを立ち上げ、曲を全選択しID3タグ変換。


左ペインからミュージックを選択後、



曲を全選択→右クリッック→ID3タグを変換→ASCIIからISOLatain-1へ



これで文字化けせずに無事移行が完了するはず。





2007年11月5日月曜日

MacBook購入

0 コメント


前々からノートが欲しかったんだけど、近々開催されるlispセミナーでノートが必要ということなので思い切って購入。なぜMacかと言ったら理由は3つある。


一つ目。


最近のハッカー系プログラマはみんなマック使ってるし、いつでもどこでもプログラムできるUnix環境というのは相当魅力的。これが購入の最大の理由。


二つ目。


Windowsが動く。BootCampやらParallesやらのおかげで移行が難なくできそうということ。これもすごく大きなポイント。


三つ目。


最後の理由はデザイン。会社の人がMac使ってたんだけど、画面エフェクトが細かく効いていてなんだかみてるだけで楽しい。Vistaも結構がんばってるけど、やっぱMacの画面は統一感があってオシャレ。それに本体のデザインもシンプルで適度に高級感があって妙に物欲をそそるw。つやつやしてるポリカーボネート性ボディーがいい!





実際にはボデーは傷つきやすいとか、初期不良が多いとか、Windowsとキーバインドが微妙に違うとか、いろいろトラップがあるんだけど、早く克服してMac信者になりますよ!w


明日からはデータ移行に突入だ!





2007年10月24日水曜日

Hikiの添付ファイル

0 コメント


Hikiでページを作っていて、画像を表示させるために「添付ファイル」プラグインを使用しようと思ったのだが、これが簡単にいかなかった。


管理画面でプラグインを有効にするだけでいいとおもったのに、わざわざatacch.cgiをhiki/misc/plugin/attachからルートにコピーしなきゃいけない。


標準添付プラグインだというのにメンドクセー。





2007年10月21日日曜日

hiki用のロゴ作成

0 コメント


Hikiのデザインは「るびま」のパクリ。。。ロゴはGIMP2のスクリプトで簡単作成。いや~このツール便利だわ。


以下、ロゴ作成手順。




  1. GIMP2を起動しツールボックスをアクティブ

  2. 拡張→Script-Fu→ロゴ→グラデーションめんどりを選択

  3. 文字入力


ロゴにリンクを持たせる方法がわからない。Hikiの公式サイトの説明では、出力HTMLを柔軟に変更かのうってあるけどどうすればいいんだ?


あと、検索したときにバグる。





Hikiのインストール(Sakuraインターネット)

0 コメント


いろいろwikiを実験した結果、Rubyで書かれたHikiを入れることにした。しかしやっぱりすんなりはいらなかったのでメモ。



  • .htaccessでは、Optionsはコメントにしないといけない。500エラーになる

  • hiki.cgiでは、/usr/bin/envが使えない。


.htaccess



#Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex hiki.cgi
<Files "hikiconf.rb">
deny from all
</Files>




hiki.cgi



#!/usr/local/bin/ruby





2007年10月16日火曜日

クッキーメモ

0 コメント


クッキーまわりではまったので、いろいろまとめておく。


クッキーのバージョン


クッキーの仕様にはバージョン0-2まである





  • ver0. ネスケが策定したもの

  • ver1. ネスケの仕様をもとに厳密にしたもの。多くのブラウザがサポートしてる(RFC2019)

  • ver2. さらに整理したもの?あまりサポートされてない(RFC2965)


javaの場合、v0とv1に対応しており、特にしてしなければv0の仕様に従う。






domain値について



  • domain属性を省略した場合は、そのクッキーをセットしたサーバのホスト名がブラウザに設定される。

  • domain属性にホスト名を設定した場合、ブラウザ側で勝手にドットがつく。これはRFCに準拠してると思われる。

  • 普通はdomain属性は設定してはいけない。domain属性を設定するのは、共通ドメインでクッキーを共用したいときのみである。



通常明示的にdomain属性を指定するのは、host.hoge.ne.jp など、hoge.ne.jpドメインのすべてのホストでクッキーを利用したい場合などに限るようである。したがって、host.hoge.ne.jpのCGIが




domain=host.hoge.ne.jp


と設定した場合、保存されるクッキーは



.host.hoge.ne.jp



となる。このため、クッキーはホスト名として保存されるのではなく、ドメイン名として保存される。


このように、特にクッキーを共用するのでなければdomain属性は省略すべきである。



余談1

最新の仕様であるRFC2965でもdomain属性を省略したときは、ホスト名となっている(ドットではじまらない)。


domain属性に設定するべきは、フルスペルのホスト名ではなくドメインのみである(host.hoge.comであれば.hoge.com)。


domain属性にホスト名をそのまま送ってしまうと、RFC2965に準拠している場合、次回から受け取れなくなってしまう。


(firefoxの場合大丈夫のようだが)


余談2


RFC2019に準拠するのであれば、domain属性が.foo.comの場合、www.foo.com はクッキーを参照できるが、a.b.foo.com はクッキーを参照できない。ただし、firefoxほか多くのブラウザでは、これに準拠しておらず(ネスケ仕様のバージョン0に準拠)普通にクッキーを送ってしまう。



余談3


ネスケの仕様では、ホスト名には少なくとも3つのドットが含まれてる必要があるとある。host.hoge.ne.jpのように通常は3つあるので納得。



ヘッダについて



  • ネスケ仕様によると、Set-Cookieヘッダは一度のレスポンスで何度も発行できる。

  • 同じパス、同じクッキー名であってもドメイン属性が違えば違うクッキーとして扱われる。

  • クライントからサーバへはクッキー本体以外の情報(属性?)は送られない。



Cookie test=hoge;


↑ max-age, secureなどの情報はない。




  • Set-Cookieヘッダで削除できるのは、実際にそのクッキーが持っているドメイン情報のホストだけである。



hoge.com のクッキーであれば、aaa.hoge.com, bbb.hoge.com の各ホストでクッキーを削除できるが、


aaa.hoge.com のクッキーは bbb.hoge.com のクッキーは削除できない。そもそもクライアントからクッキーが送られてこない。



Java Tips



下記のように、同じクッキオブジェクトで2回addCookieしすると最後のaddCookieのみ有効になり、2つクッキーは発行されないので注意



Cookie cookie = new Cookie("test", "hoge");
cookie.setMaxAge(COOKIE_AGE);
cookie.setDomain(request.getHeader("Host"));
response.addCookie(cookie);

cookie.setValue("fuga");
cookie.setMaxAge(COOKIE_AGE);
cookie.setDomain(null);
response.addCookie(cookie);





2007年10月13日土曜日

FreeStyleWikiの設置

0 コメント


Twikiがぼつったので、今度はFreeStyleWikiを自サバに入れてみた。


ココを参考にインストール


以下、自サバのapacheの設定



<Directory "/usr/local/www/htdocs">
# ExcecCGIで実行可能にしておく
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# 見られたくない奴を隠す
<FilesMatch "\.(pm|dat|wiki|log)$">
deny from all
</FilesMatch>
</Directory>

# ハンドラも有効にする
AddHandler cgi-script .cgi









2007年10月10日水曜日

twikiでハマリ

0 コメント


configureページにアクセスできない


参考ページ



自サバにTWikiをインストールしてみる。


簡単にインストールできると思ったがはまった。


というのもTwikiはwiki自身の設定をTwiki管理ページで設定できるようなっており、そのページへのアクセス制限があるのだ。


以下のページが管理ページなのだが、なんどアクセスしても500エラーになってしまっていた。




http://192.168.1.2/twiki/bin/configure


で、twiki.confをよく見たら以下の記述が!



<FilesMatch "^configure.*">
SetHandler cgi-script
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.1.3
Require user JohnDoe
Satisfy Any
</FilesMatch>


ここに普段自分が使ってるローカルIPを入れたらあっけなく動いたよ。


tmpに書き込めないと怒られる


configureページにいけるようになったが、今度はtmpディレクトリにかけないといわれる。


そこで



${TWIKI__HOME}/tmp


を作った。


んで今度はこれの保存の仕方がわからかったが、nextを押せば保存された。


このとき、初めてのときNewPasswordの方に入れないと駄目。


STMPTとMAILHOSTがないと怒られる


これはtwiki更新時にtwikiがメールで知らせてくれる機能のために必要らしい。


とくにいる機能で無いのでとりあえず無視。


securtySetupでエラー


どうも、Perlモジュールの「CGI::Session」がないのが原因らしい。ユーザ管理をしないのなら必要ないみたいだけど、ここでは自分だけしか編集できないような管理のしかたにしたいので、インストールする。


CPANとうものを使う必要があるらしい。初回起動時にはいろいろ設定が必要。めんどくせー


とりあえずココを参考に入れてみる


$ perl -MCPAN -e shell


↑これするとなんか対話式の設定モードになった。よくわからないのでとりあえずエンターエンター。


途中、地域を選択するところがあったのでそこはasia->japanと選択。


cpan> install CGI::Session


やっぱり動かなかった。。。


きちんと設定法を見直すか。するとlynxが必要らしい。入れる。



sudo apt-get install lynx


そしてココを参考に再度CPANの環境設定する。



$ su -
# perl -MCPAN -e shell


今度は入った。原因は最初のCPANの設定のときは一般ユーザで設定していて、lynxの設定がしてなかったせい?


lynx設定後、rootで再設定したので大丈夫になったっぽいな。


そして、やっとこさtwikiの設定にもどり、再度Saveしなおす。


やった~。errrorが消えた。




CSSが適用されない


wikiのトップページ表示されたけど、CSSが適用されてないな。。。


twiki.confをよく見たらAliasの設定が間違ってた。




Alias /twiki/ "/usr/local/www/twiki/bin"

Alias /twiki/ "/usr/local/www/twiki/"


置換みすったかな?でやっと表示にこぎつけた!


おおお!なんかみやすくていい!






ページがつくれない


で、さっそくsandboxで新規ページをつくってみる。


が、つくれない。hogeとかtestとかで作ろうとしてもNotWikiWordといわれる!


パーミッション関係の問題かな?と思ったが、よくよくメーセージを読むと


wikiWordの説明があった。


要はキャメルケースになってないページは作れない。


HogeHogeとかにすれば作れる。


てことは日本語の見出しのページは作れないのか?


。。。つくれなかったよ





2007年8月8日水曜日

剛体デモ(キーマッピングバグ修正)

0 コメント



キーボードのマッピングが重複すると、片方のマッピングが聞かなくなる不具合を修正。


これで、カメラ操作ができるようになった。ついでに注視点が固定だったのを常にプレーヤを見続けるように修正。


これで3D酔いが体験できるよw。




デモを起動する



今までは、ロジックごとにInputActionのインスタンスを生成していた。


これだと、同じキーに対して複数のInputActionが生成されてしまい無駄である。


また、ひとつのキーに対してひとつのInputActionしかマッピングできないため、


同じキーに対して複数のアクションを設定した場合、片方のアクションしか設定されない。


コレを防ぐために以下のように修正した。



  1. ひとつのキーに対して、通常、トリガ、リピートの3種類のInputActionをInputManager内に保持するようにした。

  2. InputActionの生成には、InputManagerのファクトリメソッドを使用するようにした。

  3. これにより、既に存在するInputActionがファクトリメソッドで要求された場合、既存のインスタンスを返せるようになった。






2007年8月3日金曜日

剛体デモ(すり抜け防止)

0 コメント



前回のやりのこした項目の内、あたり判定のすり抜けに対応した。




デモを起動する



以下のロジックで実現



  1. 1フレーム前の位置を保存しておく

  2. 現フレームの位置かつ前フレームの位置が両方とも平面の裏のときは、衝突なし。

  3. 現フレームの位置かつ前フレームの位置が両方とも平面の表のときは、いままでどおりアテハン処理。

  4. ここがキモだがw、1フレーム前の位置が表、現フレームが裏のときは衝突してるので(速度が半径を超えている!)アテハン処理続行




というわけでとりあえず摺りぬけが発生しなくなりました。


厳密に言うと、辺に対してと頂点に対しても同様の処理をしなくてはいけないんだけど面倒だからいいやw。






2007年7月27日金曜日

剛体デモ(障害物追加)

0 コメント



ひっさしぶりに趣味プロ。サイトもリニューアル中。CSSメンドクセー。




当たり判定のバグを修正したついでに背景に障害物を配置。


あと、カメラをVキーで切り替えられるようにした。




デモを起動する



うーん、すり抜けが発生するのをどうにかしたい。しかも重すぎ。


キーマッピングで同じキーを複数マッピングできないバグも発覚。


Java5対応とかカリングとかオブジェクトのプーリングとか見直すべきところてんこ盛りだよな。


ま、いろいろやんなきゃいけないことあるけど次の興味は直方体ですよ^^。




なんとなくソースもアップ。




しばらくプログラムしてなかったからMavenでjarファイル作る方法忘れてしまった。。。



mvn packege






2007年4月16日月曜日

maven2とeclipseを使ったjogl開発

0 コメント


はじめに


ここではjoglでゲーム開発するためのお勧めの環境構築方法を紹介します。つまりは私の開発環境です^^。使用するツールは以下です。



  • Eclipse

  • Maven

  • Java2SDK


両方ともjavaの世界では有名なので知っている方も多いでしょう。特にEclipseはかなり普及している統合IDEです。Javaで仕事をしたことがあれば、大抵の方は利用したことがあるのではないでしょうか?


Mavenは、C言語でいうところのmakeツールです。ただしmakeよりはるかに高機能です。このツールを使うとライブラリの管理やパッケージの作成、テストなどが自動処理でき、いろいろと楽できます。


Java2SDKのインストール方法は割愛します。最新版を入れて置けばよいでしょう。


eclipseのインストール


以下はインストーラーを使った方法です(自前でインストールする場合に比べて必要なプラグインが最初から揃っているので楽です)。


手順を示します。



  • 分割されたファイルをダウンロード

  • ファイルを連結

  • インストーラの起動


分割されたファイルをダウンロード

ここからAll-In-One Eclipseの最新版をダウンロードします。


連番のファイルとbatファイルがあるのですべて落としてください。


ファイルを連結

これらの連番ファイルとbatファイルを同じディレクトリに配置し、バッチファイルを起動します。するとexeファイルができるのでそれを実行すればインストーラが起動します。


インストーラの起動

インストーラの操作は得に難しいところはありませんが、途中プラグインを選択する場面があります。デフォルトで選択されているWebToolsPlatformは確実にいらないので外したほうがよいでしょう。


私は以下のものを選択しました。



  • VisualEditor

  • Test&performance

  • AspectJ

  • misc


ここでOKをクリックすればインストールが始まります。


結構時間がかかるので一息つきましょう。


インスールが終わるとEclipseが起動します。


最初にワークスペースを聞かれるのでドライブ直下などを指定して完了です。(MyDocument配下はパスにスペースを含むのでお勧めできません。)




mavenのインストール


ここから最新版をダウンロードし展開します。


展開したディレクトリにあるbinを環境変数PATHに加えてインストールは完了です。


DOS窓を開いて以下で確認しましょう。



mvn --version




joglのインストール


以下の手順でインストールします。



  • dllのインストール

  • jarのインストール


dllのインストール

ここから jogl-1_0_0-windows-i586.zipをダウンロードします。


展開したディレクトリにあるdllファイルを以下にコピーします。



c:/windows/system32


jarのインストール

joglはmavenリポジトリに登録されてないので、自前でローカルリポジトリにインストールする必要があります。


ローカルリポジトリにインストールするにはmvnのinstallを使用します。



mvn install:install-file -Dfile=jarまでの絶対パス \\
-DgroupId= -DartifactId= -Dversion=バージョン -Dpackaging=jar


例えば、C:\foo\hoge.jar をgroupId=hoge、artifactId=hoge、バージョン1.0としてインストールするには



mvn install:install-file -Dfile=C:/foo/hoge.jar -DgroupId=hoge \\
-DartifactId=hoge -Dversion=1.0 -Dpackaging=jar


とします。


以下は私が実際に使用したコマンド例です。適宜自分の環境に置き換えてください。



mvn install:install-file -Dfile=c:/tmp/jogl.jar \\
-DgroupId=jogl -DartifactId=jogl -Dversion=1.0.0 -Dpackaging=jar




MavenとEclipseとの連携


MavenとEclipseとの連携方法を以下に示します。


ここではeclipseワークスペースがd:/workspaceであるとします。実際には自分の環境に適宜置き換えてください。



  • M2_REPO変数を作成する

  • mvnプロジェクトの雛形を作成

  • pom.xmlを記述する

  • mvnプロジェクトをEclipseのプロジェクトに変換する

  • 作成したプロジェクトをEclipseにインポートする




M2_REPO変数を作成する

M2_REPOとはEclipseに対してローカルリポジトリの絶対パスを教えるための環境変数のようなものです。 最初に一度だけ設定すれば以後このコマンドは必要ありません(ただしワークスペースを変更した場合は再度実行が必要です)。



mvn eclipse:add-maven-repo -Declipse.workspace=d:/workspace




mvnプロジェクトの雛形を作成

以下のコマンドでmvnプロジェクトを作成します。



cd d:/workspace
mvn archetype:create -DgroupId=hoge -DartifactId=fuga -Dversion=0.0.1


これはarchetypeプラグインのcreateゴールを実行するという意味です。


このコマンドを実行することにより、d:/workspace配下にfugaディレクトリが作成され、ソースツリーおよびpom.xmlが生成されます。


groupIdプロジェクト全体の識別子を指定します。eclipseプロジェクトよりもさらに大きい単位と考えてください(実際にはjavaのパッケージとして扱われます)。


artfactIdはプロジェクト識別子を設定します。プロジェクト名を指定すればよいでしょう。


versionは適当に設定します。




pom.xmlを記述する

生成されたpomファイルにjoglの設定を追加します。


dependenciesタグ内に下記のdependecyタグを追加してください。



<dependencies>

<dependency>

<groupId>jogl</groupId>

<artifactId>jogl</artifactId>

<version>1.0.0</version>

<scope>compile</scope>

</dependency>

</dependencies>


他にも必要なライブラリがあれば適宜ここに記述します。


下記はochaglライブラリの例。



<dependency>

<groupId>ochagl</groupId>

<artifactId>ochagl</artifactId>

<version>0.0.1</version>

<scope>compile</scope>

</dependency>


mvnプロジェクトをEclipseのプロジェクトに変換する

続いてeclipse用のプロジェクト設定ファイルを作成します。



cd d:/workspace/hoge
mvn eclipse:eclipse -DdownloadSources=true


eclipseプラグインのeclipseゴールを実行することによりeclipseのプロジェクトファイルが生成されます。


downloadSourcesは依存するライブラリのソースをどうするかの設定です。デバッグ時に便利なのでtrueにしてあります。




作成したプロジェクトをEclipseにインポートする


  1. Eclipseを立ち上げ、[ファイル]-[インポート]-[一般]-[既存プロジェクトをワークスペースへ]を選択します。

  2. ルートディレクトリの選択でワークスペースを選択します。

  3. 選択をすべて解除ボタンをクリックします

  4. 先ほど作成したプロジェクトディレクトリを選択します

  5. 終了ボタンをクリックします


以上でmvnからeclipseへのプロジェクトの変換が完了です。




リソースファイルの追加方法


後の展開としてアプレットやJWSの利用を考えている場合、画像ファイルなどのリソースファイルは、クラスパス上に追加したほうが良いです。


まず、以下のようにresourcesフォルダを作成します。



cd d:/workspace/hoge/src/main/
mkdir resources


続いてeclipseのパッケージエクスプローラ上で対象プロジェクトを右クリックし


[新規]-[ソースフォルダー]で上で作成したフォルダーを指定して完了です。


あとは必要なファイルをこのフォルダに格納します。




参考サイト





2007年3月5日月曜日

アニメーション処理追加

0 コメント


アニメーション処理の基礎となるクラスおよびそのサブクラスを追加



  • Interpolate.java

  • InterpolateStep.java

  • InterpolateLinear.java



今回のクラス追加によって2Dデモの爆発アニメーションを追加した。


(半透明で徐々にフェードさせたほうがよいな。)


ただし、まだInterplateLinearクラスのテストがまだ。


テクスチャロード時や画面がとまるのでロードのタイミングを見直す必要がある。


また、ガベコレなどでもよく止まるので全体のつくり自体を再考する必要有り。






2007年2月17日土曜日

パクリス Ver 0.1

0 コメント



大昔にJavascriptの勉強がてら作ってみたガラクタ。


せっかくなのでアップしてみた。


暇なときに、書き直してみたい。




パクリスで遊ぶ






2007年2月3日土曜日

joglのソースコード取得

0 コメント



joglのデモの最新のソースコードを取得するにはユーザ登録しなければならない。登録がすめば、CVS経由で取得できる。




以下Eclipseでの設定値




  • 接続タイプ:pserver

  • ユーザ:登録したユーザ名

  • パスワード:登録したパスワード

  • ホスト:cvs.dev.java.net

  • リポジトリーパス:/cvs





2007年1月4日木曜日

2D処理

0 コメント


今日もJAVAでゲームプログラミングですよ。


ウシ!



天気いいのにねぇ。


スケートはもうちょっと体調回復してからだな。


作成中のライブラリの話。


2D処理をどうしようか悩み中。


とりあえず、3Dでの行列処理をそのまま2D側に落とす処理で進める予定。


問題はカメラが必要か?ってとこだな。そこまでシステム化する必要あるか?


今までの2Dプログラムとはまったく違った考えで作らなくてはいけなくなるかも。


しかし3Dに慣れればこっちのほうがよいか。


あとは、スプライトの基準点をどう持つか。


現状は真ん中が(0,0)の座標系でやってる。


左上で出したいときは専用のメソッド呼び出す方式。


これでいいのだろうか?悩むな~。


でも2D処理はメインで使わんし、これでいいか。