忍者ブログ
盛大な独り言日記・自分用メモ2010.11.17~
×

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

のまえにメモ:NSLogの内容は「実行」タブの「コンソール」から確認できます

やっとこさタッチ機能の搭載にたどり着きました。
タッチとか入力ができないと待ち受けも同然だもんな…
例の借りた本読んでたら、以前は
1:EAGLviewでタッチ情報を受信→xxxViewControllerに送る
2:xxxViewControllerでタッチ情報を受信
ってやるみたいでしたが、今のバージョンでは(だいたい4.0.2くらい)
全部xxxViewControllerに記述して大丈夫みたいです。
(参考にさせてもらいました:http://d.hatena.ne.jp/m_hikichi_1969/touch/20101203/1291399249)
そしたらもう最初っから受信だけすればいいような気もするけど
それはひとまず後回しにして、送受信関数をxxxviewControllerに移動させたらそれまで出てたエラーは消えました。

ただログをみてみたらタッチを受信→送信する関数はうまく動いてたのですが
受信するだけの関数のログが出ていないのでなにかおかしいのかも。
また改善できたらメモしにきます。
PR
免許を更新してきたけど、マフラーとコート着たまま写真とってしまったので
とても着膨れた図になってしまった(^o^)

やらかして解決したのでメモ。

用意したもの:背景画像、アイコン画像(透明部分あり)
やったこと:1>背景、2>アイコン の順に画像をテクスチャ登録
      背景、アイコンの順に描画
       ↓
       ↓
      アイコンの透過部分がすぐ下の背景を映さず、背景画像の一部を拡大したような変な画像になった。
scれえn

なんかわからなくてもやもやしてたけれど、画像のテクスチャ登録順を透過画像→背景
に変えたら直りました。データが残ってしまってたとかそういうのかな。わからん。
今はいいけどテクスチャ増えてきたらいろいろ面倒なことになりそう…。きっとちゃんとしたやり方はほかにあるんだろうな。。

そしてこの背景である。なんかはずかしいな…変えようかな。
こういうのに限って作ってるときはノリノリだったりする。…ノリノリで作ったから恥ずかしいのかな。
数字の下にはうしくんがいる。
after

貼るのに苦戦したのでメモ

initでテクスチャ生成
deallocでテクスチャ削除
→どっちともレンダー関数のある方に書く。多分ViewContorollの方
initはないけど代わりになってるっぽいawakeなんちゃらっていう関数があるので
そこでテクスチャ生成する。deallocはそのまま

テクスチャの読み込みとか描画の関数はほかの図形と同じように後付けの
自作ライブラリとかのなかにいつも通りかけばいい

最初
EAGLView.hとEAGLView.mmでテクスチャ変数の宣言とテクスチャ生成と削除を書いて
後付けファイルに描画関数の中身を書いて
ViewContorollerで描画関数を呼び出ししてたとき
ViewController内の描画関数の呼び出しの、引数の中のテクスチャの変数が未定義ってエラーが出てた

一応解決したけど複数テクスチャいるときとかまた違ったこと書かないといけないんだろうな
とりあえず寝ます
1:プロジェクトの.mを.mmに変更する
   →C++が有効になる
2:C++のmmファイルとhファイルを追加。一回作ればいろんなところで使い回せる
3:ライブラリ用のmm,hファイルにいろいろ書き込んでおく。
4:使うファイルの頭の方でヘッダをインポート
5:作った関数を呼び出す。場所はdrawFrame内のglClearの直後

作り途中。。ちょっとVisualStudioっぽいからやってることがちょっとだけわかる。
ハンターランク6になった(^o^)

xCodeで何か描くときは、基本的に三角ポリゴンを使う。
普通のOpenGLのやり方と違って先にポリゴンの頂点座標を配列として書いておく。

drawFrame内の頭の方で
static const GLfloat squareVertices[]={
   頂点1の座標
   頂点2の座標
   頂点3の座標
   頂点4の座標
}

色を変える場合は
static const GLbyte squareColors[]={
   改行して頂点ごとの色を設定できる
}

これで頂点と色を用意したら
glVertexPointer(2, GL_FLOAT, 0, squareVertices);  頂点座標の配列をOpenGLに渡す
glEnableClientState(GL_VERTEX_ARRAY);   配列がセットされたことをOpenGLに伝える
glColorPointer(4, GL_UNSIGNED_BYTE, 0, squareColors);  色の情報をOpenGLに渡す
glEnableClientState(GL_COLOR_ARRAY);   

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);   最後にこれを呼ぶと描画。最後の引数は頂点座標の数。

この方法で書くけどたくさんものがあるときはいちいち書いてるとやってられないのでライブラリとかを使うらしい。
次の記事に書く

[7]  [8]  [9]  [10]  [11]  [12]  [13]  [14]  [15]  [16]  [17
プロフィール
 たごさく(@Ta56)
カレンダー
04 2025/05 06
S M T W T F S
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 31
最新CM
最新記事
最新TB
バーコード
ブログ内検索
最古記事
Admin / Write
忍者ブログ [PR]