忍者ブログ
[PR]
×

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



2025/11/24 10:43 |
ZF1.11:Zend_Controller
ZendフレームワークはPearライブラリのように使うのが便利すぎて忘れてしまいますが、実はその本分はフレームワークです。

ということでフレームワークとして使ってみようと思いましたが、なんたることか公式マニュアルが和訳されていません。
仕方ないのでZend_Controllerあたりからちまちまと見て行きます。

とりあえずアップグレードを確認

> pear channel-discover pear.zfcampus.org
> pear install zfcampus/zf


バーチャルホストを設定。
ついでにmod_rewriteがコメントアウトされている場合はコメントを外す。

LoadModule rewrite_module modules/mod_rewrite.so
<VirtualHost *:80>
    ServerName zend.localhost
    DocumentRoot "C:\hoge\fuga\html"
    <Directory "C:\hoge\fuga\html">
      AllowOverride All
    </Directory>
</VirtualHost>


C:\hoge\fuga\以下に以下のようなディレクトリとファイルを作成。

application/
│  ├controllers/
│  │  └IndexController.php
│  ├models/
│  └views/
│      └scripts/
│          └index/
│              └index.phtml
└html/
    ├.htaccess
    └index.php


hostsに以下の1行を追加。
    127.0.0.1 zend.localhost

これで、
http://zend.localhost/
でC:\hoge\fuga\html\index.phpが表示されるようになります。

次にhtaccessを記述。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]


これで、存在しないファイル、ディレクトリにアクセスした際はindex.phpが呼ばれるようになります。

html/index.phpはZend_Controllerを呼び出すだけです。
<?php
	require_once('Zend/Controller/Front.php');
	Zend_Controller_Front::run(dirname(__FILE__).'/../application/controllers');
application/controllers/IndexController.phpはとりあえずダミー。
<?php
	class IndexController extends Zend_Controller_Action{
	    public function indexAction(){}
	}
デフォルトではIndexController::indexAction()のあと自動的にindex.phtmlというテンプレートを呼び出すようになっています。
application/views/scripts/index/index.phtmlを記述。
<html><body>Hello, World!</body></html>
DOCTYPEとかtitleとかは後で付け足しゃいいんだよ。

さて、最低限の実装は以上で完成です。
http://zend.localhost/index/indexを開いてみると、見事にHello, World!が表示されました。
PR


2011/11/11 21:25 | Comments(0) | TrackBack() | PHP
Minecraft 1.8.1 MOD紹介 SimpleGuns v1.0
SimpleGunsは、WW1あたりまでの時代の銃を追加するMODです。
WW2 Guns Modほどの万能性はありませんが、そのぶん銃の作成も簡単で、MODの導入もzipを置くだけになっています。

まず材料として以下のアイテムが必要です。
鉄*2でスプリング(Spring)、鉄*3で銃床(Iron Barrel)、鉄*5でリボルバーマガジン(Revolver Magazine)。
鉄*3とスプリングでBolt Assembly。
鉄*5とスプリングでRifle Magazine。
銃床*3でSniper Barrel。
正直銃の部品名とかさっぱりだ。

2011-11-09_17.00.34.png2011-11-09_17.01.22.png2011-11-09_17.03.45.png2011-11-09_17.12.07.png2011-11-09_17.13.32.png2011-11-09_17.15.53.png
これらを組み合わせて各種銃を作成できます。

木材*3、鉄、火打ち石、スプリング、銃床でフリントロックピストル(FlintLock Pistol)
2011-11-09_17.08.02.png

木材*3、火打ち石、スプリング、銃床*2でフリントロックマスケット(FlintLock Muslet)
2011-11-09_17.08.51.png

木材*2、鉄、リボルバーマガジン、スプリング、銃床でリボルバー(Revolver)
2011-11-09_17.19.25.png

木材*2、鉄、Bolt Assembly、Rifle Magazine、Sniper Barrelでボルトアクションライフル(Bolt-Action Rifle)
2011-11-09_17.20.35.png

以上4種類の銃を作成することができました。

さて、銃を撃つには当然弾丸が必要です。

火薬、鉄、紙でマスケットの弾丸(Musket Ball)。
これはフリントロックピストルおよびフリントロックマスケットで使用します。
2011-11-09_17.25.01.png

火薬と鉄*2で弾丸(Bullet)。
これは中間アイテムでありこのままでは使えません。
2011-11-09_17.25.53.png

弾丸*6、紙*3で弾薬箱(Box of Bullets)。
リボルバーの弾丸となります。
2011-11-09_17.26.45.png

弾丸*6、鉄でボルトアクションライフルの弾(Bolt-Action Rifle Clip)
ボルトアクションライフルの弾となります。
2011-11-09_17.30.10.png

いずれも使い方としては、一度右クリックすることで弾薬を消費して銃に弾を込め、二回目以降のクリックで弾を発射します。
フリントロックは単発、リボルバーとボルトアクションライフルは一度に6発です。

2発に一個火薬と鉄を使うとか、ちょっとコストが高すぎてなかなか気軽に撃てるようなかんじではなさそうです。
あとバグなのか元々なのか、撃つときに全く音がしないので相当寂しいのが残念。


2011/11/10 22:23 | Comments(4) | TrackBack() | └minecraft
Minecraft 1.8.1 MOD紹介 Elevator
上下移動の歴史は一段の段差ジャンプから始まり、水流エレベータ、ボート式エレベータ、ピストンエレベータなどいろいろなものが開発されてきました。

が、MODを使えば一発解決。
Elevatorは簡単に上下移動できる、本来の意味でのエレベータを作成できるMODです。
いや、バニラでやることに意味があるってのはわかってますので石を投げないで。

Elevatorのレシピはダイヤモンド、レッドストーン、石*7
2011-11-06_22.28.07.png

できあがったブロックを適当なところに置くと、それだけでエレベータの完成です。
乗った後、上を向いてクリックすれば上に、下を向いてクリックすれば下に自動的にすいーっと移動してくれます。
止めたい場合はもう一度クリックすればすぐに止まります。
s-2011-11-08_22.32.10.jpg

採掘地点や見張り台などに階段を使わずすぐに到達でき、移動がとても楽になります。
まあ、見栄え重視な人には物足りないかもしれないですが。

速度は歩いて登るよりは速く、自由落下よりはずっと遅い程度です。
注意点としては、エレベータと同じ空間にトーチが設置されていると、下降の場合はトーチを通過していきますが、上昇時は何故かトーチに引っかかって止まってしまいます。

なお、設定ファイルはconfigフォルダ内ではなく、.minecraft/elevatorOptions.txtに作成されます。



2011/11/09 19:54 | Comments(0) | TrackBack() | └minecraft
Minecraft 1.8.1 MOD紹介 CraftGuide1.2.2
レシピブックは便利ですが、レシピ数が多くなってくるとページをめくるのが大変になってきます。
特にRedPowerを入れると一気に1000ページ近く増えるので、500ページ目が見たくなったら500回連打しないといけなくて腱鞘炎になります。

そんな煩わしさを解消してくれるのがこれ、CraftGuideです。

レシピは作業台、本*4、紙*4
2011-11-06_16.53.17.png

原木1本、サトウキビ18本と安上がりなわりにとてつもなく便利です。
本を手に持って右クリックするとレシピ画面が開きます。
2011-11-08_22.39.16.png

レシピブックと違う最大の特徴は、右側にスクロールバーが存在すること。
これを操作することで一気にスクロールができます。
なお合成だけではなく、精錬のレシピも表示されます。

またアイテムをクリックすると、そのアイテムに関するレシピ、すなわちそのアイテムの作成方法と、そのアイテムを使用して作成できるアイテムのレシピだけを抽出してくれる検索機能も存在します。

たくさんのMODを入れている場合には必需品といってもいい、とてつもなく便利なMODです。




2011/11/08 22:43 | Comments(4) | TrackBack() | └minecraft
Android2.2 WebViewを複数設置したらどうなるの

どのViewも基本的に中身がはみ出たら画面外に出てしまって見えなくなります。
が、一部例外があってScrollViewとWebViewは自動的にスクロールしてくれます。

WebViewは一画面にふたつ以上作るなってのをどこかで見た気がするんだがどこだったっけ。
実際のところ複数設置しても問題なく動作します。

レイアウト
	<WebView android:id="@+id/webViewTest1"
		android:layout_height="wrap_content" android:layout_width="fill_parent"
		android:scrollbars="vertical" />
	<WebView android:id="@+id/webViewTest2"
		android:layout_height="wrap_content" android:layout_width="fill_parent"
		android:scrollbars="vertical" />
	<WebView android:id="@+id/webViewTest3"
		android:layout_height="wrap_content" android:layout_width="fill_parent"
		android:scrollbars="vertical" />
アクティビティ
	WebView webViewTest1 = (WebView) findViewById(R.id.webViewTest1);
	String url1 = "http://www.google.co.jp/";
	webViewTest1.loadUrl(url1);
	WebView webViewTest2 = (WebView) findViewById(R.id.webViewTest2);
	String url2 = "http://www.yahoo.co.jp/";
	webViewTest2.loadUrl(url2);
	WebView webViewTest3 = (WebView) findViewById(R.id.webViewTest3);
	String url3 = "http://www.bing.co.jp/";
	webViewTest3.loadUrl(url3);

普通に動作しますが、上のほうのWebViewが画面幅を使い切ると、それ以降のWebViewは画面外に追いやられてしまい閲覧できません。
また、どれかのWebViewでリダイレクトがかかるとブラウザに処理が渡ってそちらに移動してしまいます。
どうせWebViewを使うなら、一画面で全てを表示するのがよいのではないかと思われます。

ってかさー、RelativeLayoutとかのXMLによるレイアウトって超使いにくいよねー。
だいたいいつも手っ取り早くWebViewで実装してしまう。


2011/11/07 21:17 | Comments(0) | TrackBack() | Android
買ったものリスト 2011/11/08
一週間で40時間くらいゲームをプレイしていました。

…マインクラフト。
ついにXBOX360は実績取得どころか起動すらしなくなってしまった、やばす。


ログ・ホライズン3 ゲームの終わり(上) 橙乃ままれ
ログ・ホライズン4 ゲームの終わり(下)
☆☆☆☆

あー、「ゲームの終わり」ってそういう意味だったか。
これは恥ずかしい

新しい現実と向き合って懸命に生きていこうとするキャラクターたちの姿が描かれます。
まあ死んでもいいんだけど。
少々都合のよすぎる展開が多いという気はしますが。
特に、最初にススキノに行った以外他の拠点とのコンタクトが一切ないというのがちょっとありえない。

どうでもいいんだけど、「後に○○と呼ばれることになる」とかそういうフレーズを聞くといつもちょっとなんかこうもにょる。
著作で語れと。

なお、元々がネット小説であり、この手の話は販売された後ネットから消されるものも多いのですが、本作は現在も公開されています
私はあえて読んでいませんが。


青空に遠く酒浸り5 安永 航一郎
☆☆☆

読んでるときは勢いに飲まれて全く気付かなかったんだけど、
そもそもなんでこいつら戦ってるんだ。


スーパーマリオ3Dランド

とりあえず2Wまでクリア。
一言で言うとニューマリの正当進化です。
寝食忘れるほど超面白い、といわけではありませんが、任天堂らしい安定した面白さを提供してくれます。
今のところスターメダル含めたいして難しい面がないのですが、よもやこの難易度のままってことはさすがにないですよね?

個人的にはどちらかというと64GCギャラクシーの方向が好みなので、そっちの進化にも期待。


シュタインズゲート 変移空間のオクテット

開発段階ではSTEINS;GATE 8bitと呼ばれていた作品です。
同人ゲーですらフルカラーが当たり前というこの時代にラインアートのデジタル8色、FM音源orPSG、コマンドは入力式と、努力の方向を全力で間違っている作品。
http://gigasdrop.jp/game/sg8bit/index.html
しかもなんか設定でスペック変更すると、演出がスペックに応じてショボくなるというこれまた無駄な機能があるみたいです。
いや、まだ起動してないんでわかんないんですが。
マイクラに飽きるまで他のゲームは手に着かなそうです。

比翼恋理はまゆり以外のシナリオが微妙だったんで、今回のこちらはまともであればいいんですが。


2011/11/06 18:06 | Comments(0) | TrackBack() | 買ったもの
Minecraft 1.8.1 AMCO1.8.1Rev5Bの紹介その3 Treecapitator、Floating Ruins、Score、Death Chest
斧を作って木を叩くと、何故か丸ごと一本木が切り倒されてしまいます。
これはTreecapitatorの力によるものです。

バニラでは根っこから木を切っていったら空中に少しだけ残る、なんて不自然な状態になりますが、このMODを入れると、切った部分より上の木をまとめて回収できます。
資源回収の省力化もできますし、なんといっても気持ちがいいので、MODは入れないという人もこれだけは使ってみるといいかも。

類似MODとしてNature OverhaulTimber!などがあり、まとめて木こりMODと呼ばれています。
特にNature Overhaulは植物に関して色々変更があるみたいなのでリソースが空いてたら試してみると面白いかも。

Treecapitatorの作者は、前回のStarting Inventoryと同じ人です。
この人のMODは他にもFloating Ruins、Scoreなども採用されているのでついでに紹介してみます。

まずFloating Ruinsですが、これはワールドを生成するだけでわかります。
空中に浮島が出現します。

中にはスポナーがあるので、わかりやすく簡易トラップとして使えることでしょう。
ただ出現するスポナーはバイオームごとに決まっています。
設定がconfig/mod_floatingRuins.cfgに書いてあるので、直接変更すれば発生するスポナーの種類を変更することもできます。


スクリーンショットの左上にSCORE:0とかいう謎の文字列が表示されますが、あれがScoreです。
敵を倒したりすると点数が加算され、ゲームオーバー時に記録されます。
mods/daftpvf/score.txtで点数を変更することができます。

ということになっているはずなんですが手元の版ではいくら敵を倒しても0のまま増えてくれません。
まあAMCOの他にも色々MODを入れているのでそのせいかもしれません。

なお、同じディレクトリにgameOver.txtというのがあるかもしれませんが、これは死んだときのゲームオーバー画面に表示される文字列です。
書き換えるとそれが表示されるようになります。
gameOversave.txtはちょっとよくわかりません。


なお、死んだときにチェストを持っているとそのときに所有していたアイテムをその場でチェストに保管してくれます。
これはDeath ChestというMODです。
なくしたくないアイテムがあるというときにチェストを保険代わりに持っているとよいでしょう。

というMODなはずなのですが、手元のバージョンだと何故か何も持たずに死んでもチェストが出てきます。
中には作った覚えのないボートとか火打ち石とか木の剣とか、あと何故かグロウストーンダストとかが入ってるんですがこれは正規の動作なんですかね?

まあ素材集めがほんの少し楽になるのでいいといえばいいんですが、気がつくと辺り一面チェストだらけになっているという問題点も。
2011-11-04_23.55.15.png


2011/11/05 18:47 | Comments(0) | TrackBack() | └minecraft
Android2.2 クリックリスナーでキャンセル扱いにする
うっかり間違ったボタンを押した場合、指を範囲外にドラッグしてから離すと、HTMLのフォームのようにキャンセルした扱いにするアプリは数多くあります。
どうやって実装しているのでしょう。

前回OnTouchListenerを実装しました。
ACTION_UPとACTION_CANCELがあるので、「画像上で指を離したときがACTION_UPで、画像の範囲外に指をドラッグして離したときがACTION_CANCELなの?」と思ってみれば違います。
ACTION_CANCELは「押してるときに戻るボタンを押した」とかの本気でキャンセルされた場合にしか呼ばれず、それ以外は大抵ACTION_UPになります。
ですのでACTION_UPに進むボタンを実装してしまうと、うっかり間違って押した場合にキャンセルができなくなってしまいます。

解決策としては、OnTouchListenerとOnClickListenerを併用。
view.setOnTouchListener(new OnTouchListener(){
	public boolean onTouch(View view, MotionEvent motionevent) {
		switch(motionevent.getAction()){
			//押した
			case MotionEvent.ACTION_DOWN:
				Log.v("OnTouchListener", "ACTION_DOWN");
				break;
			//離した
			case MotionEvent.ACTION_UP:
				Log.v("OnTouchListener", "ACTION_UP");
				break;
			//キャンセルした
			case MotionEvent.ACTION_CANCEL:
				Log.v("OnTouchListener", "ACTION_CANCEL");
				break;
		}
		return false;
	}
});
view.setOnClickListener(new OnClickListener(){
	@Override
	public void onClick(View view) {
		Log.v("OnClickListener: ", "onClick");
	}
});
OnClickListenerは、名前に反して指を離したときに発動します。
また、範囲外に指を移動してから離した場合は反応しません。
よって画面遷移などの契機とするのに最適なリスナーとなっています。

なお、今度はonTouchの返り値がfalseになっていることに注意です。
こうしないとOnClickListenerに処理が渡りません。
そしてOnClickListenerを実装するとreturn falseでもACTION_UPやACTION_CANCELが反応するようになります。
意味がわからん。


実際他のアプリがどうやって実装してるのかは知らないのですが、これが一番簡単な作り方なのですかね。


2011/11/04 21:45 | Comments(0) | TrackBack() | Android
Minecraft 1.8.1 AMCO1.8.1Rev5Bの紹介その2 Recipe Book、Starting Inventory
ワールドを作成してゲームを開始すると、本来なにも所有していない状態で始まるはずが、最初から何故か一冊の本を所有しています。
さっそく右クリック。

2011-10-31_22.52.37.png
アイテム作成のレシピが表示されました。

このアイテムはRecipe Bookです。Recipie Bookではありません。

現在作成できるはずのレシピが一覧で表示されます。
クリック、矢印の左右でページをめくることができます。

ちなみにレシピの大半がRedPower Wiringの分割ブロックのレシピってのはどうなんだろうな。

なおレシピブック自体はBook(本)とInc Sac(イカスミ)で作成できます。

ゲーム開始時にいきなりアイテムを所有しているのはStarting Inventoryです。
mods/daftpvf/startingInventory.txtにぽつんと「397」とか書いてあると思いますが、これがレシピブックのアイテムIDのようです。
「160」に変えるとリンゴをひとつ、「4, 64」とするとcobblestoneを64個持った状態でスタートする、というふうに初期アイテムを自由に設定できるようです。




2011/11/03 19:53 | Comments(1) | TrackBack() | └minecraft
Minecraft 1.8.1 AMCO1.8.1Rev5Bの紹介その1 ModLoader、ZanMinimap
Minecraftの大型MODのひとつに、AMCOというものがあります。
http://www.minecraftforum.net/topic/293667-
BCやIC2のような著名MODも含む数十種類のMODを一気に導入できる便利なパッケージです。

何故か日本語紹介が全く見当たらないんですよね。
ここくらい?
http://www26.atwiki.jp/minecraft/pages/84.html
せっかくなので少しずつ紹介してみたいと思います。

マインクラフトは元々MODを使わせることを考えていなかったらしく、MOD導入のためにはminecraft.jarをアーカイバで開いて直接ファイルを放り込んで、とか面倒なことを行わないといけません。
http://www26.atwiki.jp/minecraft/pages/25.html
AMCOはそこらへんを解消し、普通のWindowsソフトのようにインストーラ形式で簡単に導入できます。
導入時のバージョンは1.8.1 Rev5Bでした。

問題点としては、個別パッケージのバージョンがわかりません。
特に村MODみたいに頻繁にバージョンアップしているものなんかは現在のバージョンが知りたいですね。
中を覗いてみるしかないんですかね?

AMCOのインストールが終わり、一度起動すると、マインクラフトのインストールディレクトリ内にmods/、config/というディレクトリができているはずです。
mods/には一部のMODが設置され、config/には多くのMODの設定ファイルが置かれます。

まず肝心なのはconfig/ModLoader.cfg。
ここにはどのMODを有効にし、どれを無効にするかという設定を行うファイルです。
なお、これ自体もModLoaderというMODの産物です。
http://www.minecraftforum.net/topic/75440-

大事と言いましたが、特にこだわりがなければデフォルトのままでかまいません。
ただmod_Somniaはオフにしておいた方が無難です。
Somniaは「寝ている間にも時間が経過する」というMODで、寝たら精錬が終わってるなど便利なところはありますが、そのぶん時間がとてもかかります。
http://www.minecraftforum.net/topic/162771-
夜出歩くのが苦手な人はオフにしておきましょう。

また他にも一部のMODが初期状態でオフになっていますが、これはリソースが足りなくて全MODをオンにすることができないためです。
http://www26.atwiki.jp/minecraft/pages/183.html

他にもForgeとかAudioModとか、「他のMOD導入のためのMOD」的なものがありますが、そこらへんを見てもあんまり面白くないのでパス。

ゲームを開始するとまず目を引くのがマップ。
画面右上にミニマップが映ります。
こちらはZanMinimapによるものです。
http://www.minecraftforum.net/topic/91544-

2011-10-31_22.51.49.png

Rei's Minimapってのに差し替えてるのでちょっと見た目が違うかもしれませんが、機能はたぶん一緒です。
http://forum.minecraftuser.jp/viewtopic.php?f=13&t=153
zでマップの拡大縮小、xボタンで大きなマップを見ることができます。

2011-10-31_22.52.16.png

他にも気球や宙に浮くお城、謎の建造物に村、黒い水に最初から手に持っている謎の本と、色々追加機能がありますので、おいおい紹介してみます。
なお、スタート時には周囲に低湿地(Swamplandバイオーム)および森(Forestバイオーム)があるところを選ぶのが無難です。





2011/11/02 21:42 | Comments(0) | TrackBack() | └minecraft

<<前のページ | HOME | 次のページ>>
忍者ブログ[PR]