SlideShare a Scribd company logo
それ、CoffeeScriptで
簡単に書けるよ(仮)
    @hidesuke
hidesuke (表)
  • ISPとかネトゲ屋さんで
    スマホ向けゲームを作っ
    ている人
  • ここ2年間くらい仕事で
    特殊なjsしか書いてない
   – Sencha Touch
   – ngGame
   – node.js
   – Unity
Osaki.js
• 会社の有志で集まって楽しくプログラミ
  ングする会
• 別名:『enchant.js部』
hidesuke (裏)
• シャチクミィという同人
  サークルで社畜グッズを
  作っている
• http://please.shachiku.me/
CoffeeScript
CoffeeScript
• JSにコンパイル(変換?)して使う
• Better JavaScript
 – JavaScriptの悪いところの多くが解決してい
   る
 – JSのバッドノウハウとかいちいち覚えてられ
   ん
• 簡潔な記述
• とても小さな言語なのですぐ覚えること
  ができる
詳しくはググれ
で、
今日は
クロージャ
   の話をします。
CoffeeScript +
   enchant.js
        で
   気持ちよく
クロージャが書けた話
クロージャ

クロージャはある関数全体が他の関数(以下、エ
ンクロージャ)の内部で宣言されたときに発生し、
内部の関数はエンクロージャのローカル変数(レ
キシカル変数)を参照する。実行時に外部の関数
が実行された際、クロージャが形成される。ク
ロージャは内部の関数のコードとエンクロージャ
のスコープ内の必要なすべての変数への参照から
なる。

              -- Wikipediaより
なるほど、まったくわからん。
CoffeeScript+enchant.jsでクロージャが気持よくかけた話
わかりやすい解説が!
で、
ある日、
enchant.jsと
きゃっきゃうふふ
してるときに
気付いた
シューティングゲームのN連射弾
かク
けロ
るー
!ジ
 ャ
 で
クロージャで書いてみた




   ご自慢のクロージャ部分
解説(クロージャ部分)
弾の種類を表すcallback関   N連発の指定
     数             初期値はn = 5




                        弾が発射される間隔のフレーム数
                           初期値は10フレーム




                   条件を満たすと弾を発射する
前の弾をうってからの         関数を戻り値として返却する
  経過フレーム数
解説(呼び出し部分)

             this.curtainFire(さっきのクロージャが返却した
             関数)が定義されていれば毎フレーム呼び出す




                   さっきのクロージャにわたす
                   Callback関数(弾を作ってSceneに追加する)

180フレームに一回、クロージャを呼び
          出す
    弾を打つ関数を作ってもらう
N連射弾がうてた!
JSで書いたらこうなった
まとめ
• かるい気持ちでCoffeeScriptとか発言する
  と刺される
• クロージャは全然怖くない
• https://github.com/hidesuke/danmaku.enc
  hant.js
まとめ
• かるい気持ちでCoffeeScriptとか発言する
  と刺される
• クロージャは全然怖くない
• https://github.com/hidesuke/danmaku.enc
  hant.js
宿題
• 『slideshare hidesuke』 でググる
• 『CoffeeScript』でググる
• 『猿でもわかるクロージャ』でググる




             私にもクロージャ
             が書ける!
参考文献
• CoffeeScript
   – http://coffeescript.org/
• CoffeeScript入門 – プログラムdeタマゴ
   – http://d.hatena.ne.jp/nodamushi/20110108/1294518316
• [JavaScript] 猿でもわかるクロージャ超入門 まとめ - DQNEO
  起業日記
   – http://dqn.sakusakutto.jp/2009/01/javascript_5.html
• スライド中の画像は以下を使わせていただきました
   – http://simapantu.blog130.fc2.com/blog-entry-140.html
• Osaki.js (ステマ)
   – http://osakijs.blogspot.jp/

More Related Content

PDF
Introduction of mruby & Webruby script example
PDF
Chefについて数週間勉強してみた
PPT
Memcache Queue
PPTX
CLR/H勉強会44回目 Windows Azureストレージについて
PDF
Creators'night#15今井
PPTX
webアプリケーションフレームワークの話
PDF
Bashで競技プログラミング #w8lt #w8lt4
PDF
apasec001-kawai
Introduction of mruby & Webruby script example
Chefについて数週間勉強してみた
Memcache Queue
CLR/H勉強会44回目 Windows Azureストレージについて
Creators'night#15今井
webアプリケーションフレームワークの話
Bashで競技プログラミング #w8lt #w8lt4
apasec001-kawai

What's hot (20)

PDF
Node.jsでサーバプログラマ デビューしよう
PDF
やってよかったOS作り
ODP
Parascript
PDF
グラフ解析で社長の脳内さらす!
PPTX
As you like, PHP on Azure - お気に召すままに!
PPT
20131012 nodejs
PDF
LT#7 Hello coffeeしてきた
PDF
Gatsby.js完全に理解した
PDF
20150523
PPTX
PHPのキャッシュを使いこなせ!
PPTX
JSでファミコンエミュレータを作った時の話
PDF
「Webサービスのつくり方」 のつくり方
PDF
UZTextView, UZMultilayeredPopoverControllerの解説
PDF
サーバ擬人化ユーザ会Lt資料 qpstudy lite
PDF
アセット作成のワークフロー
PPTX
Vagrant chef
PDF
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
PPT
2009 02 12_flosss_cms解体ショー
PDF
GUI何処行ったんDocker
PDF
Node.jsでサーバプログラマ デビューしよう
やってよかったOS作り
Parascript
グラフ解析で社長の脳内さらす!
As you like, PHP on Azure - お気に召すままに!
20131012 nodejs
LT#7 Hello coffeeしてきた
Gatsby.js完全に理解した
20150523
PHPのキャッシュを使いこなせ!
JSでファミコンエミュレータを作った時の話
「Webサービスのつくり方」 のつくり方
UZTextView, UZMultilayeredPopoverControllerの解説
サーバ擬人化ユーザ会Lt資料 qpstudy lite
アセット作成のワークフロー
Vagrant chef
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
2009 02 12_flosss_cms解体ショー
GUI何処行ったんDocker
Ad

Viewers also liked (17)

PDF
深層学習生き地獄
PDF
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
PDF
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
PDF
Web GLの話
PDF
Kivy with-redux
PDF
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
PDF
Chainerの使い方と 自然言語処理への応用
PDF
GPU上でのNLP向け深層学習の実装について
PDF
On the benchmark of Chainer
PPTX
Deep parking
PDF
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
PDF
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
PDF
マシンパーセプション研究におけるChainer活用事例
PDF
Chainer Update v1.8.0 -> v1.10.0+
PDF
Chainer, Cupy入門
PDF
Deep Learningと画像認識   ~歴史・理論・実践~
PPTX
Chainerを使って細胞を数えてみた
深層学習生き地獄
俺のtensorが全然flowしないのでみんなchainer使おう by DEEPstation
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
Web GLの話
Kivy with-redux
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
Chainerの使い方と 自然言語処理への応用
GPU上でのNLP向け深層学習の実装について
On the benchmark of Chainer
Deep parking
深層学習ライブラリの環境問題Chainer Meetup2016 07-02
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
マシンパーセプション研究におけるChainer活用事例
Chainer Update v1.8.0 -> v1.10.0+
Chainer, Cupy入門
Deep Learningと画像認識   ~歴史・理論・実践~
Chainerを使って細胞を数えてみた
Ad

Similar to CoffeeScript+enchant.jsでクロージャが気持よくかけた話 (20)

PPTX
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
PPTX
JavaScript 非同期処理 入門
PDF
F#+Erlangで簡単なシューティングゲームを作ってみている
PPTX
資料
PDF
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
PPTX
メガ Unity ユーザーミートアップ 2012
PDF
フロント作業の効率化
PDF
桐島、Rubyやめるってよ
PDF
Web制作勉強会 #2
PDF
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
PDF
60fpsアクションを実現する秘訣を伝授 基礎編
PDF
Cocos2d-JSと物理演算で作る横スクロールアクションゲーム #scripty06
PDF
俺のZabbixがこんなに可愛いわけがない(おかわり)
PDF
⑯jQueryをおぼえよう!その2
PPTX
Shiva 〜Nextremerをscale upする機械学習環境〜
KEY
PlayFramework1.x基礎編
PDF
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
PDF
Javascript で暗号化
PDF
Ruby で高速なプログラムを書く
PPTX
俺とCI
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
JavaScript 非同期処理 入門
F#+Erlangで簡単なシューティングゲームを作ってみている
資料
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
メガ Unity ユーザーミートアップ 2012
フロント作業の効率化
桐島、Rubyやめるってよ
Web制作勉強会 #2
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
60fpsアクションを実現する秘訣を伝授 基礎編
Cocos2d-JSと物理演算で作る横スクロールアクションゲーム #scripty06
俺のZabbixがこんなに可愛いわけがない(おかわり)
⑯jQueryをおぼえよう!その2
Shiva 〜Nextremerをscale upする機械学習環境〜
PlayFramework1.x基礎編
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
Javascript で暗号化
Ruby で高速なプログラムを書く
俺とCI

More from Yusuke HIDESHIMA (9)

PPTX
「アレクサ、"リーフスキル"の作り方を教えて」
PDF
文藝バトルイベント「かきあげ!」のご紹介
PDF
継続的デリバリー読書会 14章
PDF
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
PDF
第2回 某社Arduino勉強会 ハンズオン
PDF
継続的デリバリー第11章.Ppt
PDF
継続的デリバリー読書会資料 #1
PPTX
(業務外)ゲーム制作部のススメ
PPTX
Osakijs #01 「enchant.jsハンズオン資料」
「アレクサ、"リーフスキル"の作り方を教えて」
文藝バトルイベント「かきあげ!」のご紹介
継続的デリバリー読書会 14章
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
第2回 某社Arduino勉強会 ハンズオン
継続的デリバリー第11章.Ppt
継続的デリバリー読書会資料 #1
(業務外)ゲーム制作部のススメ
Osakijs #01 「enchant.jsハンズオン資料」

CoffeeScript+enchant.jsでクロージャが気持よくかけた話