8FMDPNFUP3FBDU/BUJWF(BNF&OHJOF@YutamaKotaro
View Slide
8IPBN*ϢλϚίλϩΤΞʔΫϩʔθοτσʔλαΠΤϯςΟετνʔϜϦʔμʔ5FDIOJDBM&OHJOFFSJOH5FBNϦʔμʔΞϓϦέʔγϣϯ։ൃσʔλαΠΤϯεΛͬͯ·͢ʂཧ৬ʹͳΓ͗ͯ͢ίʔυॻ͖ͨ͗͢ɾɾɾসΤϯδχΞ͘Β͍ͷϛυϧ3FBDU/BUJWF+BQBOͷਓͰ͢
8IZUIJTUIFNFٱʑʹ-5ൃදͱ͍͏ࣗ༝ͳΛ͍ͨͷͰɾɾɾɾͲʔͯͬͯ͠Έ͔ͨͬͨ͜ͷϥΠϒϥϦΛωλʹͨ͠ʂʂ
8IZUIJTUIFNFOJUBLJOHήʔϜΔ͍ͬͯͬͯͨ͠ɺͦͷͭΓͰ͍ͨΒɺҰࡢ͘Β͍ʹFYQPXFCͱ͍͏ී௨ʹਅ໘Ͱ໘ന͍ωλΔݴ͍ग़ͯ͠ཪΒΕͨɾɾɾɾɻͦͦʹͨ͞Μ͕ͦ͏͍͏͔Β҆৺ͯͨ͠͠ɺྡͰͦΕ͍͍ͬ͢Ͷͬͯ࿈ݺͯͨͤ͘͠ʹ͍ͭ؊৺ͱɾɾɾ
3FBDU/BUJWF(BNF&OHJOF3FBDU/BUJWF্ͰήʔϜ։ൃΛ͢ΔͨΊͷίϯϙʔωϯτΛఏڙͯ͘͠ΕΔϥΠϒϥϦɻಉ࡞ऀʹΑΓ3FBDU(BNF&OHJOFఏڙ͞Ε͍ͯΔɻ-JHIUXFJHIUΛᨳ͓ͬͯΓɺ͔ͳΓܰྔʂʂಉۀͩͱSFBDUHBNFLJU͕༗໊ʂʂ
3FBDU/BUJWF(BNF&OHJOF͜Ε͑ήʔϜ͕ɹɹɹ؆୯ʹ࡞ΕΔɾɾɾʂʂʁ
3FBDU/BUJWF(BNF&OHJOFʰ͍ʱͱݴ͍͍ͨͱ͜Ζ͚ͩͲɺͦ͏Ͱͳ͍সɻ
3FBDU/BUJWF(BNF&OHJOF૯߹ίʔυྔɹɹɹɹ-JOF͘Β͍ʢNJOJGZͳ͠ʣͷ΄ΜͱʹܰྔͳϥΠϒϥϦͩͬͨɾɾɾʂʂґଘSYKTͷΈɾɾɾɾʂʂ
3FBDU/BUJWF(BNF&OHJOFԿ͕Ͱ͖Δͷ͔ͱ͍͏ͱʁ
3FBDU/BUJWF(BNF&OHJOFɾϧʔϓػೳɾλονϋϯυϦϯάɾϨϯμϦϯάػೳओʹ͜ͷࡾͭʂʂ
)PXUPVTF͜ͷΑ͏ʹॻ͚ͩ͘Ͱ͜ΕΒͷػೳΛ͏͜ͱ͕Ͱ͖Δɻ
ʰTZTUFNTʱͱʰFOUJUJFTʱͱʰFOUJUJFTͷSFOEFSFSʱ͕ΊͬͪΌॏཁʂʂ)PXUPVTFFOUJUJFTͷใ༷ʑͳใ͕TZTUFNTʹొͨؔ͠ΛྲྀΕ͍ͯ͘ɻ
TZTUFNTʹొͨؔ͠ʹɺ͜ͷΑ͏ʹॲཧΛ͍ͯ͘͠ɻ͜ͷॲཧఆظతʹ࣮ߦ͞ΕΔɻ·ͨը໘λονͳͲͷΠϕϯτड͚औΔ͜ͱ͕Ͱ͖Δɻ)PXUPVTF͜ͷ࣌ΞϓϦέʔγϣϯͷঢ়ଶΛมߋ͍ͨ͠ͳΒFOUJUJFTΛߋ৽ͯ͠Ϧλʔϯ͍ͯ͘͠ɻ
SFOEFSFSʹొ͞Ε͍ͯΔίϯϙʔωϯτɺFOUJUZʹొ͞Ε͍ͯΔใΛड͚औΕΔɻ)PXUPVTF͜ͷใΛड͚औΓͳ͕ΒϨΠΞτΛมߋ͍ͯ͘͠ɻը໘࠲ඪͳͲɾɾɾʂʂ
FOUJUJFTʹใɻTZTUFNTʹॲཧɻSFOEFSFSͰඳࣸɻ)PXUPVTF 4VNNBSZTZTUFNTͰFOUJUJFTΛߋ৽ͯ͠ɻͦΕΛͱʹSFOEFSFSʹొͨ͠ίϯϙʔωϯτΛඳࣸ͢Δɻsystemsentities<- updaterendererͱͬͯ؆୯ʂ
3FBDU/BUJWF(BNF&OHJOFͲ͏ͳ͍ͬͯΔͷ͔ΔͨΊϥΠϒϥϦͷதΛݟ͍ͯ͘ͱ
3FBDU/BUJWF(BNF&OHJOFϧʔϓػೳ
-PPQήʔϜͰ௨ৗͷΞϓϦέʔγϣϯͱҟͳΓΠϕϯτຖࠁൃੜϥΠϒϥϦͰDPOTUSVDUPSʹͯɺTVCTDSJCF͍ͯ͠ΔɻDPNQPOFOU%JE.PVOUͰ։࢝͞ΕɺVQEBUF)BOEMFS͕ఆظతʹ࣮ߦ
-PPQVQEBUF)BOEMFSͰTZTUFNT͕࣮ߦ͞ΕΔɻ͜͜ͰɺBSHTʹΠϕϯτ֤छ͕ೖͬͯ͘Δɻ͜Ε͕TZTZUFNTͰFOUJUJFT֤छΠϕϯτΛड͚औΔ͜ͱ͕Ͱ͖ΔΈɻ
-PPQͲ͏ͬͯఆظ࣮ߦ͍ͤͯ͞Δͱ͍͏ͱ%FGBVMU5JNFS͕࣮ମɻSFBDUHBNFMPPQͷUIBOLTɻ࣮ࡍʹιʔείʔυ΄ͱΜͲҰॹͩͬͨʢ͔ͯ͠͠ݩʑҰॹͩͬͨɾɾɾʁʣɻSFRVFTU"OJNBUJPO'SBNF͕൜ਓͩͬͨʂ
3FBDU/BUJWF(BNF&OHJOFλονϋϯυϦϯά
3FBDU/BUJWF(BNF&OHJOF֤छΠϕϯτϋϯυϦϯά͞Ε͍ͯΔɻUPVDI1SPDFTTPSͰTUBSU NPWF FOEͦΕͧΕͷΠϕϯτ໊Ͱॲཧ
3FBDU/BUJWF(BNF&OHJOFͦΕͧΕͷΠϕϯτΛॲཧɻSYKTͰॲཧɻQSFTTΠϕϯτͷมॲཧΠϕϯτͷ੍ޚΛߦͳ͍ͬͯΔɻ͜Ε͕Πϕϯτ֤छΛड͚औΔ͜ͱ͕Ͱ͖ΔΈɻ
3FBDU/BUJWF(BNF&OHJOFϨϯμϦϯάػೳ
-PPQSFOEFSFSͰϨϯμϦϯάɻTDSFFO%JNFOTJPOTɺMBZPVUMBZPVU&WFOUSFOEFSFSϓϩύςΟΛϨϯμϦϯάɻ͜Ε͕FOUJUZͷใશͯड͚औΔ͜ͱ͕Ͱ͖ΔΈɻ
8IBUʟTUIFIFMMҙ
8IBUʟTUIFIFMM3FBDUͬΆ͍ॻ͖ํ͋Μ·ΓͰ͖ͳ͍
-PPQ͍ͯ͠ΔFOUJUZEJE.PVOUͰTUBUFߦ͖͕ܾఆ͢ΔͨΊɺҰͯ͠͠·͏ͱɺมߋ͕Ͱ͖ͳ͘ͳΔ͜ΕΛมߋ͢ΔͨΊʹTXBQϝιουΛ֎͔Β࣮ߦͯ͠Δඞཁ͕͋Δɻ
3FBDU/BUJWF(BNF&OHJOF࣮ࡍʹ࡞ͬͯΈͨʂʂ
3FBDU/BUJWF(BNF&OHJOF͓͔͞ͳλϫʔότϧͯ͠ɾɾɾ
0TBLBOB5PXFS#BUUMF˔͏˔ͭλϫʔότϧͷͺɾɾɾΦϚʔδϡɻότϧػೳະ࣮ɻམͪͯ͘Δ͓ڕɺϛΨϝͱΞΠφϝͱ͓ɻʹࢸͬͯಁաը૾͢Βݟ͔ͭΒͳ͔ͬͨɻϑϦʔͷಁաը૾͕ཉ͍͠ɾɾɾɻը૾ෆʹΑΓத్ͳग़དྷʹɾɾɾ
่ΕͨΒήʔϜΦʔόʔɻճసͰ͖ΔʢҰԠʣ0TBLBOB5PXFS#BUUMF
࡞ΓํɻཧΤϯδϯNBUUFSKTɻ͜ΕʹΑͬͯཧԋࢉΛߦ͏ɻ0TBLBOB5PXFS#BUUMFॲཧ3FBDU/BUJWF(BNF&OHJOFΛհͯ͠ߦ͏ɻNBUUFSύεΛ͍࣋ͬͯΔͷͰɺ$PNQPOFOUͱύεΛϦϯΫͤ͞ͳ͕ΒϨϯμϦϯά͢Δ͜ͱʹΑͬͯඳࣸ͢Δɻ
0TBLBOB5PXFS#BUUMFqPPS&OUJUZচɻJT4UBUJDϓϩύςΟʹΑͬͯݻఆͱͳΔɻ
0TBLBOB5PXFS#BUUMFpSTU@pTI&OUJUZམͱ͢લͷڕɻ͜ͷஈ֊Ͱ.BUUFSͷܭࢉ֎ʹ͍Δɻ
0TBLBOB5PXFS#BUUMFpSTU@pTI&OUJUZࢦΛͨ࣌͠ʹʰམԼʱͤ͞Δɻ͜ͷ࣌ॳΊͯNBUUFSKTͷੈքʹ͍ΕɺϦϯΫͤ͞Δ͜ͱʹΑͬͯཧԋࢉΛ։࢝͢ΔɻΊͬͪΌΤϥʔग़ͯΔɾɾɾস͋ͱͰܕ͚ɾɾɾɻ
0TBLBOB5PXFS#BUUMF"JOBNF$PNQPOFOUࢸͬͯී௨ͷ3FBDU/BUJWFͷίʔυɻ$SFBUF4UZMF4IFFU͍ͯ͠ͳ͍ͷएؾͷ͍ͨΓɻ
0TBLBOB5PXFS#BUUMF"JOBNF$PNQPOFOUࢸͬͯී௨ͷ3FBDU/BUJWFͷίʔυɻ$SFBUF4UZMF4IFFU͍ͯ͠ͳ͍ͷएؾͷ͍ͨΓɻNBUUFSͰQPTJUJPO͕͞ΕΔͷͰͦΕΛܭࢉͯ͠ϦϯΫ͍ͤͯ͞ΔɻWIDTHHEIGHTPOSITIONLeft = POSITION.x - WIDTH/2Top = POSITION.y - HEIGHT/2
0TBLBOB5PXFS#BUUMF"JOBNF$PNQPOFOUճసSPUBUFͰදݱɻᶃɺᶄΑΓλϯδΣϯτʹΑΓճస֯ΛٻΊΔɻRotate = Math.atan2(ᶄ, ᶃ) * (180/π)ᶃᶄ֯ܭࢉͱ͔ߴߍͿΓͩͬͨͷͰ͜Ε͕ͿͬͪΌ͚͔ͬͨ͠স
0TBLBOB5PXFS#BUUMFམԼఆͷߴ͞ΑΓଟ͘མԼͨ͠߹ήʔϜΤϯυɻHEIGHT < yYHEIGHT
3FBDU/BUJWF(BNF&OHJOF݁
3FBDU/BUJWF(BNF&OHJOFɾ΄΅.BUUFSKTήʔ Θͳ͍͍͚ͯ͘Ͳɻɾੑ্࣭4UBUF͕͍ʹ͍͘ʢߋ৽͍ͨ͠߹TXBQϝιουΛ࣮ߦ͢Δඞཁʣɻɾ3FBDU/BUJWFڥͰήʔϜ͕࡞ΕΔ͕ɺSFOEFSFSͰ͏ίϯϙʔωϯτ͙Β͍͔͠3FBDU/BUJWFͷ͕ࣝඞཁͳͱ͜Ζͳ͍ɻϧʔϓػೳΛఏڙͯ͘͠ΕΔίϯϙʔωϯτɻήʔϜ࡞ΔͳΒBTTFUఏڙ͞Ε͍ͯΔ˔OJUZʹ܉ഋ্͕͕ΔɻΠϯλϥΫςΟϒͳΞχϝʔγϣϯʹ͏߹ʹ͋Γ͔ɻ
3FBDU/BUJWF(BNF&OHJOF3/ϓϩμΫτͷதͰϛχήʔϜΛΓ͍ͨ߹ੋඇʂʂ