2013年10月31日木曜日

Tizen用アプリの開発

Tizen用アプリの開発が先週の土曜日に無事終了。
やりたい所までは結局できず、出来る技術で出来る所まで作製した。

やりたいこと
1. 皿が画面の色々な場所にランダムに出てくる。
2. その皿をタップして割る。
3. たまに皿以外の画像(オムライス等)が出てくるので、それはスワイプする。
4. 1〜4を繰り返し、何枚割れるかを競う。
画像が出てから数秒以内に皿を割らないとゲーム終了。
また、皿をスワイプ、もしくは皿以外をタップしたもゲーム終了。

そんな内容で、出来るだろうと思ったが、出来なかった。

自分の割り振りは、画像がランダムに変更される。
ex. 皿→皿→皿→オムライス→皿→皿→オムライス→皿→皿→皿→皿→・・・
みたいな感じで、これは配列を使って何とかできた。
スワイプとタップの違いによる処理も友達のアイデアで出来た。

出来なかったのが、「2の皿をタップしたら割れた皿が表示される」ところだ。
一見簡単そうだが、他のプログラミングと組み合わせると上手くいかなかった。
これは今後の課題で、いつか完成させる!


結局このゲームから、下記に変更した。
○皿とオムライスが出てきて、皿はタップ、オムライスはスワイプしたら数字が増え、100まで行くと皿が割れるというゲームに変更した。タップとスワイプを間違えたら、数字が0になる。

//クリック時の画像切り替え関数
function clickchangeIMG(){
 console.log("changeIMG" + cnt);
 if (cnt == 0) { //皿の画像1
 count();
 };
 if (cnt == 1) { //皿の画像2
 count()
 };
 if (cnt == 2) { オムライスの画像1
 reset()
 };
 if (cnt == 3) { オムライスの画像2
 reset()
 };
 i = Math.floor(Math.random() * 100);
 cnt = 0; //0~69 70%
 if (i > 70) cnt = 1; //70~79 10%
 if (i > 80) cnt = 2; //80~89 10%
 if (i > 85) cnt = 3; //89~99 10%
 console.log(cnt);
 document.getElementById("plate").src=imgs[cnt].src;

};

function count() {
num ++;
$("#messeage-count").text(num + "");
if (num == 100){
document.getElementById("plate").src=imgs[4].src; //割れた皿の画像
sound1();
callbacks;
}else{
}
}

上記のソース(一部のみを抜粋)を記載したが、その中でcallbacksを書いた。ほとんど意味分からず記載してみたら、上手くいった。
エラーはでるが、callbacksと書かないと100回目に画像が切り替わらないのだ。
これも今後の課題だ。


ひとまず上手く動いたということで、10月締め切りのtizenのprizeに申し込むため、友達がtizenに提出してくれた。
そこでも色々トラブルがあり、大変みたいだ。

何とか一緒に解決したのが、tizenから「Back Keyが動かない」と言うものだ。ずっと「戻るボタン」のことだと思っており、動くはずなのにと思っていたが、ネットで検索するとtizenにはハード自身に見えにくいがBack Keyが存在することが分かった。それを昨日させるコードを記載し、動作確認も昨日でき、無事提出完了。
後はtizenからの返事を待つだけだ。

2013年10月10日木曜日

足し算電卓アプリ ~2日目~

足し算電卓アプリ2日目だが、全然進まない。


講義では

index.htmlに
<button type="button" id="calcBtn">計算</button>

と習ったが、色々と触るうちに

<button type="button" id="1ID" value="1">1</button>
だと数字になる(と思う)ことを発見した。

2013年10月9日水曜日

足し算電卓アプリ ~1日目~

先週の講義でBMIの計算アプリの作成を学んだ。
それを応用して、足し算電卓アプリの作成にチャレンジ。

「先生がボタンを使って・・・」っておっしゃっていたので、そこから想像して作成。


雰囲気のみ出来たが、何も出来ていない。
Buttonを数字にしたが、NaNと出てるので、そこからダメなのだと思う。

次はどこかを参考にして作成しよう。

2013年10月6日日曜日

皿割りアプリ作り ランダムに画像表示と確率変更

皿割りアプリ作り

参考のソースサイトを見ながら、ランダムに画像を表示させる方法と、その確率を変更させるプログラムを組んだ。
ここまで作るのに半日くらいかかったー。
でも、動いたときの感動が半端なかった。


//画像を配列に格納する
var img = new Array(); //Array 配列

img[0] =  new Image();
img[0].src = "./images/judge1.png";
img[1] = new Image();
img[1].src = "./images/judge2.png";
img[2] = new Image();
img[2].src =  "./images/judge3.png";
img[3] = new Image();
img[3].src = "./images/judge4.png";

//画像番号用のグローバル変数
var i = 0; //なぜグローバル変数?なぜ0を使用?

//画像切り替え関数
function changeIMG(){

//ランダムに画像を表示する
i = Math.floor(Math.random() * 100);
cnt = 0; //0~1 2%
if (i > 1) cnt = 1; //2~3 2%
if (i > 3) cnt = 2; //4~5 2%
if (i > 5) cnt = 3; //6~99 94%


//画像を切り替える
document.getElementById("saraID").src=img[cnt].src;
}


<参考サイト>
http://www.pori2.net/js/DOM/3.html#top
http://www.shurey.com/js/samples/2_msg4.html

講義とTizenのアプリ開発

昨日の出来事。

講義はBMI計算機を作成と解説。
予習で簡単な二つの数字の足し算ができるソフトを作ったが、上手く起動しなかった。
先生に見てもらった所、下記の間違いがあった。

$(this).on("click"."#resetBtn", resetFunction);

$(this).on("click","#resetBtn", resetFunction);

ドットとコンマの打ち間違い。
ソースが無く、自分で作成したので、ずっと計算の所が違うと思ったが、そこは合っていた。

先生はまず、console画面でのエラーで、位置や内容を推測していた。
今度からはエラー画面もしっかり読もう。


また、Tizenのプライズが11/1締め切りである。
そこで講義にいる出ている人に募集をかけ、チームを組んだ。

講義が終わった後、何を作るかから始めたが、意外に1時間くらいで内容は決まった。
目標となるアプリがあると、それを作るために勉強するため、すごく勉強になる。

初心者しかいないので、期間はなさそうだが、期間があるのも、ぐだぐだやらなくなるため、良いと感じた。

2013年10月3日木曜日

地図を使ったお買い物リストを作成~3日目~

地図を使ったお買い物リストをマニュアルに沿ってプログラミングした。
完成!のはず。



このアプリではgoogleマップを取り込んだり、ピンを置いたり、ピンを記憶させたり、ピンに名前を付けれたりと色々な要素が入っている。


今回のタイプミス

var_key = $(this).parents("#todoItem").attr("key");
var _key = $(this).parents("#todoItem").attr("key");

varと_keyの間にスペース入れ忘れた。
書き写しているだけだからこんなミスが出てしまう。


これまでで一番長いプログラミング。
HTMLは80行で、Javascriptは170行。
170行って大変ですね。

でも、初めに比べてタイプミスが減っている。
少しずつだが何をやっているかの意味も分かる。

このマップ作りにまで解説が行くか分からないが、土曜日にある講義が楽しみだ。

地図を使ったお買い物リストを作成~2日目~

地図を使ったお買い物リストをマニュアルに沿ってプログラミングした。


今回のタイプミス

$(this).on("click", "#gmapNowPlace", funcion(e){

$(this).on("click", "#gmapNowPlace", function(e){

以前も同じ間違いをした気がするー

<div class="formItems">
<p>TODOの名前</p>
<p><input type="text" id="placeName"></p>
<p>場所</p>
<p><input type="text" id="placeName"></p>
<p>
<button id="findPlace">検索</button>
<button id="smapNowPlace">現在地</button>
</p>
</div>

<div class="formItems">
<p>TODOの名前</p>
<p><input type="text" id="todoName"></p>
<p>場所</p>
<p><input type="text" id="placeName"></p>
<p>
<button id="findPlace">検索</button>
<button id="smapNowPlace">現在地</button>
</p>
</div>
同じ名前を書いてしまった。

2013年10月2日水曜日

地図を使ったお買い物リストを作成~1日目~

地図を使ったお買い物リストをマニュアルに沿ってプログラミングした。


今回のタイプミス
index.html
<link rel="stylesheet" href="./css/jquery.mobile-1.1.0.min.scc"/>

<link rel="stylesheet" href="./css/jquery.mobile-1.1.0.min.css"/>
ミスのままだとボタンの配置が縦に並んだ。

config.js
$.mobile.lostview.prototype.options.filterPlaceholder="フィルタキーワード";

$.mobile.listview.prototype.options.filterPlaceholder="フィルタキーワード";
ミスのままだとhtmlのヘッダーが黒背景の白文字にならなかった(背景色なしの黒文字だった)。