Your SlideShare is downloading. ×
0
Corona Caravan Niigata #1 Getting Started
Concept <ul><li>Corona SDK でのアプリ開発を 覚えよう </li></ul><ul><li>Lua の文法は基本だけ </li></ul><ul><li>サンプルコード読みながら 「 Corona のお作法」 を目と指...
Menu <ul><li>Corona SDK とは </li></ul><ul><ul><li>http://jp.anscamobile.com/corona/ </li></ul></ul><ul><li>Warming Up </li>...
Warming Up <ul><li>Lua の文法で大事なことだけ </li></ul><ul><ul><li>Lua 基礎文法最速マスター </li></ul></ul><ul><ul><ul><li>http://handasse.blo...
Warming Up <ul><li>Lua とは </li></ul><ul><ul><li>超軽量言語 </li></ul></ul><ul><ul><li>全部で 200KB 台の言語仕様 </li></ul></ul><ul><ul><...
Warming Up <ul><li>print(hoge) </li></ul><ul><ul><li>どんな言語にもだいたいある感じのアレ </li></ul></ul><ul><ul><li>コマンドラインな Hello World の代...
Warming Up <ul><li>コメント </li></ul><ul><ul><li>ハイフン2つで1行コメント </li></ul></ul><ul><ul><ul><li>--  コメント行 </li></ul></ul></ul><...
Warming Up <ul><li>型 </li></ul><ul><ul><li>nil:  非値 (non-value) </li></ul></ul><ul><ul><li>boolean:  真偽型 </li></ul></ul><u...
Warming Up <ul><li>Lua にありがちな構文 </li></ul><ul><ul><li>for  条件  do hoge() end </li></ul></ul><ul><ul><li>while  条件  do hoge...
Warming Up <ul><li>代入 </li></ul><ul><ul><li>a = b </li></ul></ul><ul><ul><li>a, b, c = 1, 2, 3 </li></ul></ul><ul><ul><li>...
Warming Up <ul><li>テーブル </li></ul><ul><ul><li>t={1,2,3} </li></ul></ul><ul><ul><ul><li>t[1]->1 </li></ul></ul></ul><ul><ul...
Warming Up <ul><li>テーブルでクラスっぽいことする </li></ul><ul><ul><li>f = print i = 1 a = “hello” </li></ul></ul><ul><ul><li>t = {f, i,...
Warming Up <ul><li>関数は複数の値を return 可 </li></ul><ul><ul><li>f = function() local a,b = 1,2 return a,b end </li></ul></ul><u...
Warming Up <ul><li>真偽値 </li></ul><ul><ul><li>偽となる値 </li></ul></ul><ul><ul><ul><li>false </li></ul></ul></ul><ul><ul><ul><l...
Warming Up <ul><li>論理演算子 </li></ul><ul><ul><li>and </li></ul></ul><ul><ul><ul><li>値1  and  値2 </li></ul></ul></ul><ul><ul>...
Warming Up <ul><li>関数の特殊例 </li></ul><ul><ul><li>v:func(a,b) </li></ul></ul><ul><ul><ul><li>v.func(v,a,b) のシンタックスシュガー </li>...
Code Reading <ul><li>http://developer.anscamobile.com/sample-code/getting-started </li></ul>
Hello World <ul><li>display.newImage( ファイル名 ) </li></ul><ul><li>display.newText( 文字列 , left, top, font, fontsize) </li></u...
Hello World - Localized <ul><li>テーブル </li></ul><ul><li>system ライブラリ </li></ul><ul><li>display.newGroup() :insert([index, ]...
Timer <ul><li>event.count </li></ul><ul><li>オブジェクトメソッド (t:timer) </li></ul><ul><ul><li>self </li></ul></ul><ul><li>timer.p...
Clock <ul><li>Runtime:addEventListener( “orientation”,  リスナ ) </li></ul><ul><ul><li>端末傾けると動く! </li></ul></ul><ul><li>timer...
Frame Animation 1 <ul><li>りんごの画像の中心点から壁までの一定距離を使うことで、当たり判定を実現 </li></ul><ul><li>左右の壁にぶつかると x ベクトル、 上下の壁にぶつかると y ベクトルを反転し、進...
Time Animation <ul><li>凄く頑張って物理演算してる </li></ul><ul><ul><li>Q.  何故 Physics 使わないのだろう・・・ </li></ul></ul><ul><ul><li>A. Physic...
Frame Animation 2 <ul><li>Frame Animation 1 の上手い版 </li></ul><ul><li>パラメータを含んだテーブルの数だけボールが増える </li></ul><ul><li>for _,item ...
Upcoming SlideShare
Loading in...5
×

Corona Caravan #1 Nagaoka

1,149

Published on

Corona SDK Sample Code Reading Event.
#1: Getting Started.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,149
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Corona Caravan #1 Nagaoka"

  1. 1. Corona Caravan Niigata #1 Getting Started
  2. 2. Concept <ul><li>Corona SDK でのアプリ開発を 覚えよう </li></ul><ul><li>Lua の文法は基本だけ </li></ul><ul><li>サンプルコード読みながら 「 Corona のお作法」 を目と指で覚える。 </li></ul>
  3. 3. Menu <ul><li>Corona SDK とは </li></ul><ul><ul><li>http://jp.anscamobile.com/corona/ </li></ul></ul><ul><li>Warming Up </li></ul><ul><ul><li>Lua 基礎文法 超 最速マスター </li></ul></ul><ul><li>Code Reading </li></ul><ul><ul><li>Getting Started </li></ul></ul><ul><ul><ul><li>Hello World </li></ul></ul></ul><ul><ul><ul><li>Hello World – Localized </li></ul></ul></ul><ul><ul><ul><li>Timer </li></ul></ul></ul><ul><ul><ul><li>Clock </li></ul></ul></ul><ul><ul><ul><li>Frame Animation-1 </li></ul></ul></ul><ul><ul><ul><li>Time Animation </li></ul></ul></ul><ul><ul><ul><li>Frame Animation-2 </li></ul></ul></ul>
  4. 4. Warming Up <ul><li>Lua の文法で大事なことだけ </li></ul><ul><ul><li>Lua 基礎文法最速マスター </li></ul></ul><ul><ul><ul><li>http://handasse.blogspot.com/2010/02/lua.html </li></ul></ul></ul><ul><ul><li>↑ から更に端折って抜粋 </li></ul></ul>
  5. 5. Warming Up <ul><li>Lua とは </li></ul><ul><ul><li>超軽量言語 </li></ul></ul><ul><ul><li>全部で 200KB 台の言語仕様 </li></ul></ul><ul><ul><ul><li>覚えることも少ない </li></ul></ul></ul><ul><ul><li>他言語への組み込みで活躍 </li></ul></ul><ul><ul><li>ゲーム分野でも強い </li></ul></ul><ul><ul><li>軽量であるが故の高速 </li></ul></ul><ul><ul><ul><li>でも低機能ではない </li></ul></ul></ul><ul><ul><li>ガーベジコレクション搭載 </li></ul></ul><ul><ul><ul><li>ε= \_○ノ イヤッホーゥ! </li></ul></ul></ul>
  6. 6. Warming Up <ul><li>print(hoge) </li></ul><ul><ul><li>どんな言語にもだいたいある感じのアレ </li></ul></ul><ul><ul><li>コマンドラインな Hello World の代表選手 </li></ul></ul><ul><ul><li>なんだかんだで優秀なデバッグ要員 </li></ul></ul>
  7. 7. Warming Up <ul><li>コメント </li></ul><ul><ul><li>ハイフン2つで1行コメント </li></ul></ul><ul><ul><ul><li>-- コメント行 </li></ul></ul></ul><ul><ul><li>ハイフン2つ+大カッコ2つで複数行コメント </li></ul></ul><ul><ul><ul><li>--[[   hoge() --]] </li></ul></ul></ul><ul><ul><ul><li>コメント始まりをハイフン3つにすると複数行コメントが解除されるという謎テクあり </li></ul></ul></ul>
  8. 8. Warming Up <ul><li>型 </li></ul><ul><ul><li>nil: 非値 (non-value) </li></ul></ul><ul><ul><li>boolean: 真偽型 </li></ul></ul><ul><ul><li>number: 数値型 </li></ul></ul><ul><ul><li>string: 文字列型 </li></ul></ul><ul><ul><li>userdata: ユーザーデータ </li></ul></ul><ul><ul><li>function: 関数 </li></ul></ul><ul><ul><li>thread: スレッド </li></ul></ul><ul><ul><li>table: テーブル </li></ul></ul><ul><li>例 </li></ul><ul><ul><li>nil </li></ul></ul><ul><ul><li>true, false </li></ul></ul><ul><ul><li>1,2,3,… </li></ul></ul><ul><ul><li>“ Hello World!” </li></ul></ul><ul><ul><li>( ゚ Д ゚ ) ? </li></ul></ul><ul><ul><li>print() </li></ul></ul><ul><ul><li>( ゚ Д ゚ ) ? </li></ul></ul><ul><ul><li>{1, 2, a=10, “hoge”} </li></ul></ul>
  9. 9. Warming Up <ul><li>Lua にありがちな構文 </li></ul><ul><ul><li>for 条件 do hoge() end </li></ul></ul><ul><ul><li>while 条件 do hoge() end </li></ul></ul><ul><ul><li>if 条件 then hoge() end </li></ul></ul><ul><ul><li>function() hoge=huga end </li></ul></ul><ul><ul><li>for キー , 値 in pairs(t) do hoge() end </li></ul></ul><ul><ul><ul><li>t :テーブル </li></ul></ul></ul>
  10. 10. Warming Up <ul><li>代入 </li></ul><ul><ul><li>a = b </li></ul></ul><ul><ul><li>a, b, c = 1, 2, 3 </li></ul></ul><ul><ul><li>a, b = b, a -- スワップ可 </li></ul></ul><ul><ul><li>local a = 1 </li></ul></ul><ul><ul><li>local p = print() </li></ul></ul><ul><ul><li>local t = {1, 2, 3} </li></ul></ul>
  11. 11. Warming Up <ul><li>テーブル </li></ul><ul><ul><li>t={1,2,3} </li></ul></ul><ul><ul><ul><li>t[1]->1 </li></ul></ul></ul><ul><ul><ul><li>t[2]->2 </li></ul></ul></ul><ul><ul><ul><li>t[3]->3 </li></ul></ul></ul><ul><ul><li>t={“a”,“b”,“c”} </li></ul></ul><ul><ul><ul><li>t[1]->”a” </li></ul></ul></ul><ul><ul><ul><li>t[2]->”b” </li></ul></ul></ul><ul><ul><ul><li>t[3]->”c” </li></ul></ul></ul><ul><ul><ul><li>#t->3 </li></ul></ul></ul><ul><ul><li>t={a=1,b=2,c=3} </li></ul></ul><ul><ul><ul><li>t[“a”]->1 </li></ul></ul></ul><ul><ul><ul><li>t[“b”]->2 </li></ul></ul></ul><ul><ul><ul><li>t[“c”]->3 </li></ul></ul></ul><ul><ul><ul><li>t.a->1 </li></ul></ul></ul><ul><ul><ul><li>t.b->2 </li></ul></ul></ul><ul><ul><ul><li>t.c->3 </li></ul></ul></ul>
  12. 12. Warming Up <ul><li>テーブルでクラスっぽいことする </li></ul><ul><ul><li>f = print i = 1 a = “hello” </li></ul></ul><ul><ul><li>t = {f, i, a} </li></ul></ul><ul><ul><ul><li>t.i->1 </li></ul></ul></ul><ul><ul><ul><li>t.a->”Hello” </li></ul></ul></ul><ul><ul><ul><li>t.f(a)-> コンソールに” Hello” </li></ul></ul></ul><ul><li>継承とかもできるけどメンドイ </li></ul><ul><li>ネストしてさらにそれっぽく </li></ul><ul><ul><li>t={a={b=“hello”}, hoge=print} </li></ul></ul><ul><ul><li>t.a.b->”hello” </li></ul></ul><ul><ul><li>t.hoge(t.a.b)-> コンソールに” hello” </li></ul></ul>
  13. 13. Warming Up <ul><li>関数は複数の値を return 可 </li></ul><ul><ul><li>f = function() local a,b = 1,2 return a,b end </li></ul></ul><ul><ul><li>local a,b,c = f() </li></ul></ul><ul><ul><ul><li>a->1 </li></ul></ul></ul><ul><ul><ul><li>b->2 </li></ul></ul></ul><ul><ul><ul><li>c->nil </li></ul></ul></ul>
  14. 14. Warming Up <ul><li>真偽値 </li></ul><ul><ul><li>偽となる値 </li></ul></ul><ul><ul><ul><li>false </li></ul></ul></ul><ul><ul><ul><li>nil </li></ul></ul></ul><ul><ul><li>真となる値 </li></ul></ul><ul><ul><ul><li>true </li></ul></ul></ul><ul><ul><ul><li>上記以外の全ての値 </li></ul></ul></ul><ul><ul><ul><ul><li>0 も真 </li></ul></ul></ul></ul>
  15. 15. Warming Up <ul><li>論理演算子 </li></ul><ul><ul><li>and </li></ul></ul><ul><ul><ul><li>値1 and 値2 </li></ul></ul></ul><ul><ul><ul><li>真 and 真 -> 値2 </li></ul></ul></ul><ul><ul><ul><li>偽 and 真 -> 値1 </li></ul></ul></ul><ul><ul><li>or </li></ul></ul><ul><ul><ul><li>値1 or 値2 </li></ul></ul></ul><ul><ul><ul><li>真 or 偽 -> 値1 </li></ul></ul></ul><ul><ul><ul><li>偽 or 真 -> 値2 </li></ul></ul></ul><ul><ul><ul><li>デフォルト値代入に使われたりする </li></ul></ul></ul><ul><ul><ul><ul><li>local a = arg or default ↑arg が nil なら default が a に代入される </li></ul></ul></ul></ul>
  16. 16. Warming Up <ul><li>関数の特殊例 </li></ul><ul><ul><li>v:func(a,b) </li></ul></ul><ul><ul><ul><li>v.func(v,a,b) のシンタックスシュガー </li></ul></ul></ul><ul><ul><li>宣言の仕方 </li></ul></ul><ul><ul><ul><li>function v:func(a,b) self.hoge(a) end </li></ul></ul></ul><ul><ul><ul><li>オブジェクト自身を表す「 self 」を使える </li></ul></ul></ul>
  17. 17. Code Reading <ul><li>http://developer.anscamobile.com/sample-code/getting-started </li></ul>
  18. 18. Hello World <ul><li>display.newImage( ファイル名 ) </li></ul><ul><li>display.newText( 文字列 , left, top, font, fontsize) </li></ul><ul><li>オブジェクトのプロパティ </li></ul><ul><li>オブジェクトのメソッド </li></ul>
  19. 19. Hello World - Localized <ul><li>テーブル </li></ul><ul><li>system ライブラリ </li></ul><ul><li>display.newGroup() :insert([index, ]object[, リセットフラグ ]) </li></ul><ul><li>display.newRoundedRect(left, top, width, height, radius) </li></ul>
  20. 20. Timer <ul><li>event.count </li></ul><ul><li>オブジェクトメソッド (t:timer) </li></ul><ul><ul><li>self </li></ul></ul><ul><li>timer.performWithDelay( 遅延ミリ秒 , listener[, 繰り返し回数 ]) </li></ul>
  21. 21. Clock <ul><li>Runtime:addEventListener( “orientation”, リスナ ) </li></ul><ul><ul><li>端末傾けると動く! </li></ul></ul><ul><li>timer.performWithDelay() </li></ul><ul><ul><li>iteration は -1 で無限ループらしい </li></ul></ul><ul><li>os.date で貰える時・分・秒は 1 〜 9 では 1 ケタなので、 2 ケタに揃えるために 0 を付加したりしている </li></ul>
  22. 22. Frame Animation 1 <ul><li>りんごの画像の中心点から壁までの一定距離を使うことで、当たり判定を実現 </li></ul><ul><li>左右の壁にぶつかると x ベクトル、 上下の壁にぶつかると y ベクトルを反転し、進行方向を変える。 </li></ul><ul><li>object:translate(x,y) </li></ul><ul><ul><li>x, y の値の分だけ object を移動させる </li></ul></ul><ul><ul><li>状態変化の結果を定めない点で、 transition.to() とは異なる </li></ul></ul>
  23. 23. Time Animation <ul><li>凄く頑張って物理演算してる </li></ul><ul><ul><li>Q. 何故 Physics 使わないのだろう・・・ </li></ul></ul><ul><ul><li>A. Physics ライブラリ登場以前のサンプル </li></ul></ul><ul><li>time-based というか、タッチ動作を実現するためのイベントリスナの使い方サンプルの色が強い気がする </li></ul><ul><ul><li>確かに物理演算には時間による減衰が表現されているんだけれど・・・ </li></ul></ul>
  24. 24. Frame Animation 2 <ul><li>Frame Animation 1 の上手い版 </li></ul><ul><li>パラメータを含んだテーブルの数だけボールが増える </li></ul><ul><li>for _,item in ipairs( params ) do </li></ul><ul><ul><li>ジェネリック for でボールを生成していく方法が上手い </li></ul></ul><ul><li>ボールの動作自体は Frame Animation1 と同じことやってる </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×