tag:blogger.com,1999:blog-76814832973594907822024-03-19T20:29:36.565+09:00xappryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-7681483297359490782.post-67271546869058099592012-01-17T01:28:00.001+09:002012-01-17T01:29:45.647+09:00xcode4のcoredataでone-to-manyを設定する方法relationshipのinspectorがどこででてくるか全くわからなかったので<br />
メモ。<br />
<br />
1. add new fileでデータモデルを選んで、Hogehoge.xcdatamodeldを追加<br />
2. xcdatamodeldを選択すると、Core Data Model Editorが右ペインに表示される<br />
3. Entityを追加する。CategoryはSubCategoryを複数持ち、SubCategoryは1つのCategoryを持つとする<br />
3-1 EntityにCategoryを追加。<br />
3-2 EntityにSubCategoryを追加。<br />
<br />
3-3 CategoryのEntityに、relationshipでsubcategoriesを追加<br />
このとき、<br />
View→Utilities→Show Data Model Inspectorを選べば、<br />
one-to-manyが選べるペインが右に表示される<br />
Name:subcategories<br />
Destination : SubCategory<br />
OptionalとTo-Many Relationshipにチェックをつける<br />
(Inverseはそのまま)<br />
<br />
3-4 SubCategoryにrelationshipでcategoryを追加<br />
同様にrelationshipを選んだ状態で、Data Model Inspectorを表示。<br />
Name : category<br />
Destination : Category<br />
Inverse : subcategories<br />
<br />
チャート図でみたときに<br />
CategoryとSubCategoryが1つの線で結ばれ、<br />
Category <------->> SubCategory<br />
と SubCategory側に>>がついていれば正しい状態ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-30699481818846527072012-01-06T15:45:00.001+09:002012-01-11T12:41:56.188+09:00nginxのdebパッケージをカスタマイズするubuntu 11.10 serverでnginxのtcp_proxy_moduleを使用したかったのでdebファイルを生成するための記録<br />
<br />
1 create working directory<br />
$ mkdir -p src/deb<br />
$ cd src/deb<br />
<br />
2 install source packages<br />
$ apt-get source nginx-full<br />
<br />
3 install build packages and other dependency packages<br />
$ sudo apt-get install devscripts<br />
$ sudo apt-get build-dep nginx-full<br />
<br />
4 download tcp_proxy_module<br />
$ cd nginx-1.0.5/debian/modules<br />
$ git clone https://github.com/yaoweibin/nginx_tcp_proxy_module.git<br />
<br />
5 apply patch tcp.patch<br />
$ cd ../../<br />
$ pwd<br />
/home/ry/src/deb/nginx-1.0.5<br />
$ patch -p1 < debian/modules/nginx_tcp_proxy_module/tcp.patch<br />
<br />
6 edit changelog<br />
$ cd ../../<br />
$ debchange -i<br />
(add your change log)<br />
<br />
7 edit debian/rules<br />
$ vi debian/rules<br />
--add-module=$(MODULESDIR)/nginx_tcp_proxy_module \<br />
<br />
8 build package!<br />
$ pwd<br />
/home/ry/src/deb/nginx-1.0.5<br />
$ debuild -us -uc<br />
<br />
wait<br />
<br />
9 install new deb<br />
$ cd ../<br />
$ ls nginx*.deb<br />
nginx_1.0.5-1ry_all.deb (and other packages)<br />
$ sudo dpkg -i nginx_1.0.5-1ry_all.deb<br />
<br />
<br />
<br />
<br />
<br />ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-55492279269542321632011-11-22T11:37:00.001+09:002011-11-22T11:46:53.189+09:00iOSシミュレータでの画像保存Titanium Mobile (1.7.5)経由で Ti.Media.saveToPhotoGalleryを実行するとエラーがかえってくる(errorのcallbackハンドラがよばれる)<br />
内部で結局はUIImageWriteToSavedPhotosAlbumが呼ばれる。<br />
よくよく調べてみると、<br />
シミュレータ上で写真機能を一度は実行しておかないと保存用のディレクトリが作成されないらしく、そのせいでエラーになる。<br />
(Safariの横の写真アプリをクリックすればおk)<br />
<br />
やられたわ。<br />
<br />ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-71084125750333490692011-11-21T11:51:00.001+09:002011-11-21T11:59:16.725+09:00Titanium Mobile (1.7.5)のtableviewsection - iOSTitanium Mobile (1.7.5)のtableviewsection<br />
<br />
ボタンを押すなどのイベント時に、tableview上のあるセクションのすべての行の値を取得する必要があったので、APIを見たところ、rowに対するアクセサがない。<br />
(あるのはrowCountという件数取得のみ)<br />
<br />
しかしながら、githubにあるソース(TiUITableViewSectionProxy.h)を見るとしっかり、rowsがプロパティとして宣言されている。<br />
<br />
var row = aTableviewSection.rows[i];<br />
<br />
とやったら、取得できた。APIへの記載漏れなのかな。<br />
<br />
<br />ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-15547075017300834402011-11-15T22:39:00.001+09:002011-11-15T22:41:15.758+09:00Titanium Mobile(1.7.5)でのcookie - iOSTitanium Mobileでcookieについてのメモ書き(for iOS)<br />
<br />
・SDK 1.7.5での挙動。<br />
・サーバから発行されたcookieはURL(のホスト部)をキーにNSHTTPCookieStorageに保存される。<br />
・このcookieを消したい場合、xhr.clearCookies("http://foo.bar.jp/");とやれば消せる<br />
・clearCookiesメソッドは今のところAPIリファレンスには載っていない。<br />
・有効なcookieがNSHTTPCookieStorageにある場合、自動でリクエストに付与される(未確認)<br />
・そのため、「有効なcookieがリクエストにある場合、cookie発行しねーよ」というサーバだった場合、this.getResponseHeader('Set-Cookie');は2回目以降nullになる可能性がある。ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-4751785668824162302011-10-30T23:58:00.000+09:002011-11-14T17:40:06.865+09:00Unity3Dで作ったゲームにAdMobを表示する方法(iOS編)忘れないうちにメモ書き<br />
<br />
現時点ではAdmobSDKの仕様上、ViewControllerが必要になるので、<br />
UnityでbuildしたxcodeプロジェクトのAppController.mmにコードを追加する。<br />
<br />
Step1<br />
-(void)registerAdmobなどとして、admobの表示ロジックをメソッドとして追加する<br />
<br />
Step2<br />
applicationDidFinishLaunchingの最後に、Step1で作ったメソッドをdelayさせて呼び出す。<br />
<br />
<br />
以下はlandscapeLeft固定で右上に320x50のバナーを表示する場合。
<script src="https://gist.github.com/1363541.js"> </script>
以下をapplicationDidFinishLaunchingメソッドの最後に追加。
<pre>
[self performSelector:@selector(registerAdmob) withObject:nil afterDelay:0.4];
</pre>ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-71574917804905533072011-10-29T10:18:00.000+09:002011-10-29T10:39:10.340+09:00個人でのUnity3DについてUnity3D でiOS/Android向けゲームをリリースできたのでまとめ<br />
<br />
将来どうかわっているかわからないが、現時点での所感。<br />
<br />
・Unity3D自体は本当にすばらしい。<br />
・モバイル向けにはライセンスが必要だが、400$は安いと思う。<br />
・行列の演算が必要になってくるが、数学が好きなら苦にならない。<br />
・サンプルなどでだいたいパターンが見えてくるので、3D空間の計算方法がわかるようになる。<br />
・OpenGLかける人はすらすらできると思う。<br />
・MonoでC#を書く時間より、Blenderで3Dモデルを作る時間のほうが長かった。<br />
・リアルタイムのLightの計算がコストが高い。(ので、mobile/Unlitを使った)<br />
・Lightmappingもパフォーマンスに有効。<br />
・実機に転送して、FPSを表示させながらやると捗る<br />
・ワンソースでiOS/Androidへビルドできるが、Switch Platformすると、コンバートがかかるので、これが結構長い。アセットが増えてきた後半は特に。<br />
・最初は1つのプラットフォームで開発し、できてからswitchしたほうが効率はいいと思う。<br />
・3Dモデリングとそれに正しくテクスチャを貼れる人は神だと思う。<br />
・容量を気にしないで作ったら、20MBを余裕で超えたので、次回への反省材料ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com1tag:blogger.com,1999:blog-7681483297359490782.post-64990295474797149252011-10-29T10:02:00.003+09:002011-10-29T10:03:01.285+09:00<br />
<a href="http://xappjp.blogspot.com/p/android-apps.html">The Tower Of Maze</a> AppStore Now.<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://xappjp.blogspot.com/p/android-apps.html"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh642FNROX9YLVuBzQUaidAvlbttiG3LU2h8Bin5ThXFabLQYiRNckmXyzSIW5ukhyB1HPe7L66I7ktm0NxdsLliM-Ot3xKFH2DUzWCKXvrztb9x4zNeZr_RCCJmA-8fJ69Gq-tzX5r6Lg/s200/icon512x512.png" width="200" /></a></div>
I could release The Tower Of Maze for iOS<br />
It is supported for iPhone3GS/iPhone4/4S<br />
And it is free.ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-57631222223109646642011-10-18T15:41:00.004+09:002011-10-18T15:54:26.991+09:00Unity3DとOpenFeintの連携メモ(Android)TowerOfMazeでUnity3DとOpenFeintを連携させたときのメモ-Android編。<br />
<br />
Step1<br />
Unity用のEclipseでの環境を整える。Indigoでもだいじょうぶ。<br />
@ITのgreeの方の書かれた記事を見るか、もしくはUnityの公式ドキュメント(Integrate Eclipseなんちゃら)に従い、Eclipseでの環境を整える。<br />
この段階では、単純に<br />
・UnityPlayerActivity(2.3以上向けならProxyActivity)を継承したクラスを作成<br />
・BuildされたTemp/ほにゃらら/assets/以下をEclipseプロジェクトのassetsにコピー<br />
・Eclipseから実機を起動する(Unity上でのBuild and Runは使用しない)<br />
を確認する。<br />
なお、Temp以下はUnityでplatformをAndroidにして、一度ビルドしないと出現しないので注意。<br />
<br />
Step2<br />
次にOpenFentのSDKを参照できるようにする。jarでは提供されていない?ので、プロジェクトをインポートする<br />
・OpenFeintのAndroid用SDKをダウンロードし、OpenFeintAPIのプロジェクトをimportする。<br />
・プロジェクトを右クリックし、Androidを選んでis Libraryにチェックを入れる<br />
(最初から入ってるかも)<br />
・Step1で作成したプロジェクトを右クリックし、Configure Build Pathを選択<br />
・左メニューからAndroidを選んでLibraryのAddを選択し、OpenFeint APIを追加する。<br />
(UnityPlayerの環境を整えるのと同じやり方)<br />
<br />
Step3<br />
Eclipseでクラスを用意する。OpenFeintPluginなどとする。このクラスをUnity側から呼び出す形になる。メソッドはすべてstaticにする。最初はLaunchDashbordだけとかがいいでしょう。(OpenFeint側の公開メソッドはほとんどstaticで実装されている。)<br />
<br />
Step4<br />
Unity側でクラスを書く。Assets/Plugins/Android以下におくのが望ましい。<br />
AndroidJavaClassを使用するので、もし同じソースでiOSなど別のPlatformでBuildする場合は当然エラーになるので、クラス全体を<br />
#if UNITY_ANDROID<br />
#endif<br />
で括る。また、Unity上でPlayしたときに、スルーするように<br />
Application.isEditor を使って分岐する。<br />
<br />
以下Step3とStep4を繰り返し、Eclipse側でコードを追加し、それをUnity側で<br />
AndroidJavaClassを使って呼び出す。<br />
<br />
おまけ<br />
OpenFeintで何かイベントが発生した場合に(ログインしたとか)なにかしたい場合は<br />
自分でOpenFeintDelegateを継承したDelegateクラスを書き、<br />
OpenFeint.initializeの第3引数にそのインスタンスを渡せばよい。<br />
<br />
<div class="p1">
OpenFeint.initialize(currentActivity, settings, <span class="s1">new</span> MyOpenFeintDelegate());</div>
<br />
<br />
<br />ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-52130052525115932102011-10-17T00:55:00.002+09:002011-10-17T00:57:31.006+09:00<span class="Apple-style-span" style="font-size: large;"><b>The Tower Of Maze</b></span><br />
<br />
<a href="http://xappjp.blogspot.com/p/android-apps.html">The Tower Of Maze</a> released.<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://xappjp.blogspot.com/p/android-apps.html"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh642FNROX9YLVuBzQUaidAvlbttiG3LU2h8Bin5ThXFabLQYiRNckmXyzSIW5ukhyB1HPe7L66I7ktm0NxdsLliM-Ot3xKFH2DUzWCKXvrztb9x4zNeZr_RCCJmA-8fJ69Gq-tzX5r6Lg/s200/icon512x512.png" width="200" /></a></div>
I am excited that I can release The Tower Of Maze.<br />
At present, this game is designed for Android (required >= 2.2).<br />
I am going to prepare for iOS.<br />
<br />
This game is developed by Unity3D Game Engine.<br />
Unity3D is great development tools for indie developers like me.<br />
<br />
If you'd like to contact me, please email to ozahei at gmail.com<br />
(at replace @)<br />
<br />
<br />
<br />
<br />
<br />ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0tag:blogger.com,1999:blog-7681483297359490782.post-17797599954609228732011-09-26T19:22:00.006+09:002011-09-26T19:42:39.775+09:003D Four-in-a-Row<a href="http://xappjp.blogspot.com/p/iphone-apps.html"><b><span class="Apple-style-span" style="font-size: large;">3D Four-in-a-Row (立体四目並べ)</span></b></a><br />
<br />
<div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitj2VJeNM0s3lmLuTG1V14ZsDL8HO-mn1WIhiIQnrc1kJ4MIZWvoIZjfMTssAHfskKt24SEgKGjNEuuYrr91LFMhB2WLKMLhCYSwpD3pe9My7cG8jfUPeVA21LiWKN8KxmrgZZ6cTgwKU/s1600/capture01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitj2VJeNM0s3lmLuTG1V14ZsDL8HO-mn1WIhiIQnrc1kJ4MIZWvoIZjfMTssAHfskKt24SEgKGjNEuuYrr91LFMhB2WLKMLhCYSwpD3pe9My7cG8jfUPeVA21LiWKN8KxmrgZZ6cTgwKU/s320/capture01.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><span class="Apple-style-span" style="color: #444444; font-family: sans-serif; font-size: x-small;"><span class="Apple-style-span" style="line-height: 19px;"><b><br />
</b></span></span></div><ol></ol>ryozakihttp://www.blogger.com/profile/12766596132599033821noreply@blogger.com0