忍者ブログ
  • 2024.10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2024.12
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/11/25 11:03 】 |
MacでPerlで
MacでPerlプログラミング。
必要なものは全部入っている。

例えば、ファイル名test.plとして以下のようなPerl 文を書いたら、

#! /usr/bin/perl/
print "Hello,world¥n";


コンソールから
% 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 変数にあるフォルダが対象となっている
例えばこんな感じになる

/Library/Perl/5.12/darwin-thread-multi-2level
/Library/Perl/5.12
/Network/Library/Perl/5.12/darwin-thread-multi-2level
/Network/Library/Perl/5.12
/Library/Perl/Updates/5.12.3
/System/Library/Perl/5.12/darwin-thread-multi-2level
/System/Library/Perl/5.12
/System/Library/Perl/Extras/5.12/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.12
.


参考
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
【2012/02/26 00:48 】 | perl | 有り難いご意見(0)
Swingまとめ
http://www.javadrive.jp/tutorial/ini/index2.html

Swingを使ったプログラムでは、ウィンドウが必要。
土台となるウィンドウとしては、JFrame、JDialog、JAppletの3種類がある。

JContainer(他のコンポーネントを含むことができるコンポーネント)
+-- JFrame
+-- JDialog
+-- JApplet
この3つを特に「トップレベルコンテナ」と呼ぶ。

コンテナに追加するにはAddメソッドを使う


public class XXX extends JApplet{
public void init() {
JPanel panel = new JPanel();
this.add(panel);

JButton button = new Button("push me");
panel.add(button);
}
}

これで、土台のアプレットにパネルを配置し、パネル上にボタンを配置することができる。

配置の際は、レイアウトマネージャを使うことで、「コンポーネントを横に並べていく」「縦に並べていく」などの指定ができる。
とりあえず不要な時は、

setLayout(null);

としておく。
しておかないとむしろおかしくなる。

レイアウトを使うと簡単にコンポーネントを並べることができ、ピクセル指定をしなくて済むので積極的に使っていきたい。
以下のページに詳しい説明がある。
http://www.javadrive.jp/tutorial/

【2012/01/16 23:15 】 | Java | 有り難いご意見(0) | トラックバック()
iPhone内の画像リストを表示する・カメラを使用する
使い方は、曲のリスト表示するときと同じ。


曲のときと違って、フレームワークの追加やimportなどは特にする必要がない。
UIKitに含まれているようだ。

【2011/08/18 16:15 】 | iPhone | 有り難いご意見(0) | トラックバック()
サウンドを鳴らす
さて、サウンドを鳴らすにはどうするか。


前の記事で、MPMediaItemCollection 型の変数 mediaItemCollection は持っているので、話は早い。

MPMusicPlayerController *player = [[MPMusicPlayerController alloc] init];
[player setQueueWithItemCollection:mediaItemCollection];
[player play];

でおしまい。
【2011/08/18 03:54 】 | iPhone | 有り難いご意見(0) | トラックバック()
iPhone内の曲のリストを表示する
iPhoneアプリで、自分のiPhoneに入ってる好きな曲をBGMにできたりするものがある。

そういうときに表示される表(UITableViewController)の使い方。

iOS的には、ああいうのを「ピッカー」(picker)と呼ぶらしい。
iPhoneに入っている曲を表示するのは MPMediaPickerControllerView。
iPhoneに入っている画像を表示するのは UIImagePickerControllerView。
どっちも使い方はだいたい同じ。
(というか、書籍とか調べてもMPMediaPickerControllerViewについては全然書いてなくて、
 XCodeからヘルプで名前の類推して"PickerControllerView"で検索してやっと探し当てた。
 使い方は書籍に書いてあったUIImagePickerControllerViewとまったく同じにやってみたらそのままできた)

【2011/08/18 03:04 】 | iPhone | 有り難いご意見(1) | トラックバック()
pngを描画したい人
今までずっとjpgを使って描画してたのだが、
アルファ抜きできないと当然困るわけで、pngを描画してみようと思った。

CoreGraphicsを使ったテクスチャロードは、pngだとなぜかサポート外フォーマットと言われる。
これは自分が普段使っているペイントソフトのせいじゃないかと疑っている。

iPhoneでpng で検索していると、
圧縮フォーマットのPVRを使うのがよさげな記事がいろいろ出てきた。
たとえばここ

pngを作って、iPhoneSDKに入っているtexturetoolというのを使ってコンバートしてできたpvrファイルを使うらしい。
試しにやってみた。この記事のソースを組み込む。
ネット上から拾ってきたpngファイルだとちゃんと表示された。
自分の使ってるペイントソフトだとできない。なぜか白黒に。フォーマットおかしいかんじがすごくする。(もちろんアルファも抜けてない)

違うソフトを探してきてやってみるか。
【2011/08/15 23:41 】 | iPhone | 有り難いご意見(0) | トラックバック()
ライト、ついてますか―問題発見の人間学
「ライト、ついてますか―問題発見の人間学」





問題と、問題解決について書かれた本。

日本語がちくと読みにくいが、読んでるといろいろなことに気づかされる。

問題とは、現状の認識と、こうあるべきだという姿との違いから生まれる。
これは他の場所でも同じことを見聞きしたことがある。



それが「誰の問題なのか」ということを考えるのも重要だ。
駐車場がいっぱいで止める場所に困るということが、我々利用者の問題と考えるのか、少しの時間歩くことをいやがる自分の問題だと考えるのか。
どう捉えるかで、問題解決の仕方もガラリと変わる。

【2011/08/11 19:05 】 | 書評 | 有り難いご意見(0) | トラックバック()
アクションのいい感じのキャラ移動を作る
アクションゲームの主人公の移動について作ってみた。

iPhoneのアクションゲームの移動操作については、いろいろな方法がある。


たとえば左右キーのバーチャルボタンがあって、キーを押すとそっちに主人公が歩くタイプがある。キーじゃなくてレバーになってる場合もある。
でもこれは、正確にキーやレバーの場所をタッチしないといけない。これは結構難しい。
普通ボタンの位置は見ずにゲームプレイするから、だんだんずれていっちゃう。
特に、右へ行きたいときはつい右の方をタッチするようになるから、ずれは思いのほかすぐ起きる。
タッチしたときに感触もないから、ずれてしまうのは防ぐのが難しい。


【2011/08/11 14:15 】 | 開発日記 | 有り難いご意見(0) | トラックバック()
タッチ点の取得の方法
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;

タッチした点を取得する方法は以下のような感じ。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
{
for (id touch in touches) {
CGPoint p = [touch locationInView:self.view];
}
}

touches にその呼び出し間隔内にタッチされた点全部が入っている。
ここには書いていないが、touches は UITouch 型変数の配列。

UITouchから直接座標を求めることはできなくて、座標系つまりビューかウィンドウを渡すと、そのビュー内座標・ウィンドウ内座標に変換して取得できる。
locationInView メソッドにビューかウィンドウを渡す。
(ウィンドウクラスはビュークラスの子クラス。)

基本的には、上に書いたように、viewControllerクラスのビューを渡せばいい。
ビュー内座標で受け取れる。ビューが画面と一致しているとは限らないので注意が必要だが、画面が回転していてもちゃんとそのときの向きの左上点を原点とした座標で返してくれるから便利。

ウィンドウを渡すか、nilを渡すと、デバイスでの座標で取得することになる。
例えば以下のような感じ。
CGPoint p = [touch locationInView: ((UITouch*)touch).window];
これはデバイスを縦持ちしたときの左上点を原点とした座標系。デバイスを横持ちしても上限反転しても、あくまでデバイスの座標系で返すことになる。だから、横持ちするアプリとか、回転できるアプリだと使いにくい。


【2011/08/10 16:45 】 | iPhone | 有り難いご意見(0) | トラックバック()
デバイスの向きを指定する
iPhone を立て向きで使うか、横向きで使うか。
指定するには、ViewControllerクラスに以下の定義を追加する
(あるいは、プロジェクト作成時にデフォルトでコメント内に記述されていれば、コメントから外す)



- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft))
return YES;
return NO;
}

向きを表す定数が、このメソッドに引数として渡されて来るので、
アプリとして対応したい向きの場合にYESを返すようにする。
上記の例だと、デバイスが左向きの場合だけ対応ということなので、デバイスをどういう向きにしても常に左向きとして描画する。
2方向以上の向きでYESを返すようにした場合、デバイスの向きを変えると、画面が「くるっ」と回転するアレが発生する。

定数は以下。


UIInterfaceOrientationPortrait
上下反対
UIInterfaceOrientationPortraitUpsideDown
横向き。ホームボタンが左にある
UIInterfaceOrientationLandscapeLeft
横向き。ホームボタンが右にある
UIInterfaceOrientationLandscapeRight




【2011/08/10 15:35 】 | iPhone | 有り難いご意見(0) | トラックバック()
<<前ページ | ホーム | 次ページ>>