Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ノンプログラマーのためのプログラミング講座 第4回「JavaScriptでゲーム開発」

Avatar for Fushimi Ryohei Fushimi Ryohei
November 21, 2013
190

ノンプログラマーのためのプログラミング講座 第4回「JavaScriptでゲーム開発」

Avatar for Fushimi Ryohei

Fushimi Ryohei

November 21, 2013
Tweet

More Decks by Fushimi Ryohei

Transcript

  1. Hackers’ Cafe ॾ஫ҙ ɾϞόΠϧϧʔλ 8J."9 FNPCJMF ςβ ϦϯάͳͲ ͸ిݯΛ੾͍ͬͯͩ͘͞ ɾձ৔ͷແઢ-"/Λར༻͍ͯͩ͘͠͞

    44*%HFOSPODBGF ύεϫʔυCVOSJZVHP ઀ଓํ๏͕෼͔Βͳ͍ํ͸ελοϑͷํ·Ͱ 13೥3݄25೔݄༵೔
  2. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ 13೥3݄25೔݄༵೔
  3. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ 13೥3݄25೔݄༵೔
  4. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔
  5. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔
  6. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔
  7. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔
  8. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔
  9. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ 13೥3݄25೔݄༵೔
  10. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ 13೥3݄25೔݄༵೔
  11. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔
  12. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ ্݄० ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ ݄Լ० ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ ্݄० ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔
  13. ࿈བྷݩ ࿈བྷઌ Ώ͏͡ ·ΏΈ Ώ͏͡ ͱ΋Α ·ΏΈ Α͏͚͢ Α͏͚͢ ͨ͘΍

    Α͏͚͢ Έ͞ͱ ͱ΋Α ͻΖ͠ ͱ΋Α ΏΈ͜ ࢯ໊ ి࿩൪߸ ·ΏΈ YYYYYYYYY ͱ΋Α YYYYYYYYY Α͏͚͢ YYYYYYYYY ͨ͘΍ YYYYYYYYY Έ͞ͱ YYYYYYYYY ͻΖ͠ YYYYYYYYY ΏΈ͜ YYYYYYYYY 13೥3݄25೔݄༵೔
  14. ࿈བྷݩ ࿈བྷઌ Ώ͏͡ ·ΏΈ Ώ͏͡ ͱ΋Α ·ΏΈ Α͏͚͢ Α͏͚͢ ͨ͘΍

    Α͏͚͢ Έ͞ͱ ͱ΋Α ͻΖ͠ ͱ΋Α ΏΈ͜ ࢯ໊ ి࿩൪߸ ·ΏΈ YYYYYYYYY ͱ΋Α YYYYYYYYY Α͏͚͢ YYYYYYYYY ͨ͘΍ YYYYYYYYY Έ͞ͱ YYYYYYYYY ͻΖ͠ YYYYYYYYY ΏΈ͜ YYYYYYYYY 13೥3݄25೔݄༵೔
  15. ࢯ໊ ి࿩൪߸ ࿈བྷݩ ·ΏΈ YYYYYYYYY Ώ͏͡ ͱ΋Α YYYYYYYYY Ώ͏͡ Α͏͚͢

    YYYYYYYYY ·ΏΈ ͨ͘΍ YYYYYYYYY Α͏͚͢ Έ͞ͱ YYYYYYYYY Α͏͚͢ ͻΖ͠ YYYYYYYYY ͱ΋Α ΏΈ͜ YYYYYYYYY ͱ΋Α 13೥3݄25೔݄༵೔
  16. 461&3."3*0 ϚϦΦ ΫϦϘʔ ϒϩοΫ ʁϒϩοΫ είΞ ίΠϯ ϫʔϧυ λΠϜ ԡͨ͠ޙͷ

    ʁϒϩοΫ Ωϊί େϚϦΦ ϑϥϫʔ ϑΝΠΞ ϚϦΦ 13೥3݄25೔݄༵೔
  17. ϚϦΦ ΫϦϘʔ ϒϩοΫ ʁϒϩοΫ είΞ ίΠϯ ϫʔϧυ λΠϜ ԡͨ͠ޙͷ ʁϒϩοΫ

    Ωϊί େϚϦΦ ϑϥϫʔ ϑΝΠΞ ϚϦΦ 13೥3݄25೔݄༵೔
  18. ϚϦΦ ΫϦϘʔ ϒϩοΫ ʁϒϩοΫ είΞ ίΠϯ ϫʔϧυ λΠϜ ԡͨ͠ޙͷ ʁϒϩοΫ

    Ωϊί େϚϦΦ ϑϥϫʔ ϑΝΠΞ ϚϦΦ 13೥3݄25೔݄༵೔
  19. lΦϒδΣΫτz͸zϓϩύςΟzΛ͍࣋ͬͯΔ ϓϩύςΟ ஋ JNBHF HBNFBTTFUT<bUTVEBQOH`> Z  TDBMF9  POFOUFSGSBNF

    GVODUJPO \^ ϓϩτλΠϓ "[VNBQSPUPUZQF B[VNB ΦϒδΣΫτ 13೥3݄25೔݄༵೔
  20. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ ஋ Y  Z  TDBMF9  TDBMF:  ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ 13೥3݄25೔݄༵೔
  21. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ ஋ Y  Z  TDBMF9  TDBMF:  ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ 13೥3݄25೔݄༵೔
  22. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ ஋ Y  Z  TDBMF9  TDBMF:  ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ Zͷ஋ڭ͑ͯ 13೥3݄25೔݄༵೔
  23. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ ஋ Y  Z  TDBMF9  TDBMF:  ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ 13೥3݄25೔݄༵೔
  24. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ ஋ Y  Z  TDBMF9  TDBMF:  ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ 13೥3݄25೔݄༵೔
  25. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ ஋ Y  Z  TDBMF9  TDBMF:  ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ 13೥3݄25೔݄༵೔
  26. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ ஋ Y  Z  TDBMF9  TDBMF:  ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ ·ͩͩΑ 13೥3݄25೔݄༵೔
  27. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF "[VNBQSPUPUZQF ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUFQSPUPUZQF ϓϩύςΟ ஋ Y  Z  &OUJUZQSPUPUZQF ϓϩύςΟ ஋ JNBHF HBNFBTTFUT<bB[VNBQOH`> ϓϩτλΠϓ "[VNBQSPUPUZQF B[VNB 13೥3݄25೔݄༵೔
  28. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF "[VNBQSPUPUZQF ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUFQSPUPUZQF ϓϩύςΟ ஋ Y  Z  &OUJUZQSPUPUZQF ͡Ό͋ɺOFX"[VNB ͬͯͲ͏͍͏͜ͱ 13೥3݄25೔݄༵೔
  29. ϓϩύςΟ ஋ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF "[VNBQSPUPUZQF ϓϩύςΟ ஋

    JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUFQSPUPUZQF ϓϩύςΟ ஋ Y  Z  &OUJUZQSPUPUZQF ϓϩύςΟ ஋ JNBHF HBNFBTTFUT<bB[VNBQOH`> ϓϩτλΠϓ "[VNBQSPUPUZQF B[VNB "[VNBQSPUPUZQFΛ ϓϩτλΠϓͱͨ͠ ৽͍͠ΦϒδΣΫτΛ࡞Δ 13೥3݄25೔݄༵೔
  30. ʮΧοίʯ͸ɺ͋ͳͨΛਂԕͳ ϓϩάϥϛϯάݴޠͷੈքʹ ༠͍ಋ͘༯ਫ਼ͱͳΔ (  )  {  }  [  ] (defun

    pow (x y) (if (< y 0) ! (pow-iter (/ 1 x) (* y -1) 1) ! (pow-iter x y 1))) (defun pow-iter (x y sum) (if (= y 0) ! sum ! (pow-iter x (1- y) (* sum x)))) 13೥3݄25೔݄༵೔
  31. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ͜Μͳॻ͖ํɺ͠·ͤΜͰͨ͠ΑͶ 13೥3݄25೔݄༵೔
  32. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ʮΠϯσϯτʯͬͯɺࣗ͘͢͝વͰ͠ΐ 13೥3݄25೔݄༵೔
  33. KBWBTDSJQUXJOEPXTFU*OUFSWBM GVODUJPO \ EOFX%BUF  JG EHFU)PVST  \ BMFSU

    8BLFVQ ^ ^    ͳͥΧοί͕ ͜Μͳʹଟ͍ͷ ͳͥΧοίͷ࢝·ΓΛ ଗ͑Δඞཁ͕͋Δͷ ܭࢉػցʹɺࢦࣔͷߏ଄Λ ਖ਼֬ʹ఻͑ΔͨΊ ਓ͕ؒ༩͍͑ͯΔࢦࣔͷߏ଄Λ ਖ਼֬ʹཧղ͢ΔͨΊ 13೥3݄25೔݄༵೔
  34. Hackers’ Cafe ͜ͷߨ࠲ͷߏ੒ ୈҰճ  ߨࢣਗ਼ਫ྄ ɹڭཆͱͯ͠ͷϓϩάϥϛϯά ୈχճ  ߨࢣ෬ݟྒྷฏ

    ɹϏδϡΞϧϓϩάϥϛϯάೖ໳ ୈࡾճ  ߨࢣਗ਼ਫ྄ ɹϒϩοΫ͔Β+BWB4DSJQU΁ ୈ࢛ճ  ߨࢣ෬ݟྒྷฏ ɹ+BWB4DSJQUͰήʔϜ։ൃ͢Δ ୈޒճ  ߨࢣਗ਼ਫ྄ ɹϓϩάϥϛϯάͷະདྷ 13೥3݄25೔݄༵೔