chephesさんのところでlocalhostにつなげるという記事を見て早速試してみた。 普段なら http://localhost/... と書くところを、 http://(プライベートIPアドレス)/... と変えるだけでlocalhostにつなげられる。 localhostに接続できればPHPとか動かせるので…
とりあえずAPEのソースを読んでみた。 大体流れはわかったけど。 これを活かすことができるように頑張る!
物理シミュレータを作るためにいわゆる物理エンジンてのはどんなことをしてるのか調べようと思った。 とりあえずActionScript3.0での物理エンジンを探してみたら有名なところは次の3つぐらい。 Revive APE Fisix みんな一度はデモとかを見たことあるんじゃな…
バネの続きで今度は棒を作ろうと思ってるんだけどなかなかうまくいかない。 原因はなんとなくわかってるだけに余計つらい。 12月に入り気がつけば来年になってしまうので、 そろそろコンテスト用のを作り始めないとまずい。 だから更新も不定期になりそう。…
とりあえずバネが作れたので、 それをいくつかつなげてみた。正八角形に質点を配置して、隣の質点と 向かいの質点をつないだ。 動かしてみたら若干正八角形が崩れてるけど、 バネだからこんなもんかと無理矢理納得した。 棒だとちゃんと正八角形になるのだろ…
今度はバネ。非常に簡単です。 最初、減衰振動の運動方程式解くのダルいなと思ってたけど、 加速度求めるだけならそんな必要ないってさっき気づいた。 まずいまずい。 「げんすいしいんどう」で変換して「元帥進藤」が第一候補てのも困ったもんだ。 たまにMa…
ちょっと作ってみた。 課題がいくつか。 床とか、物体との衝突をどう処理するか。 今は床のy座標より下に行ったらボールの速度反転とかやってて。 さすがにそれじゃまずかろうということで何か考えないといけない。 このReviveのソースとか見て勉強します。 …
自転ができたので今度は公転させようと思って。 回転させること自体は楽にできたんだけど回転の方向がおかしい。 ちょっと気合いいれて考えてみないと。
というわけで回転できた。 割と疲れた。 はじめPapervision3Dのを参考にして作ってみたけどなんか回転がおかしいのと、 うまくクォータニオンから回転行列が作れないので他のやり方を探した。 そこで参考にしたサイトがここ。 途中経過は色々面倒だけど結局…
とりあえず変換行列を使った平行移動とスケール変換だけ作った。 あとは回転だけなんだけどこれはクオータニオンを使うべきなのか。 というかオイラー角だとしてもクオータニオンだとしてもめんどくさそうだ。 あとMatrix3Dというクラスを作ってみたがあんま…
なんとなくブログを毎日更新したいので 特に意味はないけど日記を書く。 そろそろ5000アクセスが近いので 記念に何か作りたいと思うけど。 いかんせん時間とアイディアが足りない。 うーん。 昨日言ってたCrayon Physicsと一緒に これはいいなあと思うのがMI…
一応球体とか立方体が出せるようになったので 今度は平行移動、回転、スケール変換とかの機能を付けたい。 3Dプログラミングはほとんどやったことないんだけど、 こういう変換をする場合は元データの値を変えるんじゃなくて、 変換行列みたいなのを持ってお…
昨日書いたSphereへのテクスチャマッピングの違和感。 こしさんにコメントを頂き解決しました。 まだOpenGL ESの座標系に慣れてなかったり、 各メソッドが何やってるのかを把握しきれてないところがあるので 色々頑張るっていかなければ。 前に作ったCubeと…
Androidで日本語入力できたらなと思ってたらIMEを作ってる人が! すげー。これは楽しみだ。 というかIME作るのって予想以上にというか予想通りというか、ものすごい大変な作業そうだな。。
というわけで球体へのテクスチャマッピングができました。 それに伴ってSphereの頂点の決定法も変更。ほぼPlaneと同じ感じになりました。 つまりSphereクラスのcreateメソッドの中身をごそっと変えた。 作ってて頂点数が256以上になるとおかしくなることに気…
OpenGL ESの練習を兼ねてマインスイーパを3Dで作った。 3Dのマインスイーパというとここが有名っぽいけど、それとは全然違うゲーム。 というか2Dを3Dにしただけという。 それっぽく遊べるので結構面白い。 あとonKeyDownメソッドでキー入力が取得できなくて…
OpenGL ESのプリミティブを手軽に作る第三弾のSphereです。 Cubeの時よりは作りやすかったけど、面を作るところで結構悩んだ。 これでPlane、Cube、Sphereの三つができてマウスピッキングも(一応)できるようになったので、 何か作れるんじゃないだろうかと…
やはりマウスピッキングはOpenGLでやってるような方法は使えないみたい。 なので違う方法を考えた。けどちょいちょい穴があるので似非マウスピッキングということで。 結局何をしてるかというとglReadPixelsメソッドでクリック位置の色情報を取得し比較して…
gl.glEnable(GL_DEPTH_TEST); とすると動かないと先日の日記で書いたが。これが解決した。 結局OpenGLContextをnewするときに引数にOpenGLContext.DEPTH_BUFFERを指定していないだけだった。 悩んだ悩んだ。悩んだだけに解決して嬉しかった。
昨日言ってたGL_SELECT(GL_SELECTIONは間違えでした。)とglReadPixelsについて少し調べてみた。 これはOpenGLでの話なのでOpenGL ESではどうなのか。驚きの結果になった。 まずGL_SELECTの方法。 OpenGL ESにはglRenderModeメソッドがない。 つまりセレク…
あるオブジェクトがクリックされたかを知るには、 GL_SELECTIONを使うかここにあるみたいにgetReadPixelsメソッドを使うといいみたい。 どちらにしろお手軽にはいかないみたい。うーん。
そんなわけでOpenGL ESをPapervision3Dみたいに扱いたい計画の続き。Cubeを作ってみた。 ソース見てもらうとわかるけど非常にめんどくさいしごちゃごちゃだし。どうにかならないかな。 そんで陰面除去するときに、cheprogrammingを参考に、 gl.glEnable(GL10…
リソースファイルからは比較的容量の大きいメディアファイルは再生できないようなので、 普通の曲なんかを再生するにはAndroidのエミュレータにファイルを転送しておく必要がある。 転送にはadbコマンドを使う。エミュレータが起動した状態でターミナル(Mac…
前にソースは今度と言っていたMediaPlayerの話。 一応動くは動くんだけど再生できるファイルとできないファイルがあったりする。 再生の仕方は前にも書いた通り。res/rawフォルダの中に再生したいファイルを入れ、リソースIDで指定する。 うーん。もう少し調…
やっぱり3Dというのは魅力的で。使えるなら使いたいものです。 ということで色々試してみた。 最初に思ったのは「こりゃめんどくさい」ということ。いちいち頂点自分で決めるの?とか。 元々ActionScriptでPapervision3Dを使ってたので余計にめんどくさく感…
なんか面白いのできた。 AndroidにはAnimationというのがあって、 色々値を決めると勝手にアニメーションしてくれる優れもの。 といいながらあんまり触ってないので実態はよくわからないけど。 気持ちとしてはActionScriptのTweenerとかそんな感じ? という…
今までリソースからBitmap形式の画像を取得するには、loadImageメソッドを自作し対応していた。 しかしBitmapFactoryを使うことでこれが非常に簡単になるのだ。なるのだ!そのやり方は、 Bitmap bmp = BitmapFactory.decodeResource(res, id); これだけ。res…
そんなわけで第二回。 前回い忘れてたけど基本的にレイアウトファイルは使わない方向でいきます。 対応するアトリビュートは例えばEditTextなら、 http://code.google.com/android/reference/android/widget/TextView.html の最初の方にある"XML Attributes"…
前にGridVIewで作ったMineSweeperを普通に作ったらどうなるのかと試してみた。 そしたらやっぱり楽だった。 でもこれはAndroidの機能とか特に使ってないので面白味がない。 だからそろそろOpenGL ESとかを使ってみようと思う。 まだ直すところが沢山あるので…
Androidには便利なWidgetがいくつもあるがそれを使いこなすのは難しい。 そこで自分のためということも含め使い方の解説をしていきたい。 今回とりあげるTextViewはテキストを表示するだけでなく、例えばボタンのラベルとかにも使われている。 そんなわけで…