google apps script テストデータ作成
#07 テストデータを作ってみよう (1)
http://dotinstall.com/lessons/basic_google_apps_script/24307
を元に
java script のループを使ってシートをランダムデータで埋める
今回は
テスト結果を書き込んでいき
合格、不合格の判定を行う
入力するデータは
google apps script をつかってランダムデータを
入力する
function initSheet(){
まず、シートの選択
var sheet = SpreadSheetApp.getActiveSheet();
というように
getActiveSheet() でいきなり指定できる
A 氏名
B 点数
とする
同じ人が何度も試験を受けたということにしている
var name = [“taguchi”,”fkoji”,”dotinstall”];
という3人とする
次に、ループを使い、20回受けたことにする
for(var i=1; i<=20; i++){
これで20回ループする
次に、名前をランダムで入力するようにする
sheet.getRange(i,1).setValue(names[Math.floor(Math.random() * name.length)]);
で表示できる
sheet.getRange(i,1)
の部分では
A列の指定になる
1 がA列を指定して
i が 1~20 の番号になる
setValue() でスコアの設定になる
Math.floor() は小数点以下は繰り下げになる
これで、実行すると
Aのところに名前がランダムに入力される
google apps scripts のリファレンスについて
google apps scripts のリファレンスについて
#06 リファレンスを読み解いてみよう
http://dotinstall.com/lessons/basic_google_apps_script/24306
を参考に
google apps script のリファレンスの確認
getActiveSpreadSheet() がどこからきたか
これをみるには
公式ドキュメントをみる
スプレッドシートなら
https://developers.google.com/apps-script/reference/spreadsheet/
を参照
chrome なら Ctrl + f で
ページ内をキーワード検索できるので
getAciveSpreadSheet
で検索すると
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getActiveSpreadsheet()
にあるのが確認できる
リファレンス、ドットインストールを参考に
レンジ指定を変更
var range = shhet.getRange(“A1”);
これを書き換える
今回は、行、列を指定
var range= sheet.getRange(1,2);
そして背景色も変更する
range.setBackground(“#ff0000”);
setBackground() では
CSSのような色の指定が可能
これを実行すると
1行めの2列目、つまり
が100
になり
背景色が変わる
google apps script でシートの値を操作
google apps script でシートの値を操作
#05 シートの値を操作してみよう
http://dotinstall.com/lessons/basic_google_apps_script/24305
を参考に
スプレッドシートのセルの値をスクリプトを使って書き換える
今回は対象を選択して処理をする
function setData(){
}
となる
対象の選択は
もし
スプレッドシートの
A1セルの中を書きたいのなら
var ss = SpreadSheetApp.getActiveSpreadSheet();
var sheet = ss..getActiveShhet();
var range = sheet.getRange(“A1”):;
として
A1セルを選択することができる
選択したA1セルへ値をセットするには
range.setValue(100);
var ss = SpreadSheetApp.getActiveSpreadSheet();
var sheet = ss..getActiveShhet();
var range = sheet.getRange():;
でセル選択
range.setValue();
で値設定
というかんじになる
google apps script でhello world
google apps script でhello world
#03 Hello Worldを表示させよう
http://dotinstall.com/lessons/basic_google_apps_script/24303
を参考に
まずは Google Apps Script で hello world の表示
google apps script は基本的には
java script
まず、
myFunction
を
hello
に変更
次に、
alert(“hello”);
としても、じつは実行されない
これは、java script とはいっても
サーバーサイドで動くため
ブラウザ関連の
alert()
では表示できない
ということで他の方法を使うことになる
メッセージを表示する方法の1つに
Logger.log() がある
Logger.log(“hello world”);
とすると、実行すると
ログにメッセージがでる
このログを確認するには
View > Logs で ログの確認ができる
今回なら
[13-08-17 07:33:04:279 JST] hello world
というかんじ
ログではなく、
Google ドキュメントのスプレッドシートに表示したいのなら
Btowser.msgBox(“hello”);
とすればOK
ちなみに、Browser.まで入力すると
Eclipse みたいに自動で候補を出してくれるので便利
保存して実行すると、
Authorization required
This app needs authorization to run.
Authorize Cancel
となるので
Authorize つまり承認を選択
これを行わないと
スプレッドシートでの表示ができない
すると
View and manage your spreadsheets in Google Drive
と聞かれるので、これを accept する
View and manage your spreadsheets in Google Drive
は
Google Drive のスプレッドシートの表示と管理
という意味
スプレッドシートで実行するには
Tools > Script Manager
で
実行したい sciprt を選択して run を押せば
実行できる
Google Apps Script の開発準備
Google Apps Script の開発準備
#02 開発の準備をしていこう
http://dotinstall.com/lessons/basic_google_apps_script/24302
を参考に
Googleドキュメントのスプレッドシートからスクリプトエディタを立ち上げる
Google Apps Scriptは
google ドキュメントから起動するのが一般的
まず、google drive でドキュメントをつくり
スクリプトを作成していく
Gmailなどをひらいて
ドライブ
をクリックすれば
google ドライブを開ける
ここで CREATE をクリックし
Folder を選択
フォルダ名は GAS_lessons
とする
すると
My Drive の下に
GAS_lessons というフォルダが作成される
次に、CREATE > spreadsheet
でスプレッドシートを作成
Untitled spreaadsheet へカーソルをもっていき
クリックするとファイル名を変更出きるので
MySpreadsheet
へ変更
スクリプトを作成するには
Tools > script editor
どれを作成するか聞かれるので
Blank Project をクリック
すると、スクリプト作成画面になるので
Untitled project をクリックして
MyProject へスクリプト名を変更
最初に Code.js があるので
▼をクリックして
rename を選択し
MyScript に変更する
画面表示を大きくするには
View > Compact controls
を選択
Google Apps Script
Google Apps Script
Google Apps Script
は
google の各サービスを制御するためのスクリプト
Gmail とか font などなど
公式サイトは
http://developers.google.com/apps-script
ここの
REFERENCE
をみることになる
必要な知識は
java script
あと、サーバー側で動くため
とりあえず chrome があって
Google アカウントがあればOK
ドットインストールでとりあつかっているので
これを参考に学習
http://dotinstall.com/lessons/basic_google_apps_script
Vagrant について
Vagrant について
vagrantは、仮想マシンをたちあげるツール
#01 Vagrantとはなにか?
http://dotinstall.com/lessons/basic_vagrant/24101
を元に学習
公式サイトは
http://www.vagrantup.com
必要な知識は
Linux コマンド知識
そして
ruby が必要
vagrant は ruby でできているから
また仮想マシン作成には
そのためにツールが必要
今回は
VirtualBox
ほかにも
VM ware とか Amazon EC2 など
Ubuntu の場合、ソフトウェアセンターから
インストールできるけど
バージョンが少し古くなる
vagrant –version
でバージョン確認できる
ちなみに、ソフトウェアセンターでいれたら
Vagrant version 1.0.1
となりました
Unity について
Unity について
Unity は3Dにつよいゲームエンジン
で
マルチプラットフォーム
公式サイトは
http://japan.unity3d.com
必要な知識は
C#か java script もしくは Boo
ドットインストールでは java script で行う
http://dotinstall.com/lessons/basic_unity
にレッスンがあるので、これを元に
Ubuntu で行ってみる
enchant.js で制限時間設定とゲームオーバー処理
enchant.js で制限時間設定とゲームオーバー処理
#04 制限時間を設けてみよう
http://dotinstall.com/lessons/kuma_catch_enchant_js_v2/21604
を参考に
制限時間の設置と
ゲームオーバー処理を実装
ドットインストールの解説によれば
core.fps は
1秒間あたりのフレーム数になる
fpsは
frame per second の略
これをつかって5秒間表現するには
5 * core.fps
とする
とのこと
まずは、ゲームらしく制限時間を設置
var timeLeft = 5 * core.fps;
これで、5秒になる
今度は、ラベルに残り時間を表示して
java script で制御する
var timeLabel = new Label(‘Time : ?’);
これで、ラベル作成
次に表示する座標を指定
timeLabel.x = 5;
timeLabel.y = 5;
ゲームの時間が進むたびに処理するので
core.on(‘enterframe’, function(){
});
の中に記述する
enterframe イベントは
フレームが更新される度という意味
これについては
http://dotinstall.com/lessons/kuma_catch_enchant_js_v2/21604
を参考に
追記する処理は
timeLeft–;
で減らしていき
timeLabel.text = “Time : ” + timeLeft;
これで減っていく残り時間を表現できる
また、
if(timeLeft <= 0){
}
で残り時間が0になったとき、つまり時間切れの
処理を書く
今回は、アラートでスコアを表示するので
alert('Your score :' + score);
として
ゲームを終了したいので
this.stop();
とする
.stop() でゲームが終了する
作成した残り時間を表示するラベルは
addChild()
で画面に追加しないと表示されないので
core.rootScene.addChild(timeLabel);
とすることで画面に表示されるようになる
これで、実行すると
残り時間がどんどん減っていき
残り時間がゼロでアラートが表示される
この仕組みをつかうことで
制限時間をつけた
パズルゲームなども実装ができるようになる
enchant.js でスコア管理
enchant.js でスコア管理
#03 スコア管理をしてみよう
http://dotinstall.com/lessons/kuma_catch_enchant_js_v2/21603
を参考に
クマをタッチしたときのイベントの設定と
スコア管理の実装
クマの表示ができたので
クマをタッチすると、スコアが1加算され
別のところにクマが表示される
というようにする
スコアの管理をするため
var score =0;
としておく
クマにタッチしたときの処理は
bear.on(‘touchstart’,function(){
タッチしたときの処理
});
となる
.on() は jQuery の関数で
複数イベントの設定などに使われる
http://tacamy.hatenablog.com/entry/2013/03/03/213113
の説明がわかりやすい
touchstart は
スマホに指が触れたときに起こるイベント
これの例と解説は
http://www.webcreativepark.net/javascript/event/touchstart/
を参考に
タッチされたときに score を1増やすには
score++;
スコアを表示するラベルを用意するので
var scoreLabel = new Label(‘Score 0’);
これで、スコアの初期に表示
されるのが
Score 0
となる
http://kurochan-note.hatenablog.jp/entry/2013/01/28/000734
のように、ラベルの中身のフォント、テキストを
後で変更することも可能
次に、作成したラベルを表示する座標を設定
scoreLabel.x = 200;
scoreLabel.y = 5;
これで、設定はできたけど
このままではラベルは画面に表示されない
画面に表示するには
.addChild() を使う
core.rootScene.addChild(scoreLabel);
これで画面にスコアが表示される
タッチされたときに
このスコアの値を変化させたいので
この制御は java script で行う
scoreLabel.text =’Score “+score;
これで、増加した値に内容が書き換えられる
.text はテキスト内容を意味する
また、クマをクリックして
スコアが変化したときに、クマの位置をランダム変更して表示するようにしたいので
this.x = rand(320);
this.y = rand(320);
とすれば
画面のどこかという設定になる
rand() はユーザ関数
320 という値になっているのは
var core = new Core(320, 320);
というように画面を指定したため
最大値が320だから
応用すれば、もぐらたたきのようなゲームを
作成できる