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

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

Fushimi Ryohei
November 21, 2013
150

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

Fushimi Ryohei

November 21, 2013
Tweet

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೔݄༵೔