SurfaceViewを使って絵を書き動かすサンプルをコピペして動かしてみた
お疲れ様です。高橋です。
本日はcocos2d-xの3.3rc0を導入しようと試行錯誤したのですが、かなり難易度高い事を身を持って知ったので、明日再チャレンジです。
今日はこちらのページに書いてあったSurfaceViewを使って描画してみるサンプルを試してみようと思います。
いつものようにwebからEclipseにコピペしては、import箇所を修正する等して、Eclipseに怒られる赤や黄色を直していきます。
下の画面は上述したサイトの「さあ、これをやったら動くよ!」という佳境の部分の記載です。
このサイト、初心者にとっては大変ありがたく、分かりやすいページなのですが、たまにソースコードが間違っていたり、コピペミスしている事があるので、途中で「?????」となってしまうのです。
そこは脳内での補完や、コード自体を書き換える事で対応する事が求められます。初心者を強制的にステップアップさせようというサイト作者の憎い心遣いを感じてしまいます。
8と9とでは、それぞれMainActivityとSampleSurfaceViewを直す事が書いてありますが、貼り付けてあるコードが上下同じ物です。
コードはさておき、説明している箇所では
SurfaceViewのクラスです。SurfaceHoloderを取得し、addCallback()メソッドを呼び出しコールバック先のクラス(MySurfaceViewCallback)を設定します。
との事です。
クラス図で言うと、このサイトの作者が実現した事は下のような感じ。
SampleSurfaceViewの中でgetHolderし、holder.addCallback(SampleSurfaceHolderCallbak)って事だと思う。が、うまく動きませんでした。addCallbackでのコールバック先クラスの指定がどうしてもうまくいきませんでした。
ので、苦肉の策として、クラスの作りを下記のように変更。
SampleSurfaceView自体にSurfaceHolder.Callbackをimplementsし、holder.addCallback(this)とやることで、動きました。
public SampleSurfaceView(Context context) {
super(context);
SurfaceHolder holder = getHolder();
holder.addCallback(this);
}
そんなこんなで、最終的にはボールが跳ねるサンプルがエミュ上で動作しました。タイトルがTimerSampleなのはTimerクラスを実験してたときのプロジェクトをそのまま流用したからです。
今回初めてCtrl+F12やCtrl+F11で画面が横になることを知りました。
以上、よろしくお願い致します。
関連記事
-
-
DLリンク付き言い訳提案システムとDL数の関係について
お疲れ様です。高橋です。 DLリンク付きの言い訳提案システムを1週間稼働させ、そ …
-
-
Androidアプリ作りと設計
お疲れ様です。高橋です。 ウォーターフォール型人間である私は、作りたいものをイメ …
-
-
URL付き言い訳提案システム 稼働初日
お疲れ様です。高橋です。 本日から、よりDL数を高める施策として、提案の中にUR …
-
-
街頭インタビュー 実装 #2
お疲れ様です。高橋です。 本日の実装状況 街頭インタビューを構成する要素を、徹底 …
-
-
選挙運動を疑似体験出来るシミュレータ「衆院選2014」を作った、が。
お疲れ様です。高橋です。 2014年11月21日に衆議院が解散され、12月2日に …
-
-
西野カナ風な歌詞を自動生成するアプリ「西野カナかな?」を作ってみた。
お疲れ様です。高橋です。 先日実験した「西野カナは本当に会いたいのか、調べてみた …
-
-
合理的な遅刻の言い訳生成アプリ。
お疲れ様です。高橋です。 寝坊と遅刻連絡について 平日の朝。iPhoneのアラー …
-
-
Win7(64bit)+Unity4.5.5f1で作った物をAndroidエミュで動かしてみた
お疲れ様です。高橋です。 先ほどはcocosを使ったサンプルをエミュで動かす所ま …
-
-
遅刻の言い訳提案システム 第一週最終日
お疲れ様です。高橋です。 今週は稼働→分析→修正→稼働、という繰り返しを何度か実 …
-
-
【完全版】 Androidで広告ID(Advertising ID)を取得する方法
お疲れ様です。高橋です。 非常に長い時間掛けて他人に実機デバッグをやってもらう事 …




