ä»æ¥ã¯ãã¢ãã€ã«ã²ãŒã ã®ã¯ãã¹ãã©ãããã©ãŒã éçºã«1幎é䜿çšããŠãããããŸãç¥ãããŠããªãã²ãŒã ãšã³ãžã³ã«ã€ããŠã話ããããšæããŸãã 2dã®å Žåãããã¯å®å šã«ç§ãã¡ã«åã£ãŠãããUnity3dã ãããã®ãšãã£ã¿ãŒã®ããã«å¯äžã®ç«¶äºçžæã«ãªããŸãã MOAI SDKãžã®é©åãªæ³šæã®æ¬ åŠã¯æããã«é«ãåå ¥ãããå€ã«é¢é£ããŠããŸã -éçºè èªèº«ïŒZipline GamesïŒã¯ã補åããããã²ãŒã éçºè åãã¢ãã€ã«ãã©ãããã©ãŒã ããšäœçœ®ä»ããŠããŸãããã«ã¢ã
ãªãç§ã¯MOAIããšãŠã奜ãã ã£ãã®ã§ããïŒ
- ãšã³ãžã³ã¯C ++ã§èšè¿°ãããã²ãŒã ããžãã¯ã¯Luaã§èšè¿°ãããŠããŸãã lujitã®ãµããŒãããããŸãïŒiOSã§ã¯ã€ã³ã¿ãŒããªã¿ãŒã¢ãŒãã®ã¿ïŒ
- ãªãŒãã³ãœãŒã¹ã CPALã©ã€ã»ã³ã¹-ããŽãã¿ã€ãã«ãèè ãMOAIãžã®ãªã³ã¯ãèªã¿èŸŒã¿ç»é¢ãŸãã¯ã¯ã¬ãžããã§æå®ããå¿ èŠããããŸã
- ã¯ãã¹ãã©ãããã©ãŒã ïŒWindowsãMac OS XãLinuxãiOSãAndroidãOUYAãããã³emscriptenãä»ããhtml5ã®å®éšããããŸãã éçºã¯ãWindowsãMac OS Xãããã³Linuxã§ãµããŒããããŠããŸãã iOSçšã«ãã«ãããã«ã¯ãMacãå¿ èŠã§ãã çè«çã«ã¯ãæ°ãããã©ãããã©ãŒã ãè¿œå ããããšã¯é£ãããããŸãããOpenGLã³ã³ããã¹ããäœæããå ¥ååŠçã¡ãœãããåŒã³åºãããã¹ãããèšè¿°ããå¿ èŠããããŸã
- Lua APIã¯éåžžã«äœã¬ãã«ã§ãã ããã¯ãã©ã¹ãšãã€ãã¹ã®äž¡æ¹ã§ãã å¹æçãªéçºã«ã¯ãåã«é«ã¬ãã«ã®Luaãã¬ãŒã ã¯ãŒã¯ãå¿ èŠã§ã
- å éšã§ã¯ãã¯ãŒã«ãªã¢ã«ãŽãªãºã ãšãã¯ãããžãŒã䜿çšãããŠããŸãã èªåãããåŠçã®ã¬ã³ãã©ãŒïŒcocos2dããããåŠãã ããã§ãïŒã ã¢ã¯ã·ã§ã³ããªãŒ-å®æçã«æŽæ°ããããã¹ãŠã®ãã®ïŒã¢ãã¡ãŒã·ã§ã³ãç©çïŒã¯ããªãŒã®åœ¢ã§æ瀺ããã芪ããŒãã¯çµéæéïŒãã«ã¿ïŒãåã«æž¡ããŸãã ããã«ãããã¢ãã¡ãŒã·ã§ã³ã®éå±€ãæ§ç¯ããããããäžåºŠã«åæ¢ããã³ç¶ç¶ããåçé床ãå€æŽã§ããŸãã
- ä»ã®2Dãšã³ãžã³ã®ãããªããªãã¿ã®ã·ãŒã³ã°ã©ãã¯ãããŸããã äŸåé¢ä¿ã°ã©ãã¯ãäŸåé¢ä¿ãåŠçããããã«äœ¿çšãããŸãã ãªããžã§ã¯ãã«ã¯å€ãã®å±æ§ïŒåº§æšãè²ãã·ã§ãŒããŒãªã©ïŒããããŸããããšãã°ãããã¹ãã©ã€ãã®å転ãå¥ã®ã¹ãã©ã€ãã®X座æšã«ãã€ã³ããããªã©ããªããžã§ã¯ãéã®äŸåé¢ä¿ãèšå®ã§ããŸãã ãšã³ãžã³ã¯å€æŽãããå±æ§ã®ã¿ãèšç®ãããããçè«çã«ã¯æŽæ°ã³ã¹ããåæžãããŸãã å®éãMayaãNukeããŒãã¢ãŒããã¯ãã£ãUEã®ãããªã¢ã«ã«äŒŒãŠããŸããã¿ã€ãã®ã¿ãäžèŽããå Žåãå¿ èŠãªãã®ãå¿ èŠãªãã®ã«ãã€ã³ãããŸãã ç¬èªã®å±æ§ãè¿œå ããããããåŠçããã³ãŒã«ããã¯ãèšå®ã§ããç¹å¥ãªScriptNodeããããŸã
- ã¿ã€ã«ããããæäœããããã®ããã€ãã®ã¯ã©ã¹ã å è§åœ¢ããã€ã€ã¢ã³ããé·æ¹åœ¢ã¡ãã·ã¥ãçµè·¯æ¢çŽ¢
- 3Dã®ãµããŒãããããŸã-ã€ãŸãããã¹ãŠã®å€æãšãªããžã§ã¯ãã¯æ¬è³ªçã«3Dã§ã
çæãšæ¬ é¥ïŒ
- ããã¥ã¡ã³ããŒã·ã§ã³ã®ã®ã£ãããäŸã¯ãã°ãã°åäœäžèœã å°ããªã³ãã¥ããã£
- ã¢ã»ã³ããªã«ã¯ãCmakeã䜿çšãããŸãã UnityãCoronã®ããã«ã...ã®äžã«ã¢ã»ã³ãã«ããããã¿ã³ã¯ãããŸãããå€ãã®å Žåãã³ã³ãã€ã©ãšãªã³ã«ãŒã®ãšã©ãŒã«å¯ŸåŠããå¿ èŠããããŸã
- Lua apiã¯å®å šã§ã¯ãããŸããã ããšãã°ãã»ãã¿ãŒãšã²ãã¿ãŒã®ãã©ã³ã¹ãåããŠããªãããšããããããŸãïŒã»ãã¿ãŒãããã«ãããŸãïŒã ãããã£ãŠããã€ã³ããŒã®èšè¿°ãç解ããå¿ èŠã«å¿ããŠããããå±éãããšäŸ¿å©ã§ãã
- ç·šéè ãªã
- çµ±åãããUNTZãµãŠã³ããšã³ãžã³ã¯éåžžã«åå§çã§ãã fmodã«ã¯ãã€ã³ããŒããããŸãããããããéåžžã«æ代é ãã§ãã 誰ããããã䜿çšããŠããªãããã§ã
- ã©ããããéçºè ã¯ãã¬ãŒã ã¯ãŒã¯ã®åçåã«æåããªãã£ã-ç§ã¯æåºãšããŠãããæ¯æããééãããããªãããããŠMOAIã¯ã©ãŠãã¯ããèªäœãæ£åœåããªãã£ãã ããã¥ã¡ã³ãããµã³ãã«ã®æŽçãªã©ãããããçš®é¡ã®ãŽãã«ã€ããŠãZipline Gamesã«ã¯æéãã¢ãããŒã·ã§ã³ããããŸããããã¹ãŠã¯äž»ã«ã³ãã¥ããã£ã«ãã£ãŠè¡ãããŸãã ããã¯ãMOAI SDKãæ»ãã ããšããæå³ã§ã¯ãããŸãããZipline Gamesã¯å éšãããžã§ã¯ãã«MOAIã䜿çšããéçºã¯ç¶ç¶ããŸãïŒæè¿ãbox2dãŸãã¯ã·ããªã¹å šäœããã©ãã°ããªãããã«ãåçŽãªè¡çªãåŠçããç¬èªã®ãšã³ãžã³ãéçºããéçšã§ãlibtessãéããŠãã¯ã¿ãŒããªããã£ãã®ãµããŒããç»å ŽããŸããïŒ
ã€ã³ã¹ããŒã«ïŒMac OS XïŒ
OS Xã§ã®ã€ã³ã¹ããŒã«ã«ã€ããŠã®ã¿èª¬æããŸãã Windowsã·ã¹ãã ã¯æå ã«ãããŸããã
å ¬åŒãªããžããªãè€è£œããŸãã
git clone https://github.com/moai/moai-dev.git
ã·ã¹ãã ã®ãã¹ããåéããã¹ã¯ãªãããå®è¡ããŸãã
cd moai-dev bin/build-osx-sdl.sh
ãã¹ãŠãé 調ã«é²ã¿ãå®è¡å¯èœãã¡ã€ã«ãrelease / osx / host-sdl / bin / moaiã§å©çšå¯èœã«ãªãããããžã®ãªã³ã¯ãäœæãããããšãé¡ã£ãŠããŸãïŒã/ binãPATHã«è¿œå ãããŸãïŒïŒ
ln -s /Users/vavius/moai-dev/release/osx/host-sdl/bin/moai ~/bin/moai
äŸãå®è¡ãããã¹ãŠãæ©èœããããšã確èªããŸãã
cd samples/hello-moai moai
å転ããfigovinaãšæè¿ã®ããã¹ãã衚瀺ãããŸãã
Luaã§ã®æžã蟌ã¿
æå°éã®äŸããå§ããŸããã-ç»é¢ã®äžå€®ã«æ£æ¹åœ¢ã®ã¹ãã©ã€ããæç»ããŸãïŒ
ã³ãŒãïŒ
-- 1 MOAISim.openWindow ( "sample", 600, 240 ) local viewport = MOAIViewport.new () viewport:setSize ( 600, 240 ) viewport:setScale ( 600, 240 ) -- 2 local layer = MOAILayer.new () layer:setViewport ( viewport ) -- 3 local renderTable = { layer } MOAIGfxDevice.getFrameBuffer ():setRenderTable ( renderTable ) -- 4 local deck = MOAIGfxQuad2D.new () deck:setTexture ( "moai.png" ) deck:setRect ( -64, -64, 64, 64 ) -- 5 local prop = MOAIProp.new () prop:setDeck ( deck ) layer:insertProp ( prop )
ã¢ã€ãã ã§èµ·ãã£ãŠããããšã®èª¬æïŒ
- ãŠã£ã³ããŠãšãã¥ãŒããŒããäœæããŸãã ãã¥ãŒããŒãã䜿çšãããšããã¯ã»ã«ã«ã¹ãããããã«è«ç座æšã§äœæ¥ã§ããŸã
- ã¬ã€ã€ãŒã¯ããããã®ã³ã³ããã§ãïŒããããã¯æç»å¯èœãªãã¹ãŠã®ãã®ãšåŒã°ããŸãïŒã ã¬ã€ã€ãŒã¯ã«ã¡ã©ã«èšå®ã§ããçŸåšã®ãã¥ãŒããŒãã«å ¥ãããããã®ã¿ãã¬ã³ããªã³ã°ãããŸãã ã¬ã€ã€ãŒã¯äžŠã¹æ¿ãïŒã¬ã³ããªã³ã°ã®é åºïŒãæ åœããŸã-XãYãZ座æšãåå¥ã«ããŸãã¯ãã¯ãã«ãåªå 床ïŒæŽæ°ïŒãããã³çå°ºæ§ã¿ã€ã«ã²ãŒã çšã®ç¹å¥ãªçš®é¡ã®ISO_SORTã«ããå€ãã®ãªãã·ã§ã³ããããŸãã åã¬ã€ã€ãŒã«ã¯ç©ºéã¯ãšãªãæé©åããããã®MOAIPartitionã³ã³ãããŒããããŸã-ããããã¹ããšã¬ã€ãã£ã¹ãããã«ãã¬ãã«ã°ãªãããå éšã§äœ¿çšãããŸã
- ã¬ã³ããŒããŒãã«-ãã¬ãŒã ãããã¡ã«é çªã«æç»ãããã¬ã³ããŒå¯èœãªãªããžã§ã¯ãã®ãªã¹ããèšå®ããŸãã ã¬ã³ããªã³ã°æã®ã¬ã€ã€ãŒã¯ãè¿œå ããããã¹ãŠã®å°éå ·ãæç»ããŸãã ããŒãã«ã«ã¯ãã¹ããããããŒãã«ãå«ãŸããå Žåããããã·ãŒã³ãããŒãžã£ãŒãäœæããã®ã«éåžžã«äŸ¿å©ã§ãã
- ããã-èŠèŠéšåãå®çŸ©ãããªããžã§ã¯ãã ãžãªã¡ããªïŒãã®å Žåãåè§åœ¢-2ã€ã®äžè§åœ¢ïŒãUV座æšããã¯ã¹ãã£ãšã·ã§ãŒããŒãžã®ãªã³ã¯ãä¿åããŸã
- ãããã-ç»é¢ã«æããããªããžã§ã¯ãã®éåç»åã ããã¯ãååãšããŠãå¿ ããã1ã€ã®ç¬ç«ããã¹ãã©ã€ãã§ããå¿ èŠã¯ãããŸããããŸããã€ã³ã¹ããŒã«ãããŠãããããã«å¿ããŠã3Dã¡ãã·ã¥ãšã¿ã€ã«ã«ãŒããååšããããšããããŸãã
äžèŠåçŽãªã¿ã¹ã¯ã®ããã«ã¹ãã©ã€ããæç»ããããã«å€ãã®ç·ãå·ã€ããŠããããšã«ããã«æ°ã¥ããŸãã ã»ãšãã©ã®å Žåãããã¯1è¡ã§è¡ãããŸãããããã§ã¯å°ãªããšã6ã€å¿ èŠã§ãã ãããã£ãŠããšã³ãžã³ã«ãã£ãŠæäŸãããAPIã¯ããã®ãŸãŸã䜿çšãããããšã¯ãªããå€ãã¯Luaã§ã©ãããŒãäœæããŸãã MOAI SDKã®C ++éšåã«ã¯ããã¯ã¹ãã£ãã£ãã·ã¥ãã¢ãã©ã¹ããã®ã¹ãã©ã€ãã®ããŒãããããã®éã®ã·ãŒã³ããã³ãã©ã³ãžã·ã§ã³ãããŒãžã£ãŒãããããçš®é¡ã®ãã¿ã³ããã³ãã®ä»ã®ããããããèŠçŽ ãªã©ãå€ãã®èº«è¿ãªãã®ãæ¬ ããŠããŸãã ãããã¯ãã¹ãŠãLuaã§ã®å®è£ ãææ¡ãããŠããŸãã ã»ãšãã©ã®æäœã¯ã·ãŒã³ãåæåããããšãã«ã®ã¿å®è¡ãããããããããå šäœçãªããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããããšã¯ã»ãšãã©ãããŸããã ãã¡ãããäœåãªããŒãã«ãäœæããããå€ããªããžã§ã¯ãã䜿çšããããã§ããããšããã£ãã·ã¥ãããããã®ã§ã¯ãªããè³¢æã«ã³ãŒããèšè¿°ããŠã¢ãããŒãããå¿ èŠããããŸãã
å®å šãªèªç±
åè§åœ¢ã®ã¯ã¯ããã¯å¿ èŠãªãããå°åœ¢ãå¿ èŠã§ãsetRectã®ä»£ããã«setQuadã䜿çšãããšããŸãã
local deck = MOAIGfxQuad2D.new () deck:setTexture ( "moai.png" ) deck:setQuad ( -64, 64, 64, 64, 100, -64, -100, -64 ) --
åºãŠãããã®ã¯æ¬¡ã®ãšããã§ãã
èæ¯å šäœãåçã§ã«ããŒããŸãã ãã¯ã¹ãã£ã«GL_REPEATã䜿çšã§ããŸããã2ã®çŽ¯ä¹ã®åæ°ã®ãµã€ãºã§ã®ã¿æ©èœããã¢ãã©ã¹ã®ç»åã䜿çšããããšã¯ã§ããŸããã ãããã£ãŠãMOAIGridã¯ã©ã¹ã䜿çšããŸãã
local deck = MOAIGfxQuad2D.new () deck:setTexture ( "moai.png" ) deck:setRect ( -0.5, -0.5, 0.5, 0.5 ) local grid = MOAIGrid.new () grid:initRectGrid ( 1, 1, 128, 128 ) grid:fill ( 1 ) grid:setRepeat ( true, true ) local prop = MOAIProp.new () prop:setDeck ( deck ) prop:setGrid ( grid ) layer:insertProp ( prop )
MOAIGridã¯ã¿ã€ã«ãæäœããããã«å¿ èŠã§ããããã§ã¯ã128x128ãµã€ãºã®åäžã®ã¿ã€ã«ããããããåæåããŸãã 次ã«ãfillã¡ãœããã§ã€ã³ããã¯ã¹1ãæå®ããŸãã ããšãã°ãMOAIGfxQuadDeck2Dã§ã¯ãåäžã®ãã¯ã¹ãã£ã«å¯ŸããŠé ç¹ãšUV座æšã®å€ãã®ãã¢ãæå®ã§ããã¹ãã©ã€ãã¢ãã©ã¹ãè¡šãããã«äœ¿çšãããŸãã ãã®å Žåããã®ãããã«ã¯åäžã®ã€ã³ããã¯ã¹1ã®ã¿ããããŸããç¹°ãè¿ãããªã³ã«ããŠãã¬ã³ããªã³ã°ã«ã°ãªããã䜿çšããå¿ èŠãããããšã瀺ããŸãã
ãã®æç¹ã§ãã¢ãã¡ãŒã·ã§ã³åãããã¹ã¯ããŒã«èæ¯ãç°¡åã«äœæã§ããŸãã æåŸã«1è¡è¿œå ããŸãã
prop:moveLoc ( -128, 0, 0, 4, MOAIEaseType.LINEAR ):setMode ( MOAITimer.LOOP )
ã«ãŒãå ã§ããããã1ã€ã®ã¿ã€ã«ã®å¹ ã«ç§»åãããšããšã³ãžã³èªäœãæ¬ èœããŠããããŒã¹ã眮ãæããŠç»é¢å šäœãåããŸãã
ã¢ãã¡ãŒã·ã§ã³ãšã¢ã¯ã·ã§ã³ããªãŒ
ãªããžã§ã¯ãã®ç§»åãšå転ãããã³ã¢ãã¡ãŒã·ã§ã³åçã¢ãŒãã®èšå®ïŒ
local move = prop:moveLoc ( 200, 0, 0, 2 ) -- local rot = prop:moveRot ( 0, 0, 360, 2, MOAIEaseType.LINEAR ) -- Z move:setMode ( MOAITimer.PING_PONG ) -- - rot:setMode ( MOAITimer.LOOP ) --
ããã©ã«ãã§ã¯ãã¢ãã¡ãŒã·ã§ã³ã¯ã¢ã¯ã·ã§ã³ããªãŒã®ã«ãŒãã«è¿œå ãããŸãã ãã ããã°ã«ãŒãåããããšã¯ã§ããŸãã
local action = MOAIAction.new () action:addChild ( move ) action:addChild ( rot ) action:start () action:throttle ( 0.5 )
ããã§ãäž¡æ¹ã®ã¢ãã¡ãŒã·ã§ã³ãäžåºŠã«åæ¢ããã³éå§ããã¹ãããã«ã䜿çšããŠåçé床ãèšå®ã§ããŸãã
ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã¯ãLuaã³ã«ãŒãã³ãéããŠå®è£ ãããŸãã MOAIã¯ãMOAIActionããç¶æ¿ããMOAICoroutineã¯ã©ã¹ãæäŸããŸããããã«ãããã¢ã¯ã·ã§ã³ããªãŒã«ã³ã«ãŒãã³ãè¿œå ã§ããŸãã blockOnActioné¢æ°ã¯ãã¢ã¯ã·ã§ã³ãçµäºãããŸã§yieldãåŒã³åºããŸãã
ç»åãå·Šå³ã«ç§»åãã極å€ã«éãããšã1ã€ã®å®å šãªé©åœãèµ·ãããŸãã
local function func () local distance = 200 while true do local action1 = prop:moveLoc ( distance, 0, 0, 2 ) MOAICoroutine.blockOnAction ( action1 ) local action2 = prop:moveRot ( 0, 0, 360, 2 ) MOAICoroutine.blockOnAction ( action2 ) distance = -distance end end local thread = MOAICoroutine.new () thread:run ( func )
ãããã«
ãã®èšäºã¯éåžžã«åå§çãªäŸãæ±ã£ãŠããŸã-ç§ã®ç®æšã¯ãLua APIã®ããã€ãã®åŽé¢ãã€ãŸããã®äœã¬ãã«ãšã¢ãžã¥ãŒã«æ§ã瀺ãããšã§ããã MOAI SDKã¯ãç§ãã¡ã®ããã«æ±ºå®ãäžãããšãããäžè¬ã«èªããããŠãã1ã€ã®æ¹æ³ã§ãã¹ãŠãè¡ãããšã匷å¶ããŸããããå®å šãªèªç±ãæ®ããŸãã ãã¡ãããã³ãã¥ããã£ã¯ããã¯ã¹ãã£ãã£ãã·ã¥ãGUIèŠçŽ ãã·ãŒã³ãããŒãžã£ãŒãªã©ã䜿çšããŠãçŽç²ãªLuaã«ããã€ãã®é«ã¬ãã«ã©ãããŒãæ¢ã«å®è£ ããŠããŸãã
C ++ã®ç¥èãéžæãããã©ãããã©ãŒã ã®ã¢ã»ã³ããªã®ãã¥ã¢ã³ã¹ãããã³å éšã®äœããå€æŽããæ欲ããªãéããå®çšŒåç°å¢ã§MOAI SDKã䜿çšããããšã¯ãå§ãããŸããã MOAI SDKã䜿çšããã»ãšãã©ãã¹ãŠã®äººãç¬èªã®ãã©ãŒã¯ãæã£ãŠããŸãããããã¯ã¡ã€ã³ãã©ã³ããšã¯å°ãç°ãªããŸãã æŽå²çã«ãããã¯Zipline Gamesããã«ãªã¯ãšã¹ãããã«ããæéããªããšããäºå®ã«ãããã®ã§ããã ããããä»ã§ã¯äžéšã®ã³ãã¥ããã£ã¡ã³ããŒãå ¬åŒãªããžããªã«ã¢ã¯ã»ã¹ã§ããããã«ãªããéçºãããã«æŽ»çºã«ãªããŸããã
éæŸæ§ã®ãããã§ãã³ãŒããšãªãœãŒã¹ã®ã©ã€ããªããŒããçŽæ¥ããã€ã¹ã«å®è£ ã§ããŸããã Unity3dã®ã€ã¡ãŒãžã§ããšãã£ã¿ãŒããã£ããèŠãŠããŸãã ã©ã€ããªããŒããéå§ãããåŸã¯é床ãäœäžããŸããããé ã§ååã«éçºãå éã§ããŸãã ãã¯ã¿ãŒãšãã£ã¿ãŒã§ã€ã³ã¿ãŒãã§ã€ã¹ãåéããã³ãŒãã«çŽæ¥ãšã¯ã¹ããŒãããŸãïŒå®£èšåãäŸã¯gist.github.com/Vavius/9868572 ïŒã ãã¡ããããããã¯ãã¹ãŠãã©ããªãšã³ãžã³ã«ãããŸã£ããåé¡ãªãcocos2d-xã«ãã¯ã©ãŠã³ã«ãã£ãšè€éã«ããããå®éã«åãä»ããããšãã§ããŸãã äžè¬ã«ã2Dã²ãŒã ã®å Žåãã³ã³ãããããMOAIã«ç§»è¡ããåŸæããããšã¯ãããŸãããäœãšããã倧人ã§ãæè»æ§ããããããã¯ãŒã«ã§ã+ã³ãŒãã¯ãããã§çŸããã§ãã
åç §è³æ
getmoai.com-å ¬åŒãµã€ã
getmoai.com/docs/annotated.html-ããã¯
moaiwebsite.github.io-éå ¬åŒãµã€ããã³ãã¥ããã£ã«ãã£ãŠèŠãããã ãã€ãã¯æ°ããé¡ã«ãªããŸã
github.com/makotok/Hanappeã¯ãé«ã¬ãã«ã®Ouaã¹ã¿ã€ã«Luaãã¬ãŒã ã¯ãŒã¯ã§ãã ãã®ãããªãã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ã®ãã¡ãããã ããçŸåšéçºããã³ä¿å®ãããŠããŸãã
æŽæ°ïŒ
moaifiddle.com/Q09BJWGMW6/3-jsããŒãžã§ã³ã®ãšã³ãžã³ã ããã§ãã€ã³ã¹ããŒã«ããã«ãšã³ãžã³ã§éã¶ããšãã§ããŸãïŒ