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
となりました

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だから
応用すれば、もぐらたたきのようなゲームを
作成できる

enchant.js でゲーム設定

enchant.js でゲーム設定
#02 クマを表示させてみよう
http://dotinstall.com/lessons/kuma_catch_enchant_js_v2/21602
を参考に
ミニゲームの設定
編集するのは main.js
var core = new Core(320,320);
で画面の大きさを設定
core.preload(‘chara1.png’);
として、preload() を使うことで画像を先読みする
言語の早さである fps
これはフレームパーセカンドという意味でこれも設定
core.fps =15;
そして、ゲームの中身を
core.onload = function(){
ゲームのロジック
}
で読み込んで
core.start();
でゲーム開始
今回は、クマを表示するので
var bear = new Sprite(32, 32);
Sprite() は画像を表示するのに使う
http://enchantjs.com/ja/tutorial/lets-start-enchant-js/#ref_4
を参照
bear.x = 10;
bear.y = 10;
で表示する座標を指定
bear.frame = 0;
で今のフレーム数を取得
frame については
http://javascript0.e1blue.net/js/status/51

http://www.ideaxidea.com/archives/2011/04/rpg_3.html
を参考に
元の画像をみるとわかるけど
いくつかの絵が並んでいる
一番左上から0から数えるので
違う絵にしたいのなら
bear.frame = 1;
というように変えてみるとわかりやすい
画像を扱えるように
bear.image = core.assets[‘chara1.png’];
というように
assets で画像を指定
assets[] に関しては
http://enchantjs.com/ja/tutorial/lets-start-enchant-js/#ref_4
を参照
これで。画像の設定ができたので
core.rootScene.addChild(bear);
で画像を追加する
.addChild() で画像を表示している
画像を消すなら.removeChild()
を使う
これで、一度実行すると
画面の左上にクマがでる
ここまで動作確認できたら、今度は配置をランダムにしたいので
乱数を使う
でも、計算は面倒なので
ユーザ関数で rand() という関数を作成する
function rand(n){
return Math.floor(Math.random() * (n+1));
}
とする
Math.floor() は、小数点以下繰り下げにする
つまり -3.6 なら -4
3.6 なら 3 となる
Math.floor() は
http://www.tohoho-web.com/js/math.htm#floor
を参照
Math.random() は
0以上1未満の乱数を生成する
ゼロになることもあるため (n+1) としている
random() に関しては
http://www.tohoho-web.com/js/math.htm#random
を参照
これで、ランダム要素はできたので
表示する座標の変更してランダムにする
bear.x= 10;
bear.y= 10;
これを
bear.x = rand(320);
bear.y = rand(320);
というように画面サイズに変更する
これで、画面をリロードするたびにランダムな位置に
クマが表示されるようになる

enchant.js でゲーム作成

enchant.js でゲーム作成
#01 クマを捕まえるゲームを作ろう
http://dotinstall.com/lessons/kuma_catch_enchant_js_v2/21601
を参考に
ゲームを作るのに便利そうな
enchant.js の学習
以前
facebook の位置情報ゲームの勉強したとき
載っていたので、今回はその復習もかねて実験
enchant.js は
http://enchantjs.com/
からダウンロードできる
ダウンロードしたら
unzip enchant.js-builds-0.7.0.zip
で解凍
この中で必要なものをコピーする
mkdir kuma
cd enchant.js-builds-0.7.0/
cp build/enchant.js ~/kuma/
で enchant.js 本体をコピー
cp images/chara1.png ~/kuma/
でクマの絵をコピー
index.html
main.js
が必要なので今回はサンプルを流用
cp examples/beginner/hellobear/index.html ~/kuma/
cp examples/beginner/hellobear/main.js ~/kuma/
でそれぞれコピー
必要なファイルがコピーできたら
index.html の編集
修正箇所は
ライブラリの読み込みパス
<script type=”text/javascript” src=”../../../build/enchant.js”></script>
となっているけど
同じディレクトリにライブラリをおいたので
<script type=”text/javascript” src=”enchant.js”></script>
となる
また、main.js もわかりやすくするため
enchant();
window.onload = function(){
}
以外のソースは削除しておく