× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
MacでPerlプログラミング。
必要なものは全部入っている。 例えば、ファイル名test.plとして以下のようなPerl 文を書いたら、
コンソールから % perl test.pl でもう実行できる モジュールの追加(CPAN) 解説ページ http://y-kit.jp/saba/xp/cpan.htm ==コマンド - プロンプトを出す # perl -MCPAN -e shell - インストールする cpan> install [モジュール名] - 設定をみる cpan> o conf モジュールを使うには、以下のように書く use Module1; 同一フォルダ内にModule1.pm という名前でモジュールファイルがある。 カレントにあるsubというフォルダの中にある場合は、 use sub::Module1; とすればよい。 では全然別の場所にあるモジュールの場合は? @INC 変数にあるフォルダが対象となっている 例えばこんな感じになる
参考 http://pp-perl.blogspot.com/2007/06/cpan.html CPANで install JSON ってやったけど、失敗する どうやら、makeが入っていないかららしい /usr/bin/make というのが確かにない。 調べてみると、XCodeをインストールしたらmakeも同時にインストールされるらしい。 が、XCode4入れたのに入ってないぞ・・・ どうしよう。 単独でインストールってできないのか。 調べても出てこない。 Leopard時代なら、インストールディスクに入っているようだけど、Lionでそれをやるってどうなのか。 とはいえ、結局Leopard時代のMacbookに入ってたmakeをコピーして持ってきてみる。 makeは別名(リンク)で、本名はgnumakeだった。 /usr/bin には普通のユーザじゃコピーできないようなので、suで入ってみる。 macコンソールでsuになって入るには http://okwave.jp/qa/q616749.html % sudo passwd root これでパスワードを設定してから % su で入る。 su のホームディレクトリ は/var/rootなので、普通のユーザのホームディレクトリにいくには /User/***/ とする。 で、コピーした。 だけどやっぱりこれじゃダメのようだ。 使い方とか書いてあるページ http://poccori.com/blog/wp/archives/90 モジュールがインストールされているか調べる $ perldoc モジュール名 モジュールがインストールされているパスを得る $ perldoc -ml モジュール名 特定のモジュールのおいてある場所 find `perl -e 'print "@INC"'` -name '***.pm' -print PR |
http://www.javadrive.jp/tutorial/ini/index2.html
Swingを使ったプログラムでは、ウィンドウが必要。 土台となるウィンドウとしては、JFrame、JDialog、JAppletの3種類がある。 JContainer(他のコンポーネントを含むことができるコンポーネント) +-- JFrame +-- JDialog +-- JApplet この3つを特に「トップレベルコンテナ」と呼ぶ。 コンテナに追加するにはAddメソッドを使う
これで、土台のアプレットにパネルを配置し、パネル上にボタンを配置することができる。 配置の際は、レイアウトマネージャを使うことで、「コンポーネントを横に並べていく」「縦に並べていく」などの指定ができる。 とりあえず不要な時は、
としておく。 しておかないとむしろおかしくなる。 レイアウトを使うと簡単にコンポーネントを並べることができ、ピクセル指定をしなくて済むので積極的に使っていきたい。 以下のページに詳しい説明がある。 http://www.javadrive.jp/tutorial/ |
使い方は、曲のリスト表示するときと同じ。
曲のときと違って、フレームワークの追加やimportなどは特にする必要がない。 UIKitに含まれているようだ。 |
さて、サウンドを鳴らすにはどうするか。
前の記事で、MPMediaItemCollection 型の変数 mediaItemCollection は持っているので、話は早い。
でおしまい。 |
iPhoneアプリで、自分のiPhoneに入ってる好きな曲をBGMにできたりするものがある。
そういうときに表示される表(UITableViewController)の使い方。 iOS的には、ああいうのを「ピッカー」(picker)と呼ぶらしい。 iPhoneに入っている曲を表示するのは MPMediaPickerControllerView。 iPhoneに入っている画像を表示するのは UIImagePickerControllerView。 どっちも使い方はだいたい同じ。 (というか、書籍とか調べてもMPMediaPickerControllerViewについては全然書いてなくて、 XCodeからヘルプで名前の類推して"PickerControllerView"で検索してやっと探し当てた。 使い方は書籍に書いてあったUIImagePickerControllerViewとまったく同じにやってみたらそのままできた) |
今までずっとjpgを使って描画してたのだが、
アルファ抜きできないと当然困るわけで、pngを描画してみようと思った。 CoreGraphicsを使ったテクスチャロードは、pngだとなぜかサポート外フォーマットと言われる。 これは自分が普段使っているペイントソフトのせいじゃないかと疑っている。 iPhoneでpng で検索していると、 圧縮フォーマットのPVRを使うのがよさげな記事がいろいろ出てきた。 たとえばここ pngを作って、iPhoneSDKに入っているtexturetoolというのを使ってコンバートしてできたpvrファイルを使うらしい。 試しにやってみた。この記事のソースを組み込む。 ネット上から拾ってきたpngファイルだとちゃんと表示された。 自分の使ってるペイントソフトだとできない。なぜか白黒に。フォーマットおかしいかんじがすごくする。(もちろんアルファも抜けてない) 違うソフトを探してきてやってみるか。 |
「ライト、ついてますか―問題発見の人間学」
問題と、問題解決について書かれた本。 日本語がちくと読みにくいが、読んでるといろいろなことに気づかされる。 問題とは、現状の認識と、こうあるべきだという姿との違いから生まれる。 これは他の場所でも同じことを見聞きしたことがある。 それが「誰の問題なのか」ということを考えるのも重要だ。 駐車場がいっぱいで止める場所に困るということが、我々利用者の問題と考えるのか、少しの時間歩くことをいやがる自分の問題だと考えるのか。 どう捉えるかで、問題解決の仕方もガラリと変わる。 |
アクションゲームの主人公の移動について作ってみた。
iPhoneのアクションゲームの移動操作については、いろいろな方法がある。 たとえば左右キーのバーチャルボタンがあって、キーを押すとそっちに主人公が歩くタイプがある。キーじゃなくてレバーになってる場合もある。 でもこれは、正確にキーやレバーの場所をタッチしないといけない。これは結構難しい。 普通ボタンの位置は見ずにゲームプレイするから、だんだんずれていっちゃう。 特に、右へ行きたいときはつい右の方をタッチするようになるから、ずれは思いのほかすぐ起きる。 タッチしたときに感触もないから、ずれてしまうのは防ぐのが難しい。 |
iPhoneでタッチ点を取得する関数は
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; タッチした点を取得する方法は以下のような感じ。
touches にその呼び出し間隔内にタッチされた点全部が入っている。 ここには書いていないが、touches は UITouch 型変数の配列。 UITouchから直接座標を求めることはできなくて、座標系つまりビューかウィンドウを渡すと、そのビュー内座標・ウィンドウ内座標に変換して取得できる。 locationInView メソッドにビューかウィンドウを渡す。 (ウィンドウクラスはビュークラスの子クラス。) 基本的には、上に書いたように、viewControllerクラスのビューを渡せばいい。 ビュー内座標で受け取れる。ビューが画面と一致しているとは限らないので注意が必要だが、画面が回転していてもちゃんとそのときの向きの左上点を原点とした座標で返してくれるから便利。 ウィンドウを渡すか、nilを渡すと、デバイスでの座標で取得することになる。 例えば以下のような感じ。 CGPoint p = [touch locationInView: ((UITouch*)touch).window]; これはデバイスを縦持ちしたときの左上点を原点とした座標系。デバイスを横持ちしても上限反転しても、あくまでデバイスの座標系で返すことになる。だから、横持ちするアプリとか、回転できるアプリだと使いにくい。 |
iPhone を立て向きで使うか、横向きで使うか。
指定するには、ViewControllerクラスに以下の定義を追加する (あるいは、プロジェクト作成時にデフォルトでコメント内に記述されていれば、コメントから外す)
向きを表す定数が、このメソッドに引数として渡されて来るので、 アプリとして対応したい向きの場合にYESを返すようにする。 上記の例だと、デバイスが左向きの場合だけ対応ということなので、デバイスをどういう向きにしても常に左向きとして描画する。 2方向以上の向きでYESを返すようにした場合、デバイスの向きを変えると、画面が「くるっ」と回転するアレが発生する。 定数は以下。
|