NDSiブラウザ

DSiのUserAgentは Opera/9.50 (Nintendo DSi; Opera/446; U; ja) ですね。 ヘッダに を入れて、中身のCanvasを横240、縦176にすると、スクロールのできない 画面ができる模様。 普通にonmousemove, onmouseupなどが利用できる また、javascript:alert(1);などをURLに入れても動く。 若干Canvasの挙動が怪しく、drawImageでただしく描画されない。

» 続きを読む

| | コメント (0) | トラックバック (0)

Cocoa入門

なんとなくMac OS Xの開発環境であるObjective-c Cocoaで開発してみる気になったので、簡単なアプリを作成。 環境の構築は、付属のDVDに入っていたXcodeをインストールするだけでOK。 開発の主な流れとしてはInterfaceBuilderでUIを作って、それに対してコーディングを行う。 キャンバスのような物にごりごり書くプログラムなら、NSViewクラスを継承したクラスを作成し、 それをInterfaceBuilder上でUIの上に配置してNSViewクラスのdrawRect関数をオーバーライドすると その中に描画することができる。 #import "DotView.h" @implementation DotView - (id)initWithFrame:(NSRect)frame { self = [super initWithFrame:...

» 続きを読む

| | コメント (0) | トラックバック (0)

iPhoneSDK

Androidの時のように色々プログラムを書いたりソースをあげていたりしていたのですが、どうやらNDAとかの諸々でまずそうなので、一旦削除します。とりあえず現在はTouch系のAPIの利用方法がわかり、手低レベルのグラフィックAPIもわかってきた感じ。で、現在困っているのがXcodeからiPod touchに転送できないという問題くらいですかね。 もう少し詳しくわかったら平気な範囲で随時更新していきます。

» 続きを読む

| | コメント (0) | トラックバック (0)

Android本が登場

どうやらAndroid本が出たようです。僕が確認している中では一冊目。 と思っていたら、もう一冊あったので両方貼っておきます。 右の方は買っていませんが、左の方は買ったので軽くレビューを Androidの主要な機能を一通りカバーしている もちろんソースコード付き Android英語ばっかりでよくわからんという人にはオススメ 残念ながら最新版のSDKではない とまぁこんなところです。開発をするなら一通り読んで損は無いかと思います。

» 続きを読む

| | コメント (0) | トラックバック (0)

ノート

日頃お世話になっているshi3z氏のブログにて、ノートネタが投稿されていたので、 ノートオタクとしてはいてもたってもいられずトラックバック。 なかでも僕は無地の紙に書くのが大好きです。 旅先などで急にノートを探すと、罫線の入っているモノしか買えないのですが、罫線はアイデアを考えるときに結構邪魔です。だから「お絵かき帳」や「計算用紙」みたいなものに絵を描くことが多いです。 もう何というかおっしゃる通り。まさしくそう。罫線のあるノートに物を書くなんて信じられない。 きっかけは祖母の家で偶然一冊の無地ノート。罫線ノートではどうも分数やインテグラルがうまく書けず、いつもイライラしていたのですが、無地ノートなら自由に書けるじゃないか!ということでそれを頂き使ってみると、非常にいい。以来無地ノートの魅力に取り付かれてしまったのです。 そのノートは少し柔らかめの真っ白なムックのようで、表紙は何も書いてな...

» 続きを読む

| | コメント (0) | トラックバック (0)

Androidでお電話

久しぶりに技術ネタを書こうかと。 Androidといえばコンテストでうまくいくと賞金がもらえることでおなじみですが、 なんと電話がかけられるそうです。 IServiceManager sm = ServiceManagerNative.getDefault(); IPhone phone = IPhone.Stub.asInterface(sm.getService("phone")); phone.call("911"); これはドキュメントに載っていたコードを丸パクリなのですが、なにがすごいって 公式サイトのドキュメントにIServiceManagerが存在しない。すごい。でもちゃんと動く。 で、IPhoneにはcallとdialの2つのメソッドがあるのですが、違いはcallはもう直で電話する のに対して、dialはdialerに電話番号を入力す...

» 続きを読む

| | コメント (0) | トラックバック (0)

AndroidSDK感想

前項で紹介した通り、昨日(?)公開されたばかりのNew Version AndroidSDKですが、軽く触って見た感想を適当に書いてみます。 ちょいちょい使ってたメソッドが消えててびっくりした(canvas.getPixels()とか) PackageManager用の新しいパッケージができてた。 上記に関連して、ActivityInfoとかが内部クラスじゃなくなってた OpenGLESにTextureクラスが追加されたけど、なんか自分で作ったやつとあんま変わらんっぽい ContentURIがUri.なんたらとかいう感じに変わってた っていうことはContentProviderとか使ってるやつ結構書き換えないといけない感じ? AndroidManifest.xmlの書き方が変わった。 新しいメディアフォーマットに対応 なんだかそういう感じの変更点多数 巷では新しいホームスクリーンが話題 G...

» 続きを読む

| | コメント (0) | トラックバック (0)

Androidがバージョンアップ!!

公式ブログでも宣言のあったAndroidの大幅バージョンアップですが、ついに公開された模様です ちょっくらダウンロード&インストールして参ります。

» 続きを読む

| | コメント (0) | トラックバック (0)

まとめてみた-。

期末テストも一段落ついたことだし、ここらで一つAndroidについてまとめてみるかなーって ことで、適当にまとめてみました。 デザインも内容もとりあえず大分適当。とりあえずバージョン0.3くらいということで。 http://chephes.sakura.ne.jp/android/ とりあえず随時進化させていくので、たまに見てみてください

» 続きを読む

| | コメント (0) | トラックバック (0)

天下一カウボーイ大会

12/23に開催された、天下一カウボーイ大会にスピーカーとして参加して参りました。 働かせてもらっているUEIで開発したSiteSneaker2007 と、そこで得た経験を元に開発を開始したUE surface(仮称)の発表をしました。 大会のレポートはCNETさんのところを見るとわかりやすいかと思います。 概要を説明してもしょうがないので、スピーカーとして参加しての感想を書きます。 人前で発表する為に物を作る訳ではないが、発表を意識するとモチベーションがあがる プレゼンの仕方次第では、同じ物でも面白さの伝わり具合が違う ハードウェア(デバイス)を使ったマッシュアップは面白い(GPS、爺Tube) スライドをしっかり作り込むのもアリだし、あえてへた&適当路線で行くのもアリ(電脳ホワイトボードを利用して、へた文字をでかでかとスライドとして表示しました) altyパーティが豪華すぎた かっこつ...

» 続きを読む

| | コメント (0) | トラックバック (0)

Androidの非公式実機が登場!

Androidでの開発は非常に面白いが、やはり残念なのが実機が無いということである。 しかしeu.edgeさんによると、ザウルスのSL-C760でAndroidが動いたそうである。 タッチスクリーンは動いていないものの、キーボードは動いており、アプリケーションも動く模様。 今後のレポートに期待。

» 続きを読む

| | コメント (0) | トラックバック (0)

Androidでlocalhostに接続

Android側からエミュレーター起動元のマシンのlocalhostに接続したいときは、 127.0.0.1やlocalhostでは接続することができない。これはきっとlocalhostだけでは Androidエミュレーター自体に接続してしまうからだろうと思われる。 そこで、起動元マシン自体に接続する為には、少し面倒だがマシンのプライベートipアドレス を調べて、そこに接続してやらなければならないようだ。 そうすれば、起動元のマシンに接続でき、ローカル環境での開発が可能となる。

» 続きを読む

| | コメント (0) | トラックバック (0)

Androidとjavascriptの連携

Webkitを搭載しているAndroidでは、もちろんjavascriptも動く。 そして、すばらしいことにjavascript側からAndroidのオブジェクトをいじくったり、 関数を起動したりすることも可能という。 実際に使ってみたので、以下のソースを参照のこと。 Android側 public void hoge(){ WebView view = new WebView(this); view.getSettings().setJavaScriptEnabled(true); object = new JsObject(); view.addJavascriptInterface(object, "output"); setContentView(view); view.loadUrl("http://chephes.sakura.ne.jp/Andr...

» 続きを読む

| | コメント (2) | トラックバック (0)

AndroidのCanvas.getPixels(int[])

Androidで描画されるイメージのピクセル情報を取得するには Bitmap.getPixels Canvas.getPixels Bitmap.getPixel の大体三種類がある。まず1番目は、一度使ってみたものの なぜか思うように動かなかったので断念。 次に使ったのが2番目で、基本的には正常に動くが、 まれに画像との相性で突然強制終了されるというバグがある。 最後の3番目が、強制終了等のバグは無い物の、戻り値が微妙におかしい。 ここはs_welt さんが詳しかったので、そこを参照。 大体の内容としては、RRGGBBじゃなくてどれかが入れ替わっているというもの。 とりあえずピクセルの色の取得法はBitmap.getPixelを利用して、 バグの箇所は適宜自分で入れ替えるように実装すると吉です。

» 続きを読む

| | コメント (0) | トラックバック (0)

AndroidのOpenGL ESでマウスピッキング 〜完結編〜

AndroidのOpenGL ESでのマウスピッキングについに成功しました。 前回の物では、マウス座標と3D空間の関連付けを自前の関数でやっていたのですが、 それにバグがあり、視点の位置によってはうまくいかないことがありました。 そこで利用したのがこの関数。 GLU.gluUnProject これがもう便利べんり。あとはあたり判定は実装済みだったので、置き換えて完了。 使い方は大体以下の通り。     int[] bits = new int[16];     float[] model = new float[16];     float[] proj = new float[16];     gl.glGetIntegerv(gl.GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_...

» 続きを読む

| | コメント (3) | トラックバック (0)

AndroidのOpenGL ESでマウスイベント

数日前からずっとチャレンジしていたOpenGL ESによるマウスイベントが、 ついにちょろっと動きました! 基本的なアイディアとしては、カメラの座標を通り、クリックされた方向に向かう 直線と、対象の三角形のある平面の交点の位置を取得するというもの。 具体的な手順は以下の通り カメラ位置から注視点へ向かう直線の、z-x傾き、z-y傾きを得る 視野角、アスペクト比から、クリックされた点とカメラ位置との相対z-x傾き、z-y傾きを計算する tanの加法定理により、上記二つを合成し、絶対のz-x傾きz-y傾きを得る 上で得られた傾きを持って、カメラ位置を通る直線を作る カメラの位置ベクトルをxとし、その直線を通る、カメラ位置以外の任意の点の位置ベクトルをyとする 当たり判定を行う三角形の三点の位置ベクトルをそれぞれp、q、rとする p、q、rの三点からなる三角形内部を表すベクトルは、p+s(q-p...

» 続きを読む

| | コメント (1) | トラックバック (0)

AndroidのLogクラス

Androidアプリをデバッグする際に非常に便利なのがLogクラスとLogCatですが、 たまにLogCatが全く反応しなくなってしまうときがあります。 eclipseを再起動してもなおるとも限らず、よくわからなくてとりあえず OSごと再起動する、なんてこともあるでしょう。 そんなときの為のメモ。 もしEmulatorが終了した等の理由でLogCatの反応がなくなったときは エミュレータを終了する eclipseを終了する タスクマネージャー、またはアクティビティモニタからadbを強制終了 eclipse起動 エミュレータ起動 の順に復旧作業を行うと、無事またLogCatを利用することができます。

» 続きを読む

| | コメント (0) | トラックバック (0)

AndroidのOpenGLではまった後...

前回のソースですが、あのソース自体には特に問題がなさそうということが判明しました。 とりあえず現象の原因は、マルチスレッドによるテクスチャの読み込み処理でした。 現在は起動時に全てのテクスチャを読み込むように変更したのですが、 前段階では、テクスチャを描画しながら動的に読み出ししていた訳です。 そうすると、必然的にglTexImage2Dを実行する前にせっかくglBindTextureをしていても、 それとは別のスレッドでglBindTextureが呼び出されて、目的とは異なるテクスチャに 画像が読み出されることになると。以上が原因でした。 とりあえず抜け出せたので、それをもう少し発展させて何か完成したらまた 公開したいと思います。

» 続きを読む

| | コメント (0) | トラックバック (0)

AndroidのOpenGLでテクスチャにはまる

OpenGLの機能を使って、とりあえずWebからとってきた画像をテクスチャとして 利用しているんですが、なぜか一枚目のテクスチャが二枚目のテクスチャに上書きされてしまいます。 また、何かと思うように動いてくれなかったり‥。 バグなのかなんなのか不明。 //テクスチャ生成部 int a[] = new int[1]; gl.glGenTextures(1, a, 0); gl.glBindTexture(gl.GL_TEXTURE_2D, a[0]); gl.glTexParameterx (gl.GL_TEXTURE_2D, gl.GL_TEXTURE_WRAP_S, gl.GL_REPEAT); gl.glTexParameterx (gl.GL_TEXTURE_2D, gl.GL_TEXTURE_WRAP_T, gl.GL_REPEAT); int pixels[] = canvas....

» 続きを読む

| | コメント (0) | トラックバック (0)

AndroidのOpenGL ESで高レベルオブジェクト

少し前にPaperVision3Dを使って3D系の物を作っていたので、 OpenGL流の頂点がなんたらかんたら、という扱いが非常にめんどくさく感じる。 そこで、そこらへんをカプセル化して使えるオブジェクトを作ってみた。 イメージとしては、PaperVision3Dで言うところのPlaneが近い。 class TexturePlane{     private ByteBuffer  mIndexBuffer;     private IntBuffer   mVertexBuffer;     private IntBuffer mTextureBuffer;     private int texid;     private int x, y, z; ...

» 続きを読む

| | コメント (1) | トラックバック (0)

«AndroidのOpenGLで透視投影