Ruby/SDL 0.8.3 ÂçÎÓ°ìÊ¿ 1 ³µÍ× ¤³¤ì¤Ï¡¢Ruby¤«¤éSDL¤Îµ¡Ç½¤ò»È¤¦¤¿¤á¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ç¤¹¡£ SDL¤È¤Ï¡¢Win32,Linux,BeOS,MacOS,FreeBSD,SolarisÅù¤ÇÆ°¤¯¡¢¥¯¥í¥¹¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ê¥²¡¼¥à³«È¯Íѥ饤¥Ö¥é¥ê¤Ç¤¹¡£ ¤³¤ì¤Ï¤Þ¤À³«È¯ÅÓÃæ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹¡£ 2 Æ°ºî´Ä¶ Linux¤ÎX¾å¡¢Win32 ¤Þ¤¿¡¢FreeBSD¤ÇÆ°ºî¤¬³Îǧ¤µ¤ì¡¢Ports¤¬ºî¤é¤ì¤¿¤½¤¦¤Ç¤¹¡£ BeOS¾å¤Ç¤âÆ°¤¯¤½¤¦¤Ç¤¹¡£ ¤½¤ì°Ê³°¤Ç¤Ï³Îǧ¤·¤Æ¤¤¤Þ¤»¤ó¡£ 3 ɬÍפʥ饤¥Ö¥é¥ê ¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ï¡¢ruby¤Î½èÍý·Ï¤Î¾¡¢°Ê²¼¤Î¥é¥¤¥Ö¥é¥ê¤òɬÍפȤ·¤Þ¤¹¡£ SDL_mixer,SDL_ttf,SDL_image,SGE,smpeg¤Ï¤Ê¤¯¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ SDL(ɬ¿Ü) http://www.libsdl.org/ forwardable(ɬ¿Ü) Ruby 1.6.4 °Ê¹ß¤ÏRuby¤Ëɸ½à¤ÇÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£ ftp://ftp.netlab.co.jp/pub/lang/ruby/contrib/forwardable-1.1.tgz SDL_mixer(¥ª¥×¥·¥ç¥ó) http://www.libsdl.org/projects/SDL_mixer/index.html SDL_ttf(¥ª¥×¥·¥ç¥ó) http://www.libsdl.org/projects/SDL_ttf/index.html SDL_image(¥ª¥×¥·¥ç¥ó) http://www.libsdl.org/projects/SDL_image/index.html SGE(¥ª¥×¥·¥ç¥ó) http://www.etek.chalmers.se/~e8cal1/sge/ SMPEG(¥ª¥×¥·¥ç¥ó) http://www.lokigames.com/development/smpeg.php3 SDLSKK(¥ª¥×¥·¥ç¥ó) http://www.kmc.gr.jp/~ohai/ 4 ¥¤¥ó¥¹¥È¡¼¥ë Linux¾å¤Ç¤Î¥¤¥ó¥¹¥È¡¼¥ë¤òÀâÌÀ¤·¤Þ¤¹¡£ Windows¾å¤Ç¤ÏÊ̤ËÍÑ°Õ¤·¤Æ¤¤¤ë¥Ð¥¤¥Ê¥ê¤ò»ÈÍѤ·¤¿¤Û¤¦¤¬³Ú¤Ç¤·¤ç¤¦¡£ FreeBSD¤Ë¤ÏPort¤¬¤¢¤ë¤Î¤Ç¤½¤ì¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ ºî¼Ô¤ÎWindows¤Î´Ä¶¤Ç¤Ï¡¢extconf.rb¤ò»ÈÍѤ»¤ºMakefile¤ò¼ê¤Ç½ñ¤¤¤Æ ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¤¤¿¤ê¤·¤Þ¤¹¡£ (1)ruby¤Î¥¤¥ó¥¹¥È¡¼¥ë ruby¤Î¥É¥¥å¥á¥ó¥ÈÅù¤Ë½¾¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£ (2)SDL¤Î¥¤¥ó¥¹¥È¡¼¥ë ¥½¡¼¥¹¤òŸ³«¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ ./configure --disable-pthreads (¤³¤³¤Ç--disable-pthreads¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Ê¤¤¤È¤¦¤Þ¤¯Æ°¤¤Þ¤»¤ó) (¤³¤Î¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æ¤â¡¢SDL¤ÏÁ´µ¡Ç½»È¤¨¤ë¤è¤¦¤Ç¤¹) make make install (3)SGE¤Î¥¤¥ó¥¹¥È¡¼¥ë Makefile.conf¤òÊÔ½¸¤·¤Æ¡¢C_ONLY=y¤ò͸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£ make; make install¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ (4)SDL_mixer,SDL_ttf,SDL_image,SMPEG,SDLSKK¤Î¥¤¥ó¥¹¥È¡¼¥ë Éí°¤Î¥É¥¥å¥á¥ó¥È¤Ë½¾¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£ (5)¤³¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê(Ruby/SDL)¤Î¥¤¥ó¥¹¥È¡¼¥ë ¤³¤Î¥é¥¤¥Ö¥é¥ê¤Î¥½¡¼¥¹¤òŸ³«¤·¤¿¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ç ruby extconf.rb make make install ¤È¤·¤Æ¤¯¤À¤µ¤¤¡£ 5 »È¤¤Êý require 'sdl'¤Ç»È¤¨¤Þ¤¹¡£ ¾Ü¤·¤¯¤Ï¡¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤ä¥É¥¥å¥á¥ó¥È¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£ sample/*.rb ¥µ¥ó¥×¥ë ¥µ¥ó¥×¥ëÍѤΥǡ¼¥¿¤ÏÉí°¤·¤Æ¤¤¤Þ¤»¤ó¡£¼«Ê¬¤ÇÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ rubysdl_const_list.txt Äê¿ô¤Î¥ê¥¹¥È(ÀâÌÀ¤Ê¤·) rubysdl_doc.rd ¥ê¥Õ¥¡¥ì¥ó¥¹ SDL¤Î¥É¥¥å¥á¥ó¥È SDL¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Î¤È¤¤ËŸ³«¤·¤¿¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¤¢¤ë¤Ï¤º¤Ç¤¹¡£ ¤Þ¤¿¡¢http://www.libsdl.org/¤«¤éÆüËܸì¤Î¥É¥¥å¥á¥ó¥È¤â¼ê¤ËÆþ¤ê¤Þ¤¹¡£ ¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤Ï¤³¤ì¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£ 6 OpenGL¤Ë¤Ä¤¤¤Æ ¤³¤Î¥é¥¤¥Õ¥é¥ê¤Ë¤è¤Ã¤ÆOpenGL¤Ø¤Î¥¢¥¯¥»¥¹¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ ÊýË¡ (1) SDL¤«¤éOpenGL¤ò»È¤¨¤ë¤è¤¦¤ËÀßÄꤹ¤ë¡£ (2) RAA¤¢¤¿¤ê¤«¤éRubyÍѤΠOpenGL Interface ¤Î¥½¡¼¥¹¤ò¼è¤Ã¤Æ¤¯¤ë¡£ (3) OpenGL Interface ¤Î¥½¡¼¥¹¤òŸ³«¤·¤Æ¡¢rbogl.h rbogl.c ogl.c glu.c ¤ò¤³¤Î¥é¥¤¥Ö¥é¥ê¤Î¥½¡¼¥¹¤ÈƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤¹¤ë¡£ (4) ruby extconf.rb ¤ò¤¹¤ë¤È¤¤Ë¡¢--enable-opengl , --linkoglmodule , --with-x11-dir=/usr/X11R6(¤³¤ì¤ÏUnix·ÏOS¤Î¾ì¹ç¤Î¤ß) ¤ò»ØÄꤹ¤ë¡£ (5) make ,make install ¤ò¤¹¤ë¡£ ¤³¤ì¤Ç»ÈÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ Ê̤ÎÊýË¡ (1) SDL¤«¤éOpenGL¤ò»È¤¨¤ë¤è¤¦¤ËÀßÄꤹ¤ë¡£ (2) RAA¤¢¤¿¤ê¤«¤éRubyÍѤΠOpenGL Interface ¤ò¼è¤Ã¤Æ¤¤Æ¥¤¥ó¥¹¥È¡¼¥ë¡£ (3) ruby extconf.rb ¤ò¤¹¤ë¤È¤¤Ë¡¢--enable-opengl ¤ò»ØÄꤹ¤ë¡£ (4) make ; make install ¤¹¤ë¡£ ¤³¤Î¾ì¹ç¤ÏRuby¤Î¥¹¥¯¥ê¥×¥ÈÆâ¤Çrequire 'opengl'¤ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï OpenGL Interface ¤Î¤â¤Î¤ò¤½¤Î¤Þ¤Þ»È¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤Î»È¤¤¤«¤¿¤Ï¡¢SDL¤Î¥É¥¥å¥á¥ó¥È¡¢OpenGL¤Î¥É¥¥å¥á¥ó¥È¡¢ ¤ª¤è¤Ó sample/testgl.rb ¤ò¸«¤ÆÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡£ Ãí°Õ OpenGL¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¼ÂÁõ¤Ë¤è¤Ã¤Æ¾¯¤·¤º¤Ä°Û¤Ê¤ê¤Þ¤¹¡£¤½¤Î¤¿¤á ¤½¤Î¤Þ¤Þ¤À¤È¤È¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤Ê¤¤¡¢¤¦¤Þ¤¯Æ°¤«¤Ê¤¤¤Ê¤É¤Î¸½¾Ý¤¬µ¯¤¤ë ¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¾ì¹ç OpenGL Interface ¤Î¥½¡¼¥¹¤Ë¼ê¤òÆþ¤ì¤ëɬÍ× ¤¬¤¢¤ê¤Þ¤¹¡£ 7 ¥é¥¤¥»¥ó¥¹ GNU LGPL(GNU Lesser General Public License) version 2.1 °Ê¹ß¤Ë½¾¤¤¤Þ¤¹¡£ ¾Ü¤·¤¯¤ÏLICENSE¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£ ¤¿¤À¤·¡¢sample/ °Ê²¼¤Ë¤¢¤ë¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Ï¤³¤ì¤Ë¤Ï½¾¤ï¤º¡¢ ¼«Í³¤ËÍøÍѤ·¤Æ¤è¤¤¤Ç¤¹¡£ 8 ¼Õ¼ °Ê²¼¤Î¿Íã¤Ë´¶¼Õ¤·¤Þ¤¹¡£ * FreeBSD¤Ç¤ÎÆ°ºî³Îǧ¤ò¤·¡¢Ports¤òºî¤Ã¤Æ¤¤¤¿¤À¤¤¤¿Akinori MUSHA¤µ¤ó¡£ * ¤µ¤Þ¤¶¤Þ¤Ê°Õ¸«¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤ê¡¢¤¤¤¯¤Ä¤â¤Î¥Ñ¥Ã¥Á¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤Ã¤¿¤ê ¤·¤¿¤¿¤à¤é¤µ¤ó¡£ * ¤½¤·¤Æ¤â¤¦¤Ò¤È¤Ä¤ÎSDL¤ÎRuby³ÈÄ¥¥é¥¤¥Ö¥é¥ê"RULD"¤Îºî¼Ô¤Ç¤¢¤ë Danny van Bruggen ¤µ¤ó(¤¤¤¯¤Ä¤«¤Î¥¢¥¤¥Ç¥¢¤ò¤³¤Î¥é¥¤¥Ö¥é¥ê¤«¤éÆÀ¤Þ¤·¤¿)¡£ * rubysdl_ttf.c¤Îµ¡Ç½³ÈÄ¥¥Ñ¥Ã¥Á¤äVine¡¢Debian¤Î¥Ñ¥Ã¥±¡¼¥¸ºîÀ®¤Ê¤É¤ò ¤·¤Æ¤¤¤¿¤À¤¤¤¿¤ä¤Þ¤À¤¢¤¤é¤µ¤ó¡£ * ¤¤¤¯¤Ä¤«¤Î¥Ñ¥Ã¥Á¤ò²¼¤µ¤Ã¤¿ Wayne Conrad ¤µ¤ó¡£ 9 ¤½¤Î¾ ¤Þ¤À¥Æ¥¹¥È¤µ¤ì¤Æ¤¤¤Ê¤¤µ¡Ç½¤¬Â¿¤¯¤¢¤ê¤Þ¤¹(¥Ñ¥ì¥Ã¥È´ØÏ¢¤Îµ¡Ç½¤Ê¤É)¡£ Í×˾¡¢¥Ð¥°Êó¹ð¡¢»ÈÍѤ·¤¿´¶ÁÛÅù¤Ï¡¢ohai@kmc.gr.jp¤Ë¥á¡¼¥ë¤ò½Ð¤·¤Æ ¤¯¤À¤µ¤¤¡£º£¤Î¤È¤³¤í¤Þ¤ë¤ÇÈ¿¶Á¤¬¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢´Êñ¤Ê´¶ÁۤǤâÁ÷¤Ã¤Æ¤¯¤ì ¤ë¤È´ò¤·¤¤¤Ç¤¹¡£ ¤Þ¤¿¡¢ruby-list¡¢ruby-ext¤ò¸«¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¥Ð¥°Åù¤ò¤½¤³¤ËÊó¹ð¤·¤Æ¤¯¤ì¤Æ¤â Îɤ¤¤Ç¤¹¡£ °Ê¾å