SlideShare une entreprise Scribd logo
1  sur  42
ドッターのためのプログラミング
   なにそれおいしいの
    TwitterID:manaten
    http://manaten.net
今日はなすこと
   プログラムとはなんだ
       どんなものか、イメージできる程度に
       プログラミングできるようになるわけではな
        いです
   ドッターに便利なプログラミング
       幾つか使ったことのあるサンプルを紹介
   あとEDGE2の紹介もします
この講演の対象者
   プログラムなにそれおいしいのなドッター
       プログラムってなんだお(^ω^ )
       ゲームが作りたいけど最初の一歩が・・・
       プログラマと仕事する人
   プログラムをドット絵に活用してみたい人
   あくまで知らない人向け
       プログラムバリバリな人にはつまらないかも
       プログラムが書けるようにはならないと思いま
        す
プログラムってなに
プログラムってなに
   PCで動いてるものは、全部プログラム
       WindowsなどのOS
       PowerPointなどのアプリケーション
       ドッター必需品のEDGE, Galeなど
   ゲーム機や携帯電話の中身も
プログラミングってなあに
プログラミングってなあに
   PCにやってほしいこと(を書くこと)!
       でもいきなり、「プレゼンを表示して」とか、
        「ぼくのかんがえたさいきょうのゲームをう
        ごかせ」とかじゃダメ
       PCに理解できるように書かなきゃダメ


        足をお舐め
プログラミングってなあに
   じゃあ、どんなふうに書くのさ
プログラミングってなあに
   じゃあ、どんなふうに書くのさ
       やってほしいこと=目的地、プログラム=道筋
プログラミングってなあに
   じゃあ、どんなふうに書くのさ
       やってほしいこと=目的地、プログラム=道筋
                      駅を北口に出る

                      突き当りを左へ

                    マクドナルドの角を右へ

                      突き当りを右へ

                    セブンイレブンの角を左へ

                      突き当りを左へ
プログラミングってなあに
   じゃあ、どんなふうに書くのさ
       やってほしいこと=目的地、プログラム=道筋
                      駅を北口に出る

                      突き当りを左へ

                    マクドナルドの角を右へ

                      突き当りを右へ

                    セブンイレブンの角を左へ

                      突き当りを左へ
簡単な例
   三角形の面積を計算し表示するプログラム
       底辺3、高さ4の場合


          3×4を計算

        上の結果を2で割る

        上の結果を画面に表示
簡単な例
   三角形の面積を計算し表示するプログラム
       底辺3、高さ4の場合


          3×4を計算
                      val x = 3 * 4
        上の結果を2で割る     val area = x / 2
                      println(area)
        上の結果を画面に表示
簡単な例
   三角形の面積を計算し表示するプログラム
       底辺3、高さ4の場合
          3×4を計算
                        val x = 3 * 4
        上の結果を2で割る       val area = x / 2
                        println(area)
        上の結果を画面に表示




                    6
アクションゲームの例


Bボタンでジャンプ
            敵にあたったら痛い




  十字キーで移動
アクションゲームの例
   大雑把に説明すると・・・
             ボタン入力を受け取る

     方向キーなら移動する        Bボタンならジャンプ

               敵を移動させる

     敵に触れてたらダメージ       敵を踏んづけてたら攻撃

                  以上繰り返し
アクションゲームの例
   大雑把に説明すると・・・
             ボタン入力を受け取る

     方向キーなら移動する        Bボタンならジャンプ

               敵を移動させる

     敵に触れてたらダメージ       敵を踏んづけてたら攻撃

                  以上繰り返し
アクションゲームの例
   ほんとは、もっと複雑

      敵を移動させる
アクションゲームの例
   ほんとは、もっと複雑

      敵を移動させる
                    敵の座標を計算


                 敵の画面上の位置を計算


                 敵の画象を新しい位置に表示
つまり、プログラムってなんじゃ

   基本的には処理の流れ
       〇〇したら、× ×する。そして△ △する。
       枝分かれしたり繰り返したりすることで、複
        雑なこともできるよ
       複雑なものも簡単な処理の積み重ねでできて
        るよ
プログラミング言語
   プログラムを記述するためのもの
       用途によって様々なものが存在
           動作が早かったり、ある事柄を簡単に書けたり
           目的や、プログラマの趣味によって選択
       たくさんあるよ!
           C, C++, C#, Java, JavaScript, PHP, Python, BASIC,
            Ruby, Perl, ActionScript, Scala, Haskell, Lua,…
       ドット絵で言うと、ツールに近い
           EDGEを使うか、Galeを使うか
いろいろなプログラミング言語

   なんでも素早く    掲示板など、
     こなす。    サーバー言語の
    かなり硬派。     人気者。




      柔軟に     柔軟かつ
   なんでもこなす   スピーディな
     便利屋。    若手ホープ。
いろいろなプログラミング言語

int x = 3 * 4;        $x = 3 * 4;
int area = x / 2;     $area = $x / 2;
printf(“%d”, area);   echo $area;


          C                     PHP



x = 3 * 4             val x = 3 * 4
area = x / 2          val area = x / 2
puts area             println(area)


         Ruby                   Scala
ドッターのためのプログラミング

   じゃあ実際どんな厄にたつの?
   いくつかの例
       たくさんの画像をひとつに纏める!
       画像のフォーマットを揃える
       画像を合成してエフェクトを作る!
       おまけ・パレットで遊ぶ!
たくさんの画像をひとつに纏める
たくさんの画像をひとつに纏める
たくさんの画像をひとつに纏める

    画像ファイルを読み込む

    結合後のの大きさの空画象を
          作る

    読み込んだ画象をそれぞれ空
      画像に配置していく

    配置が終わった画象をファイ
        ルに書き出す
たくさんの画像をひとつに纏める
たくさんの画像をひとつに纏める
          画像ファイルを読み込む




         結合後のの大きさの空画象を
               作る



         読み込んだ画象をそれぞれ空
           画像に配置していく



         配置が終わった画象をファイ
             ルに書き出す
画像のフォーマットを揃える



                 24bit BMP




8bit GIF



           8bit PNG
画像のフォーマットを揃える



                 24bit BMP                      32bit PNG




8bit GIF                     32bit PNG



           8bit PNG                      32bit PNG
画像のフォーマットを揃える

    画像ファイルを読み込む

   それぞれに対し、同じ大きさ
   の空画象を同じフォーマット
        で作る

   読み込んだ画象をそれぞれ描
       き込んでいく

   配置が終わった画象をファイ
       ルに書き出す
画像のフォーマットを揃える
画像のフォーマットを揃える


         画像ファイルを読み込む

        それぞれに対し、同じ大きさ
        の空画象を32bitPNGで作る

        それぞれ、読み込んだ画象を
           それぞれ描き込む

        配置が終わった画象をファイ
            ルに書き出す
画像を合成してエフェクトを作る




元絵1   元絵2    出力
画像を合成してエフェクトを作る

    画像ファイルを読み込む

    出力用の同じサイズの画像を
         用意する

    読み込んだ画象のすべてのピ
    クセルに対して、それぞれ足
    しあわせた値を出力用の画像
       に描き込んでいく

    配置が終わった画象をファイ
        ルに書き出す
画像を合成してエフェクトを作る
画像を合成してエフェクトを作る

          画像ファイルを読み込む


         出力用の同じサイズの画像を
              用意する



         読み込んだ画象のすべてのピ
         クセルに対して、それぞれ足
         しあわせた値を出力用の画像
            に描き込んでいく


         配置が終わった画象をファイ
             ルに書き出す
おまけ・パレットで遊ぶ
まとめ
   プログラミングはなんなんだ
       PCにやってほしいことを教えること
       教えるための言語=プログラミング言語
   プログラミングは面白いよ!
       アイデア次第でなんでもできるよ
       面白いドット絵、プログラム、(出来ればゲー
        ム)を作ったら教えてね!
おまけ
   EDGE2の布教
ドッターのためのプログラミングなにそれおいしいの

Contenu connexe

Similaire à ドッターのためのプログラミングなにそれおいしいの

アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
Kunimasa Noda
 
「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキスト「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキスト
Tairo Moriyama
 
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
Mori Keita
 
Hokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slideHokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slide
Tohru Shinohara
 

Similaire à ドッターのためのプログラミングなにそれおいしいの (20)

ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
とことんF#よぷよ! F# + XNA ゲームプログラミング入門
とことんF#よぷよ!  F# + XNA ゲームプログラミング入門とことんF#よぷよ!  F# + XNA ゲームプログラミング入門
とことんF#よぷよ! F# + XNA ゲームプログラミング入門
 
Html5で9parts
Html5で9partsHtml5で9parts
Html5で9parts
 
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
 
1.29.user,user,user
1.29.user,user,user1.29.user,user,user
1.29.user,user,user
 
openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
 
ふるたに流プログラミング学習法
ふるたに流プログラミング学習法ふるたに流プログラミング学習法
ふるたに流プログラミング学習法
 
岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料
 
20150725 オープンキャンパス資料
20150725 オープンキャンパス資料20150725 オープンキャンパス資料
20150725 オープンキャンパス資料
 
「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキスト「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキスト
 
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
 
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 1
 
Oitec
OitecOitec
Oitec
 
0720 abc seminar
0720 abc seminar0720 abc seminar
0720 abc seminar
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
 
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
 
OpenCVとRGB-Dセンサで作ろう壁面タッチパネル
OpenCVとRGB-Dセンサで作ろう壁面タッチパネルOpenCVとRGB-Dセンサで作ろう壁面タッチパネル
OpenCVとRGB-Dセンサで作ろう壁面タッチパネル
 
Hokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slideHokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slide
 

ドッターのためのプログラミングなにそれおいしいの

  • 1. ドッターのためのプログラミング なにそれおいしいの TwitterID:manaten http://manaten.net
  • 2. 今日はなすこと  プログラムとはなんだ  どんなものか、イメージできる程度に  プログラミングできるようになるわけではな いです  ドッターに便利なプログラミング  幾つか使ったことのあるサンプルを紹介  あとEDGE2の紹介もします
  • 3. この講演の対象者  プログラムなにそれおいしいのなドッター  プログラムってなんだお(^ω^ )  ゲームが作りたいけど最初の一歩が・・・  プログラマと仕事する人  プログラムをドット絵に活用してみたい人  あくまで知らない人向け  プログラムバリバリな人にはつまらないかも  プログラムが書けるようにはならないと思いま す
  • 5. プログラムってなに  PCで動いてるものは、全部プログラム  WindowsなどのOS  PowerPointなどのアプリケーション  ドッター必需品のEDGE, Galeなど  ゲーム機や携帯電話の中身も
  • 7. プログラミングってなあに  PCにやってほしいこと(を書くこと)!  でもいきなり、「プレゼンを表示して」とか、 「ぼくのかんがえたさいきょうのゲームをう ごかせ」とかじゃダメ  PCに理解できるように書かなきゃダメ 足をお舐め
  • 8. プログラミングってなあに  じゃあ、どんなふうに書くのさ
  • 9. プログラミングってなあに  じゃあ、どんなふうに書くのさ  やってほしいこと=目的地、プログラム=道筋
  • 10. プログラミングってなあに  じゃあ、どんなふうに書くのさ  やってほしいこと=目的地、プログラム=道筋 駅を北口に出る 突き当りを左へ マクドナルドの角を右へ 突き当りを右へ セブンイレブンの角を左へ 突き当りを左へ
  • 11. プログラミングってなあに  じゃあ、どんなふうに書くのさ  やってほしいこと=目的地、プログラム=道筋 駅を北口に出る 突き当りを左へ マクドナルドの角を右へ 突き当りを右へ セブンイレブンの角を左へ 突き当りを左へ
  • 12. 簡単な例  三角形の面積を計算し表示するプログラム  底辺3、高さ4の場合 3×4を計算 上の結果を2で割る 上の結果を画面に表示
  • 13. 簡単な例  三角形の面積を計算し表示するプログラム  底辺3、高さ4の場合 3×4を計算 val x = 3 * 4 上の結果を2で割る val area = x / 2 println(area) 上の結果を画面に表示
  • 14. 簡単な例  三角形の面積を計算し表示するプログラム  底辺3、高さ4の場合 3×4を計算 val x = 3 * 4 上の結果を2で割る val area = x / 2 println(area) 上の結果を画面に表示 6
  • 15. アクションゲームの例 Bボタンでジャンプ 敵にあたったら痛い 十字キーで移動
  • 16. アクションゲームの例  大雑把に説明すると・・・ ボタン入力を受け取る 方向キーなら移動する Bボタンならジャンプ 敵を移動させる 敵に触れてたらダメージ 敵を踏んづけてたら攻撃 以上繰り返し
  • 17. アクションゲームの例  大雑把に説明すると・・・ ボタン入力を受け取る 方向キーなら移動する Bボタンならジャンプ 敵を移動させる 敵に触れてたらダメージ 敵を踏んづけてたら攻撃 以上繰り返し
  • 18. アクションゲームの例  ほんとは、もっと複雑 敵を移動させる
  • 19. アクションゲームの例  ほんとは、もっと複雑 敵を移動させる 敵の座標を計算 敵の画面上の位置を計算 敵の画象を新しい位置に表示
  • 20. つまり、プログラムってなんじゃ  基本的には処理の流れ  〇〇したら、× ×する。そして△ △する。  枝分かれしたり繰り返したりすることで、複 雑なこともできるよ  複雑なものも簡単な処理の積み重ねでできて るよ
  • 21. プログラミング言語  プログラムを記述するためのもの  用途によって様々なものが存在  動作が早かったり、ある事柄を簡単に書けたり  目的や、プログラマの趣味によって選択  たくさんあるよ!  C, C++, C#, Java, JavaScript, PHP, Python, BASIC, Ruby, Perl, ActionScript, Scala, Haskell, Lua,…  ドット絵で言うと、ツールに近い  EDGEを使うか、Galeを使うか
  • 22. いろいろなプログラミング言語 なんでも素早く 掲示板など、 こなす。 サーバー言語の かなり硬派。 人気者。 柔軟に 柔軟かつ なんでもこなす スピーディな 便利屋。 若手ホープ。
  • 23. いろいろなプログラミング言語 int x = 3 * 4; $x = 3 * 4; int area = x / 2; $area = $x / 2; printf(“%d”, area); echo $area; C PHP x = 3 * 4 val x = 3 * 4 area = x / 2 val area = x / 2 puts area println(area) Ruby Scala
  • 24. ドッターのためのプログラミング  じゃあ実際どんな厄にたつの?  いくつかの例  たくさんの画像をひとつに纏める!  画像のフォーマットを揃える  画像を合成してエフェクトを作る!  おまけ・パレットで遊ぶ!
  • 27. たくさんの画像をひとつに纏める 画像ファイルを読み込む 結合後のの大きさの空画象を 作る 読み込んだ画象をそれぞれ空 画像に配置していく 配置が終わった画象をファイ ルに書き出す
  • 29. たくさんの画像をひとつに纏める 画像ファイルを読み込む 結合後のの大きさの空画象を 作る 読み込んだ画象をそれぞれ空 画像に配置していく 配置が終わった画象をファイ ルに書き出す
  • 30. 画像のフォーマットを揃える 24bit BMP 8bit GIF 8bit PNG
  • 31. 画像のフォーマットを揃える 24bit BMP 32bit PNG 8bit GIF 32bit PNG 8bit PNG 32bit PNG
  • 32. 画像のフォーマットを揃える 画像ファイルを読み込む それぞれに対し、同じ大きさ の空画象を同じフォーマット で作る 読み込んだ画象をそれぞれ描 き込んでいく 配置が終わった画象をファイ ルに書き出す
  • 34. 画像のフォーマットを揃える 画像ファイルを読み込む それぞれに対し、同じ大きさ の空画象を32bitPNGで作る それぞれ、読み込んだ画象を それぞれ描き込む 配置が終わった画象をファイ ルに書き出す
  • 36. 画像を合成してエフェクトを作る 画像ファイルを読み込む 出力用の同じサイズの画像を 用意する 読み込んだ画象のすべてのピ クセルに対して、それぞれ足 しあわせた値を出力用の画像 に描き込んでいく 配置が終わった画象をファイ ルに書き出す
  • 38. 画像を合成してエフェクトを作る 画像ファイルを読み込む 出力用の同じサイズの画像を 用意する 読み込んだ画象のすべてのピ クセルに対して、それぞれ足 しあわせた値を出力用の画像 に描き込んでいく 配置が終わった画象をファイ ルに書き出す
  • 40. まとめ  プログラミングはなんなんだ  PCにやってほしいことを教えること  教えるための言語=プログラミング言語  プログラミングは面白いよ!  アイデア次第でなんでもできるよ  面白いドット絵、プログラム、(出来ればゲー ム)を作ったら教えてね!
  • 41. おまけ  EDGE2の布教