ããã§ã¯ãå§ããŸããã...
ã¢ãã¡ãŒã·ã§ã³ã¯ã次ã ã«ãã°ãã衚瀺ãããäžé£ã®ãã¬ãŒã ã§ãã ããã«ããããªããžã§ã¯ãã®åãã®é¯èŠãäœæãããŸãã
PYGLETãã€ã³ã¹ããŒã«ãã
Pygletã¯ãPythonã䜿çšããŠèšè¿°ãããã¢ããªã±ãŒã·ã§ã³ã§ãã«ãã¡ãã£ã¢ããŒã¿ãæäœããããã®APIãæäŸããŸãã ããã¯ãè€æ°ã®ãã©ãããã©ãŒã ã§å®è¡ãããOpenGLã©ã€ãã©ãªã§ãã äž»ã«ã²ãŒã ããã®ä»ã®ã°ã©ãã£ãã¯ãè±å¯ãªã¢ããªã±ãŒã·ã§ã³ã®éçºã«äœ¿çšãããŸãã Pygletã¯ã http ïŒ//www.pyglet.org/download.htmlããããŠã³ããŒãã§ããŸã ã PygletããŒãžã§ã³1.1.4以éïŒããå ŽåïŒãé 眮ããŸãã Pygletã®ã€ã³ã¹ããŒã«ã«åé¡ã¯ãªãã¯ãã§ãã
Windowsãã©ãããã©ãŒã
Pyglet 1.1.4.msi以éã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸãã
Python 2.7ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
ãã®ä»ã®ãã©ãããã©ãŒã
Mac OS Xã®ãã€ããªãã¡ã€ã«ã¯Pyglet Webãµã€ãã«æ²èŒãããŠããŸãã®ã§ãPyglet-1.1.4.dmg以éãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŠãã ããã
Linuxã§ã¯ãã·ã¹ãã ã®æ§ç¯ã«é©ããPyglet 1.1.4以éãã€ã³ã¹ããŒã«ããŸãã
èŠã€ãããªãå Žåãã©ã€ãã©ãªã¯å¥ã®æ¹æ³ã§ã€ã³ã¹ããŒã«ã§ããŸãã
- Pyglet-1.1.4.tar.gz以éã®ã¢ãŒã«ã€ããããŠã³ããŒãããŠè§£åããŸãã
- ã³ãã³ãã©ã€ã³ã§åäœããããã«pythonãèšå®ãããŠããããšã確èªããŠãã ããã ãã以å€ã®å Žåã¯ãPYTHONPATHç°å¢å€æ°ã§Pythonå®è¡å¯èœãã¡ã€ã«ãžã®æ£ãããã¹ãèšå®ããŸãã
- ã³ãã³ãããã³ããã§ã解åãããã¢ãŒã«ã€ãã«ç§»åãã次ã®ã³ãã³ããå®è¡ããŸãã
python setup.py install
- 次ã«ãã©ã€ãã©ãªãã©ã«ããŒã«ããreadme /ã€ã³ã¹ããŒã«ãã¡ã€ã«ã«èšèŒãããŠããæ瀺ã«åŸããŸãã
èšçœ®ç¢ºèª
次ã«é²ãåã«ãPygletãæ£ããã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ããã ããã確èªããã«ã¯ãã³ãã³ãã©ã€ã³ããPythonãèµ·åãã次ã®ã³ãã³ããå ¥åããŸãã
import pyglet
ã€ã³ããŒããæåããã°ããã¹ãŠæºåå®äºã§ãïŒ
ãã°ã¬ããã®çŽ¹ä»
éèŠãªã³ã³ããŒãã³ã
䜿çšããæãéèŠãªPygletã¢ãžã¥ãŒã«ãšããã±ãŒãžã®ããã€ãã«ã€ããŠç°¡åã«èª¬æããŸãã ããã¯Pygletãã¬ãŒã ã¯ãŒã¯ã®ã»ãã®äžéšã«ãããªãããšã«æ³šæããŠãã ããã Pygletã®ããã¥ã¡ã³ãããã§ãã¯ããŠããã¹ãŠã®æ©èœã®è©³çŽ°ã確èªããŠãã ãããããã¯ãã®èšäºã®ç¯å²å€ã§ãã
çª
pyglet.window.Windowã¢ãžã¥ãŒã«ã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã OpenGLã³ã³ããã¹ããŠã£ã³ããŠãäœæããããã«äœ¿çšãããŸãã Windowã¯ã©ã¹ã¯ãããŠã¹ãããŒããŒãã«é¢é£ä»ããããã€ãã³ããªã©ãããŸããŸãªã€ãã³ããåŠçããããã®APIã¡ãœãããè¡šããŸãã ãŠã£ã³ããŠã¯ãéåžžã¢ãŒããŸãã¯å šç»é¢ã¢ãŒãã§è¡šç€ºã§ããŸãã 以äžã¯ããŠã£ã³ããŠã®ã€ã³ã¹ã¿ã³ã¹ãäœæããç°¡åãªäŸã§ãã ã³ã³ã¹ãã©ã¯ã¿ã§åŒæ°ãšããŠå¹ ãšé«ããæå®ããããšã«ããããµã€ãºãæå®ã§ããŸãã
win = pyglet.window.Window()
ç»åã®èæ¯è²ã¯ãOpenGLã䜿çšããŠglClearColorãåŒã³åºããŠèª¿æŽã§ããŸãã
pyglet.gl.glClearColor(1, 1, 1, 1)
ãã®ã³ãŒãã¯ãèæ¯è²ãçœã«èšå®ããŸãã æåã®3ã€ã®åŒæ°ã¯ãèµ€ãç·ãéãæå®ããŸãã æåŸã®å€ã¯ã¢ã«ãã¡ãã£ãã«ã§ãã 次ã®ã³ãŒãã¯ãç°è²ã®èæ¯è²ãäœæããŸãã
pyglet.gl.glClearColor(0.5, 0.5, 0.5, 1)
次ã®ç»åã¯ãç°è²ã®èæ¯ã§äœæããããŠã£ã³ããŠã®ã¹ã¯ãªãŒã³ã·ã§ããã瀺ããŠããŸãã
ç»å
pyglet.imageã¢ãžã¥ãŒã«ã䜿çšãããšãç»é¢ã«ç»åã衚瀺ã§ããŸãã 次ã®ã³ãŒãã¹ããããã¯ãPygletãŠã£ã³ããŠå ã®æå®ãããäœçœ®ã«ç»åãæ¿å ¥ããŠè¡šç€ºããæ¹æ³ã瀺ããŠããŸãã
img = pyglet.image.load('my_image.bmp') x, y, z = 0, 0, 0 img.blit(x, y, z)
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãpyglet.imageã¢ãžã¥ãŒã«ã§ãµããŒããããããã€ãã®éèŠãªæäœã«ã€ããŠèª¬æããŸãã
ã¹ãã©ã€ãïŒã¹ãã©ã€ãïŒ
ã¹ãã©ã€ãã¯ããŠãŒã¶ãŒå®çŸ©ã®ç»åèŠçŽ æ§æã§ãã
ã¹ãã©ã€ãã¯å¥ã®éèŠãªã¢ãžã¥ãŒã«ã§ãã åè¿°ã®PygletãŠã£ã³ããŠã«ç»åãŸãã¯ã¢ãã¡ãŒã·ã§ã³ã®ãã¬ãŒã ã衚瀺ããããã«äœ¿çšãããŸãã Spriteã䜿çšãããšãPygletãŠã£ã³ããŠã®ä»»æã®å Žæã«ç»åãé 眮ã§ããŸãã ã¹ãã©ã€ãã¯å転ããã³æ¡å€§çž®å°ã§ããŸãã åãç»åã®è€æ°ã®ã¹ãã©ã€ããäœæããããããç°ãªãå ŽæãŸãã¯ç°ãªãæ¹åã®1ã€ã®ãŠã£ã³ããŠã«é 眮ã§ããŸãã
ã¢ãã¡ãŒã·ã§ã³
Animationã¢ãžã¥ãŒã«ã¯pyglet.imageããã±ãŒãžã®äžéšã§ãã ååã瀺ãããã«ãpyglet.image.Animationã¯ãç»åã®1ã€ä»¥äžã®ãã¬ãŒã ããã¢ãã¡ãŒã·ã§ã³ãäœæããããã«äœ¿çšãããŸãã ã¢ãã¡ãŒã·ã§ã³ãäœæããã«ã¯ããŸããŸãªæ¹æ³ããããŸãã ããšãã°ãäžé£ã®ç»åããããŸãã¯AnimationFrameãªããžã§ã¯ãã䜿çšããŠäœæã§ããŸãã ã¹ãã©ã€ãã¢ãã¡ãŒã·ã§ã³ãäœæããŠãPygletãŠã£ã³ããŠã«è¡šç€ºã§ããŸãã
AnimationFrame
ç»åããã¢ãã¡ãŒã·ã§ã³ã®ç¬ç«ãããã¬ãŒã ãäœæããŸãã ãã®ãããªAnimationFrameãªããžã§ã¯ãã®ã·ãŒã±ã³ã¹ããã¢ãã¡ãŒã·ã§ã³ãäœæã§ããŸãã äŸïŒ
animation = pyglet.image.Animation(anim_frames) anim_frames - , AnimationFrame.
æèš
ãã®ã¢ãžã¥ãŒã«ã¯ãæå®ãããæéã«åŒã³åºãããé¢æ°ãã¹ã±ãžã¥ãŒã«ããããã«äœ¿çšãããŸãã ããšãã°ã次ã®ã³ãŒãã¯moveObjectsã¡ãœããã1ç§éã«10ååŒã³åºããŸãã
pyglet.clock.schedule_interval(moveObjects, 1.0/10)
ç»åã衚瀺ãã
ç»åã»ã¯ã·ã§ã³ã§ã¯ãimage.blitã䜿çšããŠç»åãã¢ããããŒãããæ¹æ³ãåŠã³ãŸããã ãã ããblitã䜿çšãããšãç»åãåºåããå¹çãäœäžããŸãã äœæãããSpriteã€ã³ã¹ã¿ã³ã¹ã«ç»åã衚瀺ããããè¯ãæ¹æ³ããããŸãã è€æ°ã®Spriteãªããžã§ã¯ããäœæããŠãåãç»åã衚瀺ã§ããŸãã ããšãã°ã1ã€ã®ç»åããŠã£ã³ããŠå ã®ç°ãªãå Žæã«è¡šç€ºããå¿ èŠããããŸãã ãããã®åç»åã«ã¯ãåå¥ã®Spriteã€ã³ã¹ã¿ã³ã¹ãå¿ èŠã§ãã 次ã®ç°¡åãªäŸã§ã¯ãç»åãããŒãããŠSpriteã€ã³ã¹ã¿ã³ã¹ã衚瀺ãããã®ç»åãç»é¢ã«è¡šç€ºããŠããŸãã
1 import pyglet 2 3 car_img= pyglet.image.load('images/car.png') 4 carSprite = pyglet.sprite.Sprite(car_img) 5 window = pyglet.window.Window() 6 pyglet.gl.glClearColor(1, 1, 1, 1) 7 8 @window.event 9 def on_draw(): 10 window.clear() 11 carSprite.draw() 12 13 pyglet.app.run()
3è¡ç®ã®ã³ãŒãã¯ãpyglet.image.loadãåŒã³åºããŠç»åãããŒãããŸãã
ãã®ç»åã«å¯Ÿå¿ããã¹ãã©ã€ãã4è¡ç®ã«äœæãããŸãã
è¡6ã¯ããŠã£ã³ããŠã®çœãèæ¯ãèšå®ããŸãã
On_drawã¯ããŠã£ã³ããŠããªããŒãããå¿ èŠããããšãã«åŒã³åºãããAPIã¡ãœãããè¡šããŸãã
次ã®å³ã¯ãPygletãŠã£ã³ããŠã«ç»åãããŒãããäŸã瀺ããŠããŸãã
import os original_path = "C:/images/car.png" new_path = os.path.normpath(original_path)
ãã®ãŠã£ã³ããŠã«ã¯éæ¢ç»åã衚瀺ãããŸãã
ããŠã¹ãšããŒããŒãã®å¶åŸ¡
Pygletã®ãŠã£ã³ããŠã¢ãžã¥ãŒã«ã«ã¯ããŠãŒã¶ãŒãã¢ãã¡ãŒã·ã§ã³ã®åçãå¶åŸ¡ã§ããAPIã¡ãœãããããã€ãå®è£ ãããŠããŸãã on_mouse_pressãon_key_pressãªã©ã®APIã¡ãœããã¯ãã¢ãã¡ãŒã·ã§ã³ã®åçäžã«ããŠã¹ãããŒããŒãã®ã€ãã³ãããã£ããã£ããããã«äœ¿çšãããŸãã ãããã®ã¡ãœããã¯ãç¹å®ã®ã¿ã¹ã¯ãå®è¡ããããã«äœ¿çšã§ããŸãã
ãµãŠã³ããšãã§ã¯ãã®è¿œå
Pygletã¯ããªãŒãã£ãªããã³ãããªã³ã³ãã³ãã®åçããµããŒãããŠããŸãã 次ã®ã³ãŒãã¯ãã¢ãã¡ãŒã·ã§ã³è¡šç€ºäžã«ã¡ãã£ã¢ãã¡ã€ã«ãããŠã³ããŒãããŠåçããŸãã
1 background_sound = pyglet.media.load( 2 'C:/AudioFiles/background.mp3', 3 streaming=False) 4 background_sound.play()
è¡3ã§æäŸããã2çªç®ã®ãªãã·ã§ã³ã®åŒæ°ã¯ãããŒãæã«ã¡ãã£ã¢ãã¡ã€ã«å šäœãã¡ã¢ãªã«ãã³ãŒãããŸãã ããã¯ãã¢ãã¡ãŒã·ã§ã³äžã«ã¡ãã£ã¢ãã¡ã€ã«ãæ°ååçããå¿ èŠãããå Žåã«éèŠã§ãã API playïŒïŒã¡ãœããã¯ãã¡ãã£ã¢ãã¡ã€ã«ã®ã¹ããªãŒãã³ã°ãéå§ããŸãã
ãã°ã¬ããã¢ãã¡ãŒã·ã§ã³
Pygletãã¬ãŒã ã¯ãŒã¯ã¯ãã¢ãã¡ãŒã·ã§ã³ã®éçºã«å¿ èŠãªå€æ°ã®ã¢ãžã¥ãŒã«ãæäŸããŸãã Pygletã䜿çšããŠ2Dã¢ãã¡ãŒã·ã§ã³ãäœæããæ¹æ³ãèŠãŠã¿ãŸãããã
æ¢åã®ã¢ãã¡ãŒã·ã§ã³ãåçãã
ããšãã°ãGIF圢åŒã®ã¢ãã¡ãŒã·ã§ã³ãã¡ã€ã«ãæ¢ã«ããå Žåã¯ãããŠã³ããŒãããŠPygletã«çŽæ¥è¡šç€ºã§ããŸãã ãããè¡ãã«ã¯ãpyglet.image.load_animation APIã¡ãœããã䜿çšããŸãã
æ¢åã®ã¢ãã¡ãŒã·ã§ã³ã®è¡šç€º
以äžã®ãµã³ãã«ã³ãŒãã¯ãPygletã䜿çšããŠã¢ãã¡ãŒã·ã§ã³ã衚瀺ããæ¹æ³ãç解ããã®ã«åœ¹ç«ã¡ãŸãã
1 import pyglet 2 3 animation = pyglet.image.load_animation( 4 "images/SimpleAnimation.gif") 5 6 # . 7 animSprite = pyglet.sprite.Sprite(animation) 8 9 # Pyglet 10 w = animSprite.width 11 h = animSprite.height 12 win = pyglet.window.Window(width=w, height=h) 13 14 # r,gb, 15 r, g, b, alpha = 0.5, 0.5, 0.8, 0.5 16 17 # OpenGL . 18 pyglet.gl.glClearColor(r, g, b, alpha) 19 20 # 21 # pyglet.Window 22 @win.event 23 def on_draw(): 24 win.clear() 25 animSprite.draw() 26 27 pyglet.app.run()
- APIã®3è¡ç®ã§ãimage.load_animationã¡ãœããã¯ãæå®ãããã¢ãã¡ãŒã·ã§ã³ãã¡ã€ã«ã䜿çšããŠimage.Animationã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŸãã
- è¡7ã¯ããã®ã¢ãã¡ãŒã·ã§ã³ã®ã¹ãã©ã€ããªããžã§ã¯ããäœæããŸãã
- è¡12ã§äœæãããPygletãŠã£ã³ããŠã¯ãã¢ãã¡ãŒã·ã§ã³ã®è¡šç€ºã«äœ¿çšãããŸãã
- animSpriteã¯ããŠã£ã³ããŠã®é«ããšå¹ ãèšå®ããŸãã
- ãŠã£ã³ããŠã®èæ¯è²ã¯ãglClearColorãžã®OpenGLåŒã³åºãã䜿çšããŠèšå®ãããŸãã
- 次ã«ãPygletãŠã£ã³ããŠã§ã¢ãã¡ãŒã·ã§ã³ãã¡ã€ã«ãã¹ãã©ã€ãã«æ¥ç¶ããå¿ èŠããããŸãã
- Pyglet.windowã¯ãã€ãã³ããçºçãããšãã«åŒã³åºãããon_draw APIã¡ãœãããå®çŸ©ããŸãã
- ã¢ãã¡ãŒã·ã§ã³ã衚瀺ããã«ã¯ãè¡25ã§drawïŒïŒãåŒã³åºãããŸãã
- 27è¡ç®ã®ã³ãŒãã¯ããã®ã¢ããªã±ãŒã·ã§ã³ãèµ·åããŸãã
泚ïŒã¢ãã¡ãŒã·ã§ã³ãã¡ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãšåããã£ã¬ã¯ããªã«é 眮ããå¿ èŠããããŸãã
ãã®äŸã§ã¯ãã¢ãã¡ãŒã·ã§ã³ãPygletãŠã£ã³ããŠã«è¡šç€ºããŸãã 4è¡ç®ã®è¡ãå€æŽããã ãã§ãä»»æã®ã¢ãã¡ãŒã·ã§ã³ãã¡ã€ã«ã䜿çšã§ããŸãã
次ã®å³ã¯ãç°ãªãæéééã§ã®ã¢ãã¡ãŒã·ã§ã³ãã¡ã€ã«ããã®ããã€ãã®ãã¬ãŒã ã瀺ããŠããŸãã
ç»åã®ã·ãŒã±ã³ã¹ã䜿çšããã¢ãã¡ãŒã·ã§ã³
Animation.from_image_sequenceã¯ãå€æ°ã®é£ç¶ããç»åã䜿çšããŠã¢ãã¡ãŒã·ã§ã³ãäœæã§ããAPIã¡ãœããã§ãã åç»åã¯ãã¢ãã¡ãŒã·ã§ã³ãã¬ãŒã ãšããŠé çªã«è¡šç€ºãããŸãã ã¢ãã¡ãŒã·ã§ã³ãã¬ãŒã ã衚瀺ãããæéã¯ããªããžã§ã¯ãã®ã¢ãã¡ãŒã·ã§ã³ãäœæãããšãã«åŒæ°ãšããŠç€ºãããããã¢ãã¡ãŒã·ã§ã³ã€ã³ã¹ã¿ã³ã¹ã®äœæåŸã«èšå®ã§ããŸãã
é 次衚瀺ãã¢ãã¡ãŒã·ã§ã³ãšãªãããã€ãã®å³é¢ãäœæããŠãç»é¢ã«è¡šç€ºããŠã¿ãŸãããã åç»åãã¡ã€ã«ã¯ãæå®ãããæéã®éãã¢ãã¡ãŒã·ã§ã³ãã¬ãŒã ãšããŠè¡šç€ºãããŸãã ããšãã°ãæ¯ãåã®ããç¥ç¶ã®æèšã®ç»åã䜿çšããŸãã ã¢ãã¡ãŒã·ã§ã³ã¯ãæèšã®æ¯ãåã®æ¯åã§ãã ãã®ã¢ãã¡ãŒã·ã§ã³ã¯3ãã¬ãŒã ã®ç»åã§æ§æããããã®ãã¡2ãã¬ãŒã ã§ã¯æ¯ãåãå察åŽã«ãããŸãã ãããã®ç»åã¯æ¬¡ã®ããã«ãªããŸãã
æèšã®æ¯ãåã埩掻ãããŸãã
1 import pyglet 2 3 image_frames = ('images/clock1.png', 4 'images/clock2.png', 5 'images/clock3.png') 6 7 # - 8 images = map(lambda img: pyglet.image.load(img), 9 image_frames) 10 11 # 0,33 12 # 13 # , 14 # , 1 15 16 animation = pyglet.image.Animation.from_image_sequence( 17 images, 0.33) 18 # 19 animSprite = pyglet.sprite.Sprite(animation) 20 21 # Pyglet 22 w = animSprite.width 23 h = animSprite.height 24 win = pyglet.window.Window(width=w, height=h) 25 26 # 27 pyglet.gl.glClearColor(1, 1, 1, 1) 28 29 @win.event 30 def on_draw(): 31 win.clear() 32 animSprite.draw() 33 34 pyglet.app.run()
- image_framesã¿ãã«ã«ã¯ç»åãã¹ãå«ãŸããŠããŸãã
- 8è¡ç®ã®mapé¢æ°ãåŒã³åºããšãåç»åãã¹ã«å¯Ÿå¿ããpyglet.imageãªããžã§ã¯ããäœæããããªã¹ãã«ä¿åãããŸãã
- 16è¡ç®ã§ã¯ãAPIã¡ãœããAnimation.from_image_sequenceã䜿çšããŠã¢ãã¡ãŒã·ã§ã³ãäœæãããŸãã ãã®ã¡ãœããã¯ãæåã®åŒæ°ãšããŠç»åãªããžã§ã¯ãã®ãªã¹ããåããŸãã 2çªç®ã®è¿œå ã®åŒæ°ã¯ãåãã¬ãŒã ã®è¡šç€ºæéïŒç§ïŒã§ãã å®å šãªã¢ãã¡ãŒã·ã§ã³ã«ãŒãã®åèšæéã1ç§ã«ãªãããã«ã0.33ç§ã«èšå®ããŸãã ãããã£ãŠãã¢ãã¡ãŒã·ã§ã³ã§æ¯ãåãå®å šã«1åæ¯ãã«ã¯1ç§ããããŸãã
泚ïŒã¢ãã¡ãŒã·ã§ã³ãã¡ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãã£ã¬ã¯ããªå ã®å¥ã®ãã©ã«ããŒã«é 眮ããå¿ èŠããããŸãã
ãã®äŸãéå§ãããšãæ¯ãåãæ¯åããæèšã衚瀺ããããŠã£ã³ããŠã衚瀺ãããŸãã ã¢ãã¡ãŒã·ã§ã³ãµã€ã¯ã«ã¯ããŠã£ã³ããŠãéãããŸã§ç¶ããŸãã
ã ãããç§ãã¡ã¯ãã»ãšãã©ãã¹ãŠã®ãœããšãã®åŠç«¥ãåäŸã®é ã«ããããšã®èŠãç®ãäœæããããŒãããã¯ã®ããŒãžã«æŒ«ç»ãæããŸããïŒ å ¥åãšããŠäžé£ã®ç»åãåãåããPygletã䜿çšããŠã¢ãã¡ãŒã·ã§ã³ãäœæããç°¡åãªãŠãŒãã£ãªãã£ãäœæããŸããã ãã®ã¿ã¹ã¯ãéæããããã«ãAnimation.from_image_sequenceã䜿çšããŸããã
çµè«
ãã®èšäºã§ã¯ãPygletã䜿çšããŠPythonã§2Dã¢ãã¡ãŒã·ã§ã³ãäœæããæ¹æ³ãåŠã³ãŸããã
ç¹ã«ãç§ãã¡ã¯ïŒ
- Pygletã®åºæ¬ã³ã³ããŒãã³ãã®ããã€ãã調ã¹ãŸããããããã¯ãã¢ãã¡ãŒã·ã§ã³ãäœæããããã®åºç€ã圢æããŸãã WindowãImageãAnimationãSpriteãAnimationFrameãImageGridãªã©ã®è°è«ãããã¢ãžã¥ãŒã«
- ç»åã®ã·ãŒã±ã³ã¹ã䜿çšããŠã¢ãã¡ãŒã·ã§ã³ãäœæããã³ãŒããæžããŸããã
ãœãŒã¹ïŒ www.packtpub.com/article/python-multimedia-fun-with-animations-using-pyglet
翻蚳ïŒã»ã¬ãã