トトガノート

All about TOTOGA

スマホ

前回はQuiz6.pdeの大体の構成を解析しましたが、今回は改造します。

技術者時代はカット&トライと言ったような気がしますが、取りあえず取らないといけない所をぶった切って、動作がおかしくなったところを修正していくという方法で、Quiz6.pdeを改造しました。

プレーヤーを6人から3人に減らして、画面上で空いたスペースは問題文のために使います。画面上部のプレーヤーを削除するので、問題文の回転は必要なくなります。

では、変更箇所を列挙します。

1.問題文を増やしたいので、class QuizData の定義文で、String Question を配列にします。
・String Question; → String[] Question;
・Quizdata(String Question, String[] Answers){変更なし} → Quizdata(String[] Question, String[] Answers){変更なし}

2.問題文が長くなるので表示時間を延長
・int textSpeed = 10; → int textSpeed = 2;

3.makePlayers() でプレーヤーを削減
・for(int i=1; i<=6; i++){ → for(int i=1; i<=3; i++){

4.loadQuiz() で問題文の配列を追加(※csvファイルはこれに対応した形にする必要があります)
・if(cell.length!=6){ → if(cell.length!=9){
・String question = cell[1]; → String question = { cell[1], cell[2], cell[3], cell[4]};
・String answers = { cell[2], cell[3], cell[4], cell[5]}; → String answers = { cell[5], cell[6], cell[7], cell[8]};

5.drawTitle()でタイトル画面の変更
・textSize(140); → textSize(100);
・text("Quiz6", baseWidth/2, 300); → text("Quiz03", baseWidth/2, 300);

6.drawQuiz()で逆さまの問題文を削除
・if(phase == PHASE_QUIZ_ANSWER || phase == PHASE_QUIZ_RESULT){} を{}内も含めて丸ごと削除。
・pushMatrix();からbreak; までの9行を削除。

7.drawQuizPlayerInfo() で最初の3プレーヤーを削除
・if(i < 3){} を{}内も含めて丸ごと削除。
・PlayerData player = playerList.get(i); →PlayerData player = playerList.get(i-3);
・text(i+1, 5, 35); → text(i-2, 5, 35);

8.drawQuestion()で問題文の追加
・rect(0, 30, 410, 200, 8); →rect(0, 0, 410, 250, 8);
・rect(0, 30, map(quiztime, 0, quizTimeMax, 0, 410), 4, 8); →rect(0, 0, map(quiztime, 0, quizTimeMax, 0, 410), 4, 8);
・text("問題 " + quizNo, 20, 70); → text("問題 " + quizNo, 20, 40);
・text(quiz.question.string(0, min(quizTime/textSpeed, quiz.question.length())),…を
text(quiz.question[0].string(0, min(quizTime/textSpeed, quiz.question[0].length())),…
text(quiz.question[1].string(0, min(quizTime/textSpeed, quiz.question[1].length())),…
text(quiz.question[2].string(0, min(quizTime/textSpeed, quiz.question[2].length())),…
text(quiz.question[3].string(0, min(quizTime/textSpeed, quiz.question[3].length())),…

9.mousePressed()でマウスのタッチ位置の変更
・for(int i=0; i ・PlayerData player = playerList.get(i); → PlayerData player = playerList.get(i-3);
・int pi = i; → int pi = i+3;
・if(i<=2) pi = 2 - i; は削除
・activePlayerIndex = i; → activePlayerIndex = i-3;
・if(activePlayerIndex < 3){} は{}も含めて丸ごと削除。

以上の変更で、Quiz03.pdeが完成します。


《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
このエントリーをはてなブックマークに追加 mixiチェック

前回までは25日の英検が目標でしたのでソースに手を加えずに間に合わせました。今度は、2月10日前後(?)の認定テスト。クイズの問題文を長くしたいので、ソース(p541のQuiz6.pde)を改造します。

まず第一弾として、画面上部の3プレーヤーを削除し、空いたスペースを問題文表示エリアとします。上部のプレーヤーがいなくなるということは、問題文の逆さ表示も要らなくなります。

その前に、Quiz6.pdeの解析。なにしろ、Processingは初めてですので。

まず、最初が変数群の定義のようです。classとして、QuizDataとPlayerDataを定義し、配列にしています。C言語の構造体と同等のもののようです。

その後の関数群。setup()、draw()、mousePressed()の3つのグループに分けられるかと思います。

setup()は文字通り初期化の関数。画面表示のサイズや背景などの画像を設定しています。その下のレベルの関数として、makePlayers()とloadQuiz()があります。

makePlayers()はPlayerDataの初期設定。配列数6はここで決まります。

draw()は画面表示を行う関数で、何度も繰り返し実行されるようです。下のレベルには、updateFrameStep()、drawTitle()、drawQuiz()があります。

updateFrameStep()は、draw()が実行される周期が一定でないため、プログラム内の時計(フレーム)をその都度補正する働きをしているようです。drawTitle()は、起動してから画面にタッチするまでの間、タイトルを表示します。drawQuiz()はタッチが行われてからの実際のゲームの動きになります。

主なゲームの動きは全てdrawQuiz()に記述されていますから記述量は最も多く、その下にはdrawQuizPlayerInfo()、drawQuestion()、drawAnswer()、setNextQuiz()があります。名前を見ればだいたい機能は想像できます。

mousePressed()は、タブレットならばタッチのイベントが発生した時に実行されるものです。

分かりやすいプログラムだと思います。

《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
このエントリーをはてなブックマークに追加 mixiチェック

前回は、7回タップして喜んでおりましたが、いよいよクイズアプリです。

p541のQuiz6.pdeです。英検対策で英単語を覚えるのが目的なので、ゆくゆくは6名様ではなくお一人様にして画面表示を増やしたいのですが、あとのお楽しみ。csvファイルを編集して、単語帳を作りました。

読み込ませるのも簡単。まず、使い慣れたエクセルで作成。「名前を付けて保存」→「その他の形式」を選び、「ファイルの種類」を「タブ区切り(*.txt)」で保存します。「.txt」形式で保存されたファイルをメモ帳で開き、「名前を付けて保存」で「文字コード」を「UTF-8」にします。最後にこのファイルを「quiz.csv」に名前変更すれば、ソースを書き変えなくてもスンナリ読みこみます。

ソースを見ていて気づいたことですが、p543の記載ではtableを使っていますが、添付のサンプル・プログラムではstringを使っています。両者を比較しますと、二種類のやり方を学ぶことができます。

昔はリングで束ねられた単語カードを作って覚えたものです。娘たちは足し算や九九を覚えるのに使ってるようです。これからはスマホが取って代わるようになるかもしれません(私は、鍼灸師の国家試験対策で、エクセルにVBAで同様の物を作り、ツボとかを覚えました)。




《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
このエントリーをはてなブックマークに追加 mixiチェック

前回は、リンゴを落として喜んでおりましたが、いよいよ実機転送です。

まず、p363でGravity4の動作確認。p364のSDKダウンロードはeclipseを試した時にやっているので、p366でSDKのパスを指定するだけでした。

私が壁にぶち当たったのはp368でした。SDKのパッケージのチェックボックスが、新しいSDKでは構成が変わっています。Toolsの項目がp368のハードコピーよりも増えていまして、Build-toolsが別に選択できるようになっています。私はこれを選択しなかったがために、実行のところでエラーメッセージを浴びることになりました。大元のToolsをチェックしてここは全部インストールしてしまうのが無難なようです。(著者による正誤表参照

次にAndroid端末側の設定です。私の愛機はArrowsX F-10Dで、昨年末に4.2.2にバージョンアップしました。「開発者向けオプション」が消えたことに気づいていたのですが、こんな裏技があったんですね(p370)。

密会(やったことないが)の合図じゃあるまいし「ウソだろ〜」と思って、恐る恐る3回タップしたら、「あと4回です」と出てきました。これは一人でウケました。

娘たちのタブレットも4.2以降のはずなので試してみたら、やはり出てきました。「あと4回です」(笑)。

USBドライバーは富士通でも用意してくれているようでしたが、android_usbwinusb.infに書き加える方法でうまくいきました。

娘たちのタブレットは最初うまくいかなくて、ASUSのホームページでもドライバーが見つけられず、あれこれいじっておりました。USBはMTPモードだったのですがPTPモードに切り替えてみたりしているうちに、MTPの時とPTPの時でPIDが違う番号になっていることに気づきました。両方をandroid_usbwinusb.infに書き加えて、端末を再起動したら、うまくいきました。機種によって、こういうこともあるようです。F-10DはMTPのままでうまく行きましたので、調べていません。

後は特に問題なく、Gravity4AndroidがF-10Dで動きました。

これをやると、スマホにちゃんとインストールされるんですね。アプリ一覧でリンゴのアイコンを発見して、感動してしまいました(*^^)v

《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
このエントリーをはてなブックマークに追加 mixiチェック

前回購入しました本で、プログラミングの調査を再開しました。

今度はeclipseではなく、Processingという開発環境。p36までのインストール(ただ解凍するだけなので、こう呼ぶのが正しいか分からない)は書かれてある通りで難なく成功。

p52までのProcessingの使い方の説明はパラパラと速読して、level1-1のサンプル(images?.pde)を動かしてみました。「百聞は一見に如かず」とはこのことで、動くのを見るととても安心します。何て簡単なソース記述でしょう。

パソコンで動くのは分かりました。時間が無いので、実機(android端末)実装したい…。「本の構成にこだわらず読みたい所から読んでいいよ」的なことが巻頭に書いてありましたので御言葉に甘えてパラパラと見てみたら、p363から説明が書いてあります。

1章のサンプルプログラム(Gravity4.pde)が使われているので(仕方がない!)、1章に戻ってp74までを動作確認。確かにリンゴがバウンドします。しかも、ソース記述は簡単!

リンゴを落としてこんなに喜ぶのは、ニュートンと私くらいかもしれない(笑)。

《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
このエントリーをはてなブックマークに追加 mixiチェック

前回はADTのチュートリアルということで、eclipseという環境の下、アンドロイドのプログラミングの方法を調査しておりました。かつて(私がプログラミングを行っていた十年以上前)の開発環境に比べて、随分整備されたという印象を持ちましたが、やはり一つのものを作り出すにはまだまだ道のりが長いな…と、途方に暮れておりました。

チブル・プロジェクトの最初の目標は、実は(初めて言いますが)、クイズ形式ゲームを作って英単語を娘に覚えさせ、英検合格に導く…というものですが、試験は今月末、とても間に合いそうにない!ゲームのサンプル集を買って改造した方が早いかもしれない!

そこで、ネット検索。そして見つけたのが「遊んで作るスマホゲームプログラミング for Android」でした。表紙がやさしいそうなのと、クイズのサンプルがありそうなので早速購入。

次回からは、この本を見ながらでないと意味がわからない内容になりますが、同じようにこの本を読みながらプログラミングを目指す人のために参考になることを願い、書いていきます。

《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android


◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
このエントリーをはてなブックマークに追加 mixiチェック

私もいろいろな思いつきを現実化しようと、様々なことをやってきました。今回、娘たちにタブレットを使わせるとしたらどんなことができるかな…と想像を膨らませているうちに、またまた思いついたことがあります。名付けて「チブル・プロジェクト」。何が「チブル」なのかは、夢が現実化したときにお話する(その日が来ればいいが)として、まずは始動を宣言したいと思います。

現段階での具体的な作業は、ADTのチュートリアルをやることです。今日の段階でここまできました。javaのプログラミングは出始めのころにちょっとだけトライしましたが、必要に迫られたものでも無かったので、いつの間にか立ち消えになっていました。その頃に比べると、ハードウェアが進化しているので、ソフトウェアの可能性を広がっています。プログラミングも複雑化していますが、やりがいはありそうです。

まあ、頑張ってみます(^O^)/

娘たちはというと,Youtubeで喜んでいます。次女は「フォーチュンクッキー」の練習。



長女は「ハピネス」見て、幸せそう。



スマホでテザリングしてみましたが、充電しながら長時間しようしても意外に発熱はそれほどでもありませんでした。これなら、いけそうです。

◆◆◆公文式小林教室◆山形県東根市◆◆◆
このエントリーをはてなブックマークに追加 mixiチェック

ドコモのセパレート・ケータイ(F-04B)を使っています。ドコモ初のスマホと同時期に発売されたこのケータイ。分離するとタッチパネルのみの薄いケータイになるので、「スマートフォンなんですね?」とよく言われます。つまり、「なんちゃってスマホ」です。

スマホに変えたという人も身近に増えてきて、やっぱりスマホかな…と思っても、24回払いがまだ残っている。

iモードでネット検索というのはどうしても不便で、スマホの人が目の前でサクサク検索しているのを見ると、やはり羨ましい…。何とかならんか…。

ガラケーでも、最近はアプリが結構ありまして、iモードのパケ放題の範囲内でフルブラウザっぽいことができるアプリがあります。315円/月というのもありましたが、日本経済新聞のログインができない(みたいな)ので630円/月のjigブラウザを使ってみました。それでもフルブラウザ対応のパケ放題より安いですからね。

結構快適です。問合せをしても、数時間で回答が返ってくるところが素敵!

聞くところによると、スマホを使えばフルブラウザ対応のパケ放題になってしまうらしい。しかも、自分でアプリを選んでダウンロードして環境を整えていかないといけない部分があるので、忙しい時には面倒だというスマホ・ユーザーの不満(ただ、私はスマホを使っている!という微かな優越感はあるようなのだが)も耳にしました。

私が気になるのは入力がタッチパネルのみだということ。もちろんスマホの場合は、テンキーとかQWERTYとかフリック入力とか変幻自在なわけですが、ボタンが無くて本当に大丈夫だろうか?でも…



この映像見てみると、大丈夫みたいですね。やはり、一年半前のタッチパネルとはレスポンスが違うってことか…

まあ、しばらく「なんちゃってスマホ」で頑張ってみますわ。

《最初から読む》
このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ