KXL 1.x.x²òÀâ

  • KXL¤Î³µÍ×
  • ¤È¤ê¤¢¤¨¤ººî¤Ã¤Æ¤ß¤ë
  • ¥Ó¥¸¥å¥¢¥ë´ØÏ¢¤Î²òÀâ
  • ¥µ¥¦¥ó¥É´ØÏ¢¤Î²òÀâ
  • ¤½¤Î¾¤Î²òÀâ


  • KXL¤Î³µÍ×

      ¸µ¡¹¤³¤ì¤Ï£Ç£å£ë£é£² Ver0.8.7¤Þ¤Ç¤Ë»ÈÍѤ·¤Æ¤¤¤¿ÉÁ²è·Ï¤È²»·Ï¤Î´Ø¿ô·´¤Ç¤·¤¿¤¬¡¢¤³¤ì¤é¤ò¥é¥¤¥Ö¥é¥êÍѤ˼êľ¤·¤·¤¿¤â¤Î¤Ç¤¹¡£½ÐÍè¤È¤·¤Æ¤Ï£Ç£å£ë£é£²¤ä£Ç£å£ë£é£³¡¢£Ó£ð£á£ã£å£Á£ò£ù£á£ò£ù£áÅù¤ò¸«¤Æ¤â¤é¤¨¤Ðʬ¤«¤ë¤È»×¤¤¤Þ¤¹¡£¤½¤ì¤Ç¡¢µ¤¤Å¤¤¤¿¤È»×¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤é¤Ë¤Ï¥Ü¥¿¥ó¤ä¥é¥Ù¥ë¡¢¥Õ¥¡¥¤¥ëÁªÂò¤È¸À¤Ã¤¿¡¢¤¤¤ï¤æ¤ë¥¦¥£¥¸¥§¥Ã¥È¤Ï¤¢¤ê¤Þ¤»¤ó(ɬÍפʤ¤¡©)1Ëç¤Î¥¦¥£¥ó¥É¥¦¤È1Ëç¤Î¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×µÚ¤Ó´Ê°×¥µ¥¦¥ó¥É¤Î¤ß¤Ç´Êñ¤Ê¥²¡¼¥à¤ò³Ú¤·¤Æ³«È¯¤·¤Á¤ã¤ª¤¦¤È¸À¤¦»ö¤Ç¤¹¡£¤¢¤Þ¤ê£Ø£ì£é£â¤ò°Õ¼±¤·¤Ê¤¯¤Æ¤â´Êñ¤Ë¥×¥í¥°¥é¥ß¥ó¥°½ÐÍè¤ë¤è¤¦¤Ë¤·¤¿¤Ä¤â¤ê¤Ç¤¹¡£¥¤¥á¡¼¥¸¤È¤·¤Æ¤Ï²¼¿Þ¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
     
               Window                 Frame              Image
            __________________     __________________     ____
           /                 /    /            _____/____/_  /
          /                 /    /          __/_   /    /___/
         /                 /    /          / / /  / 
        /                 /    /          /___/  /      Text
       /          <------/----/            ____ /______"HelloWorld"
      /                 /    /            /    /
     /                 /    /       HelloWorld/
    /_________________/    /_________________/


    ¤È¤ê¤¢¤¨¤ººî¤Ã¤Æ¤ß¤ë

    #include <KXL.h>
    #include <stdio.h>

    int main(void)
    {
      KXL_Rect rect = {
        0,    /** º¸   **/
        0,    /** ¾å   **/
        100,  /** Éý   **/
        100   /** ¹â¤µ **/
      };
      Bool flag = False;

      /**
      *** 100x100¤Ç¥¦¥£¥ó¥É¥¦¤òºîÀ®¤¹¤ë
      *** ¥¤¥Ù¥ó¥È¤ÏºÆÉÁ²è¥¤¥Ù¥ó¥È¤È¥­¡¼²¡²¼¤Î¤ß¼õ¤±ÉÕ¤±¤ë
      *** ¥ê¥¿¡¼¥ó¥­¡¼¤¬²¡¤µ¤ì¤¿¤é½ªÎ»¤¹¤ë
      **/
      KXL_CreateWindow(100, 100, "sample",
                       KXL_EVENT_EXPOSURE_MASK |
                       KXL_EVENT_KEY_PRESS);
      while (flag != True) {
        /** ¥¤¥Ù¥ó¥È¥ë¡¼¥× **/
        while (KXL_CheckEvents()) {
          /** ¥¤¥Ù¥ó¥È¤ò¼èÆÀ¤¹¤ë **/
          switch (KXL_GetEvents()) {
          case KXL_EVENT_EXPOSE: /** ºÆÉÁ²è¥¤¥Ù¥ó¥È **/
            /** ¥Õ¥ì¡¼¥à¤ò¥¯¥ê¥¢¤¹¤ë **/
            KXL_ClearFrame(rect);
            /** ¡Ösample¡×¤òÉÁ²è¤¹¤ë **/
            KXL_PutText(30, 50, "sample");
            /** ¥Õ¥ì¡¼¥à¤ò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤ë **/
            KXL_UpDate(rect);
            break;
          case KXL_EVENT_KEY_PRESS: /** ¥­¡¼²¡²¼¥¤¥Ù¥ó¥È **/
            /** ¥ê¥¿¡¼¥ó¥­¡¼¤¬²¡¤µ¤ì¤¿¤é½ªÎ» **/
            if (KXL_GetKey() == KXL_KEY_Return)
              flag = True;
            break;
          }
        }
      }
      /** ¥¦¥£¥ó¥É¥¦¤òÊĤ¸¤ë **/
      KXL_DeleteWindow();
      return 0;
    }

    ¤Þ¤º¤Ï¥¦¥£¥ó¥É¥¦¤òºîÀ®¤¹¤ë¡£
      KXL_CreateWindow(100, 100, "sample",
                       KXL_EVENT_EXPOSURE_MASK |
                       KXL_EVENT_KEY_PRESS);
    ¤³¤ì¤ÏÉý100¡¢¹â¤µ100¤ÎÂ礭¤µ¤Î¥¦¥£¥ó¥É¥¦¤Ç¡¢¥¿¥¤¥È¥ë¥Ð¡¼¤Ë¡Ösample¡×¤Èɽ¼¨¤·¡¢¥¤¥Ù¥ó¥È¤È¤·¤Æ¡¢ºÆÉÁ²è¤È¥­¡¼²¡²¼¤ò¼õ¤±ÉÕ¤±¤ë¡¢¤È¤¤¤¦ÀßÄê¤Ç¤¹¡£¤³¤Î»þÅÀ¤ÇƱ¤¸Â礭¤µ¤Î¥Ô¥Ã¥¯¥¹¥Þ¥Ã¥×(°Ê²¼¥Õ¥ì¡¼¥à¤ò¸À¤¦)¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£´ðËÜŪ¤Ë¤Ï¥¦¥£¥ó¥É¥¦¤ËľÀÜÉÁ²è¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢°ìÅ٥ե졼¥à¤ËÉÁ²è¤·¤Æ¤«¤é¥Õ¥ì¡¼¥à¤ò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤Þ¤¹¡£

    ¼¡¤Ë¥¤¥Ù¥ó¥È¤Î¼õ¤±ÉÕ¤±¤ò¤·¤Þ¤¹¡£
      while (KXL_CheckEvents()) {
        switch (KXL_GetEvents()) {
          case KXL_EVENT_EXPOSE: /** ºÆÉÁ²è¥¤¥Ù¥ó¥È **/
               :
          case KXL_EVENT_KEY_PRESS: /** ¥­¡¼²¡²¼¥¤¥Ù¥ó¥È **/
               :
         }
      }
    KXL_CheckEvents()¤Ç¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤«¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£¥¤¥Ù¥ó¥È¤¬²¿¤â¤Ê¤±¤ì¤Ðwhile¤òÈ´¤±¤Þ¤¹¡£¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¤Ê¤é¤Ð¡¢KXL_GetEvents()¤Ç²¿¤Î¥¤¥Ù¥ó¥È¤«¤òÄ´¤Ù¤Þ¤¹¡£

    ºÆÉÁ²è¥¤¥Ù¥ó¥È(KXL_EVENT_EXPOSE)¤¬È¯À¸¤·¤¿¤é¥Õ¥ì¡¼¥à¤ËɬÍפʤâ¤Î¤òÉÁ²è¤·¤Æ¤¤¤­¤Þ¤¹¡£¤Þ¤º¥Õ¥ì¡¼¥àÁ´ÂΤò¥¯¥ê¥¢¤·¤Þ¤¹¡£
      KXL_ClearFrame(rect);
    rect¹½Â¤ÂΤ˥ե졼¥à¤Î¤É¤ÎÉôʬ¤ò¥¯¥ê¥¢¤¹¤ë¤«¤òÀßÄꤷ¤Æ¤ª¤­¤Þ¤¹¡£¤³¤Î¾ì¹ç¥Õ¥ì¡¼¥àÁ´ÂΤʤΤǺ¸=0¡¢¾å=0¡¢Éý=100¡¢¹â¤µ=100¤òÀßÄꤷ¤Þ¤¹¡£

    ¥Õ¥ì¡¼¥à¤ò¥¯¥ê¥¢¤·¤¿¤éʸ»úÎó¤òÉÁ²è¤·¤Þ¤¹¡£
      KXL_PutText(30, 50, "sample");
    ¤³¤ì¤Ï¥Õ¥ì¡¼¥à¤Îº¸¾å¤«¤éº¸¤Ë30¡¢²¼¤Ë50¤Î°ÌÃ֤ˡÖsample¡×¤È¤¤¤¦Ê¸»ú¤òÉÁ²è¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥©¥ó¥È¥»¥Ã¥È¤Ï
    "-adobe-courier-bold-r-normal--14-*-*-*-*-*-iso8859-1"¤Ç¡¢¿§¤ÏÇò¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

    ¥Õ¥ì¡¼¥à¤Ø¤ÎÉÁ²è¤¬½ª¤Ã¤¿¤é¡¢¥Õ¥ì¡¼¥à¤ò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤Þ¤¹¡£
      KXL_UpDate(rect);
    rect¹½Â¤ÂΤ˥ե졼¥à¤Î¤É¤ÎÉôʬ¤ò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤ë¤«¤òÀßÄꤷ¤Æ¤ª¤­¤Þ¤¹¡£¤³¤Î¾ì¹ç¥Õ¥ì¡¼¥àÁ´ÂΤòÈ¿±Ç¤ò¤µ¤»¤ë¤Î¤Çº¸=0¡¢¾å=0¡¢Éý=100¡¢¹â¤µ=100¤òÀßÄꤷ¤Þ¤¹¡£

    ¥­¡¼²¡²¼¥¤¥Ù¥ó¥È(KXL_EVENT_KEY_PRESS)¤¬È¯À¸¤·¤¿¤é¤É¤Î¥­¡¼¤¬²¡¤µ¤ì¤¿¤«¤òȽÄꤷ¤Þ¤¹¡£
      if (KXL_GetKey() == KXL_KEY_Return)
        flag = True;
    KXL_GetKey()¤Ç²¡¤µ¤ì¤¿¥­¡¼¤ò¼èÆÀ¤·¡¢¤½¤ì¤¬¥ê¥¿¡¼¥ó¥­¡¼(KXL_KEY_Return)¤Ê¤é¤Ðflag¤ËTrue¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£¤³¤ì¤Ç¥ë¡¼¥×¤«¤éÈ´¤±¤Þ¤¹¡£

    ºÇ¸å¤Ë¥¦¥£¥ó¥É¥¦¤òÊĤ¸¤Þ¤¹¡£
      KXL_DeleteWindow();

    °Ê¾å´Êñ¤Ê¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î²òÀâ¤Ç¤¹¡£¤É¤¦¤Ç¤¹¡¢´Êñ¤Ç¤·¤ç¡©
     
     

     Ìá¤ë


    ¥Ó¥¸¥å¥¢¥ë´ØÏ¢¤Î²òÀâ

  • ¥¦¥£¥ó¥É¥¦¤ÎºîÀ®
  • ¥¦¥£¥ó¥É¥¦¤Îºï½ü
  • ¥Ç¥£¥¹¥×¥ì¥¤¤Î»ØÄê
  • ¥¦¥£¥ó¥É¥¦¤Î¹¹¿·
  • ¥Õ¥©¥ó¥È¤Î»ØÄê
  • ¥Õ¥ì¡¼¥à¤Î¥µ¥¤¥ºÊѹ¹
  • ÉÁ²è¿§¤ÎÀßÄê
  • ÅÀ¤ÎÉÁ²è
  • Àþ¤ÎÉÁ²è
  • Ϣ³¤·¤¿Àþ¤ÎÉÁ²è
  • ĹÊý·Á¤ÎÉÁ²è
  • ¥Õ¥ì¡¼¥à¤Î¾Ãµî
  • BMP¥¤¥á¡¼¥¸¤ÎÆÉ¤ß¹þ¤ß
  • ¥¤¥á¡¼¥¸¤ÎÉÁ²è
  • ¥¤¥á¡¼¥¸¤Î¶ë·Á»ØÄêÉÁ²è
  • ¥¤¥á¡¼¥¸¤Î¥³¥Ô¡¼
  • ¥¤¥á¡¼¥¸¤Î³È½Ì
  • ¥¤¥á¡¼¥¸¤Îºï½ü
  • ¥Æ¥­¥¹¥È¤ÎÉÁ²è
  • ¥Æ¥­¥¹¥È¤Î²£Éý¤Î¼èÆÀ
  • ¥¤¥Ù¥ó¥È¤Î̵ͭ
  • ¥¤¥Ù¥ó¥È¤Î¼èÆÀ
  • ¥­¡¼¥³¡¼¥É¤Î¼èÆÀ
  • ¥Þ¥¦¥¹¾ðÊó¤Î¼èÆÀ


  • ¥¦¥£¥ó¥É¥¦¤ÎºîÀ®
    void KXL_CreateWindow(Uint16 width, Uint16 height, Uint8 *title, Uint32 event)
    ¡Ì°ú¿ô¡Í
        width        ¥¦¥£¥ó¥É¥¦¤ÎÉý¤ò»ØÄê
        height       ¥¦¥£¥ó¥É¥¦¤Î¹â¤µ¤ò»ØÄê
        *title        ¥¦¥£¥ó¥É¥¦¤Î¥¿¥¤¥È¥ë¤ò»ØÄê
        event        ¥¦¥£¥ó¥É¥¦¤Î¥¤¥Ù¥ó¥È¤ò»ØÄê
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥¦¥£¥ó¥É¥¦µÚ¤Ó¥Õ¥ì¡¼¥à¤òºîÀ®¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ¥¤¥Ù¥ó¥È¤Ï°Ê²¼¤Î¤â¤Î¤òÏÀÍýϤÇÁȤ߹ç¤ï¤»¤Æ»ØÄꤷ¤Þ¤¹¡£
      KXL_EVENT_KEY_PRESS_MASK       ¥­¡¼¤¬²¡¤µ¤ì¤¿»þ
      KXL_EVENT_KEY_RELEASE_MASK     ¥­¡¼¤¬Î¥¤µ¤ì¤¿»þ
      KXL_EVENT_BUTTON_PRESS_MASK    ¥Þ¥¦¥¹¤Î¥Ü¥¿¥ó¤¬²¡¤µ¤ì¤¿»þ
      KXL_EVENT_BUTTON_RELEASE_MASK  ¥Þ¥¦¥¹¤Î¥Ü¥¿¥ó¤¬Î¥¤µ¤ì¤¿»þ
      KXL_EVENT_BUTTON_MOTION_MASK   ¥Þ¥¦¥¹¤Î¥Ü¥¿¥ó¤ò²¡¤·¤Ê¤¬¤é°Üư¤·¤¿»þ
      KXL_EVENT_EXPOSURE_MASK        ºÆÉÁ²è¤ÎÍ׵᤬¤¢¤Ã¤¿»þ
    ¥²¡¼¥à¤òºî¤ë¾å¤Ç¤³¤ì¤°¤é¤¤¤·¤«»È¤ï¤Ê¤¤¤À¤í¤¦¤È»×¤Ã¤¿¤Î¤Ç¤³¤ì¤·¤«¤¢¤ê¤Þ¤»¤ó(¡°¡°


    ¥¦¥£¥ó¥É¥¦¤Îºï½ü
    void KXL_DeleteWindow(void)
    ¡Ì°ú¿ô¡Í
        ¤Ê¤·
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥¦¥£¥ó¥É¥¦¤òÊĤ¸¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ɬ¤ººÇ¸å¤Ë¸Æ¤Ó½Ð¤·¤Æ²¼¤µ¤¤¡£


    ¥Ç¥£¥¹¥×¥ì¥¤¤Î»ØÄê
    void KXL_DisplayName(Uint8 *name)
    ¡Ì°ú¿ô¡Í
        name    ¥Ç¥£¥¹¥×¥ì¥¤¤Î̾Á°
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥¦¥£¥ó¥É¥¦¤òɽ¼¨¤¹¤ë¥Ç¥£¥¹¥×¥ì¥¤¤ò»ØÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    KXL_CreateWindow´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë»ÈÍѤ·¤Þ¤¹¡£
    Î㤨¤Ðɽ¼¨¤·¤¿¤¤¥Ç¥£¥¹¥×¥ì¥¤¤Î̾Á°(£Ø¤Î¥Û¥¹¥È̾)¤¬¡Öks.com¡×¤Ê¤é¤Ð
    KXL_DisplayName("ks.com:0.0");
    KXL_CreateWindow(¡Á);
    ¤È¤¤¤¦¤è¤¦¤Ë»ÈÍѤ·¤Þ¤¹¡£


    ¥¦¥£¥ó¥É¥¦¤Î¹¹¿·
    void KXL_UpDate(KXL_Rect rect)
    ¡Ì°ú¿ô¡Í
        rect    ¥Õ¥ì¡¼¥à¤Î¶ë·Á
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥Õ¥ì¡¼¥à¤ò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ¤Þ¤ºKXL_Rect¹½Â¤ÂΤò»ÈÍѤ·¤Æ¥Õ¥ì¡¼¥à¤Îº¸¡¢¾å¡¢Éý¡¢¹â¤µ¤ò»ØÄꤷ¤Þ¤¹¡£
    ¥¦¥£¥ó¥É¥¦µÚ¤Ó¥Õ¥ì¡¼¥à¤ÎÂ礭¤µ¤¬100x100¤Ç¡¢¥Õ¥ì¡¼¥àÁ´ÂΤò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤ë¾ì¹ç¤Ï
    rect.Left   = 0;
    rect.Top    = 0;
    rect.Width  = 100;
    rect.Heigth = 100;
    ¤È¡¢¤Ê¤ê¤Þ¤¹¡£¥Õ¥ì¡¼¥à¤Îrect¤Ç»ØÄꤷ¤¿¶ë·Á¤¬¥¦¥£¥ó¥É¥¦¤Îº¸¾å(0¡¢0)¤ò»ëÅÀ¤È¤·¤ÆÈ¿±Ç¤µ¤ì¤Þ¤¹¡£


    ¥Õ¥©¥ó¥È¤Î»ØÄê
    void KXL_Font(Uint8 *name, Uint8 r, Uint8 g, Uint8 b)
    ¡Ì°ú¿ô¡Í
        name     ¥Õ¥©¥ó¥È̾
        r        À֤ε±ÅÙ
        g        ÎФε±ÅÙ
        b        ÀĤε±ÅÙ
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥Õ¥©¥ó¥È¤Î̾Á°¡¢¿§¤ò»ØÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    name¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï"-adobe-courier-bold-r-normal--14-*-*-*-*-*-iso8859-1¤È¤Ê¤Ã¤Æ¤¤¤ë¤Î¤ÇÊѹ¹¤·¤¿¤¯Ìµ¤¤¾ì¹ç¤ÏNULL¤òÅϤ·¤Þ¤¹¡£
    r,g,b¤Î³Æµ±Å٤Ϥ¢¤ëÄøÅÙ(?)¤Ï¥×¥ì¡¼¥ó¿ô¤ò¼«Æ°¤Ç¼±Ê̤·¤ÆÊÑ´¹¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢Î㤨¤Ð²«¿§¤Ë¤·¤¿¤¤¾ì¹ç¤Ïr=0xff,g=0xff,b=0x00¤È¤·¡¢¥×¥ì¡¼¥ó¿ô¤¬8¡¢16¡¢24¤Ç¤â¤³¤Î¤Þ¤Þ¤ÎÃͤǣϣˤǤ¹¡£


    ¥Õ¥ì¡¼¥à¤Î¥µ¥¤¥ºÊѹ¹
    void KXL_ReSizeFrame(Uint16 width, Uint16 height)
    ¡Ì°ú¿ô¡Í
        width     ¥Õ¥ì¡¼¥à¤ÎÉý
        height    ¥Õ¥ì¡¼¥à¤Î¹â¤µ
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤ÏKXL_CreateWindow¤ÇºîÀ®¤µ¤ì¤¿¥Õ¥ì¡¼¥à¤Î¥µ¥¤¥º¤òÊѹ¹¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥àÅù¤Ç²èÌ̳°¤Î¥­¥ã¥é¤ÎÉÁ²è½èÍýÅù¤Ë¥¦¥£¥ó¥É¥¦¤ÎÂ礭¤µ¤Ç¤ÏÉÔ­¤Ë¤Ê¤ë»ö¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤Î¤è¤¦¤Ê»þ¤Ë»ÈÍѤ·¤Æ²¼¤µ¤¤¡£


    ÉÁ²è¿§¤ÎÀßÄê
    void KXL_SetDrawColor(Uint8 r, Uint8 g, Uint8 b)
    ¡Ì°ú¿ô¡Í
        r        À֤ε±ÅÙ
        g        ÎФε±ÅÙ
        b        ÀĤε±ÅÙ
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥Õ¥ì¡¼¥à¤Î¾Ãµî¡¢ÅÀÉÁ²è¡¢ÀþÉÁ²è¡¢Ä¹Êý·ÁÉÁ²è»þ¤ÎÉÁ²è¿§¤òÀßÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    r,g,b¤Î³Æµ±Å٤Ϥ¢¤ëÄøÅÙ(?)¤Ï¥×¥ì¡¼¥ó¿ô¤ò¼«Æ°¤Ç¼±Ê̤·¤ÆÊÑ´¹¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢Î㤨¤Ð²«¿§¤Ë¤·¤¿¤¤¾ì¹ç¤Ïr=0xff,g=0xff,b=0x00¤È¤·¡¢¥×¥ì¡¼¥ó¿ô¤¬8¡¢16¡¢24¤Ç¤â¤³¤Î¤Þ¤Þ¤ÎÃͤǣϣˤǤ¹¡£
    ¥Ç¥Õ¥©¥ë¥ÈÃͤϹõ(0x00,0x00,0x00)¤Ç¤¹¡£


    ÅÀ¤ÎÉÁ²è
    void KXL_DrawPoint(Uint16 x, Uint16 y)
    ¡Ì°ú¿ô¡Í
        x        XºÂɸ
        y        YºÂɸ
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËÅÀ¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ÉÁ²è¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
    Î㤨¤ÐÀÖ¿§¤Ç100¡¢100¤Î°ÌÃÖ¤ËÅÀ¤òÉÁ²è¤·¤¿¤¤¾ì¹ç¤Ï
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawPoint(100,100);
    ¤È¤Ê¤ê¤Þ¤¹¡£


    Àþ¤ÎÉÁ²è
    void KXL_DrawLine(Uint16 left, Uint16 top, Uint16 right, Uint16 bottom)
    ¡Ì°ú¿ô¡Í
        left      º¸
        top       ¾å
        right     ±¦
        bottom    ²¼
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËÀþ¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ÉÁ²è¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
    Î㤨¤ÐÀÖ¿§¤Ç100¡¢100¤Î°ÌÃÖ¤«¤é200¡¢200¤Î°ÌÃÖ¤ØÀþ¤òÉÁ²è¤·¤¿¤¤¾ì¹ç¤Ï
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawLine(100,100,200,200);
    ¤È¤Ê¤ê¤Þ¤¹¡£


    Ϣ³¤·¤¿Àþ¤ÎÉÁ²è
    void KXL_DrawPolygon(KXL_Polygon *data, Uint16 max)
    ¡Ì°ú¿ô¡Í
        data      ºÂɸ¥Ç¡¼¥¿¤Î¥Ý¥¤¥ó¥¿
        max       ¥Ç¡¼¥¿¿ô
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËϢ³¤·¤¿Àþ¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    KXL_Polygon¤ÎÆâÍÆ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
    typedef struct {
        Uint16 x;
        Uint16 y;
    } KXL_Polygon;

    ÉÁ²è¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
    Î㤨¤ÐÀÖ¿§¤Ç»°³Ñ·Á((0,100),(100,0),(200¡¢100))¤òÉÁ²è¤¹¤ë¾ì¹ç¤Ï
    KXL_Polygon data[3] = {
        {0,100},{100,0},{200,100}
    };
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawPolygon(data, 3);
    ¤È¤Ê¤ê¤Þ¤¹¡£


    ĹÊý·Á¤ÎÉÁ²è
    void KXL_DrawRectangle(Uint16 left, Uint16 top, Uint16 width, Uint16 height, Bool flag)
    ¡Ì°ú¿ô¡Í
        left      º¸
        top       ¾å
        width     Éý
        height    ¹â¤µ
        flag      Åɤê¤Ä¤Ö¤·»ØÄê
                      True  = ¶­³¦Æâ¤òÅɤê¤Ä¤Ö¤¹
                      False = ¶­³¦Æâ¤òÅɤê¤Ä¤Ö¤µ¤Ê¤¤
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËĹÊý·Á¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ÉÁ²è¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
    Î㤨¤ÐÀÖ¿§¤Ç100¡¢100¤Î°ÌÃÖ¤«¤é100x100¤Î¥µ¥¤¥º¤ÇĹÊý·Á(Åɤê¤Ä¤Ö¤¹)¤òÉÁ²è¤·¤¿¤¤¾ì¹ç¤Ï
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_DrawRectangle(100,100,100,100,True);
    ¤È¤Ê¤ê¤Þ¤¹¡£


    ¥Õ¥ì¡¼¥à¤Î¾Ãµî
    void KXL_ClearFrame(KXL_Rect rect)
    ¡Ì°ú¿ô¡Í
        rect    ¥Õ¥ì¡¼¥à¤Î¶ë·Á
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥Õ¥ì¡¼¥à¤ò¾Ãµî¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ¾Ãµî¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
    Î㤨¤ÐÀÖ¿§¤Ç0¡¢0¤Î°ÌÃÖ¤«¤é100x100¤Î¥µ¥¤¥º¤ò¾Ãµî¤·¤¿¤¤¾ì¹ç¤Ï
    KXL_Rect rect;
    rect.Left   = 0;
    rect.Top    = 0;
    rect.Width  = 100;
    rect.Heigth = 100;
    KXL_SetDrawColor(0xff,0x00,0x00);
    KXL_ClearFrame(rect);
    ¤È¡¢¤Ê¤ê¤Þ¤¹¡£


    BMP¥¤¥á¡¼¥¸¤ÎÆÉ¤ß¹þ¤ß
    KXL_Image *KXL_LoadBitmap(Uint8 *filename, Uint8 blend)
    ¡Ì°ú¿ô¡Í
        filename     bmp¥Õ¥¡¥¤¥ë̾
        blend        Æ©ÌÀ¿§¤ÎÈÖ¹æ
    ¡ÌÌá¤êÃÍ¡Í
        KXL_Image¤Ø¤Î¥Ý¥¤¥ó¥¿

    ¤³¤Î´Ø¿ô¤Ïbmp¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¡¢»ØÄꤷ¤¿Æ©ÌÀ¿§¤ÎÈÖ¹æ¤òÆ©ÌÀ¤Ë¤·¡¢KXL_Image¹½Â¤ÂΤسÊǼ¤¹¤ë(°Ê²¼¥¤¥á¡¼¥¸¤Èµ­¤¹)°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    KXL_Image¤ÎÆâÍÆ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
    typedef struct {
      Pixmap Buffer;    bmp¤Î¥¤¥á¡¼¥¸¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë
      Pixmap Mask;      bmp¤Î¥Þ¥¹¥¯¥¤¥á¡¼¥¸¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë
      GC     MaskGC;    bmp¤Î¥Þ¥¹¥¯ÍÑGC
      Uint16 Width;     bmp¤ÎÉý
      Uint16 Height;    bmp¤Î¹â¤µ
    } KXL_Image;
    ¤³¤ì¤é¤ÏÁ´¤Æ»²¾È¤Î¤ß¤Ç¤¹¡£

    ¤³¤Î´Ø¿ô¤ò»ÈÍѤ¹¤ë¾ì¹ç¤ÎÃí°ÕÅÀ¤È¤·¤Æ¤Ï¡¢bmp¥Õ¥¡¥¤¥ë¤Ï4bpp(16¿§°Ê²¼)¤«8bpp(256¿§°Ê²¼)¤Çºî¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤Þ¤¿¡¢£Ø Window System¤¬£±£¶¤«£²£´¥Ó¥Ã¥È¥«¥é¡¼¤Çµ¯Æ°¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£


    ¥¤¥á¡¼¥¸¤ÎÉÁ²è
    void KXL_PutImage(KXL_Image *img, Sint16 x, Sint16 y)
    ¡Ì°ú¿ô¡Í
        img      ¥¤¥á¡¼¥¸
        x        ¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë£ØºÂɸ
        y        ¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë£ÙºÂɸ
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸Á´ÂΤò¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    Æ©ÌÀ¿§¤â¼«Æ°¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£


    ¥¤¥á¡¼¥¸¤Î¶ë·Á»ØÄêÉÁ²è
    void KXL_PutRectImage(KXL_Image *img, KXL_Rect rect, Sint16 x, Sint16 y)
    ¡Ì°ú¿ô¡Í
        img      ¥¤¥á¡¼¥¸
        rect     ¥¤¥á¡¼¥¸¤Î¶ë·Á
        x        ¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë£ØºÂɸ
        y        ¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë£ÙºÂɸ
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸¤ÎÁ´ÂÎËô¤Ï°ìÉôʬ¤ò¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    Æ©ÌÀ¿§¤â¼«Æ°¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£


    ¥¤¥á¡¼¥¸¤Î¥³¥Ô¡¼
    KXL_Image *KXL_CopyImage(KXL_Image *img, KXL_Rect rect)
    ¡Ì°ú¿ô¡Í
        img       ¥³¥Ô¡¼¸µ¤Î¥¤¥á¡¼¥¸
        rect      ¥³¥Ô¡¼¸µ¤Î¥¤¥á¡¼¥¸¤Î¶ë·Á
    ¡ÌÌá¤êÃÍ¡Í
        KXL_Image¤Ø¤Î¥Ý¥¤¥ó¥¿

    ¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸¤ÎÁ´ÂÎËô¤Ï°ìÉô¤ò¾¤Î¥¤¥á¡¼¥¸¤Ë¥³¥Ô¡¼¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    Î㤨¤Ð48x16¤Î¥¤¥á¡¼¥¸¤¬¤¢¤ë¤È¤·¤Þ¤¹¡£¤³¤Î¥¤¥á¡¼¥¸¤Ï16x16¤Î¥­¥ã¥é¤¬²£¤Ë4¤Äʤó¤Ç¤¤¤Þ¤¹¡£¤³¤Î¥­¥ã¥é¤ò¸ÄÊ̤Υ¤¥á¡¼¥¸¤Ë¥³¥Ô¡¼¤·¤¿¤¤¾ì¹ç¤Ë»ÈÍѤ·¤Þ¤¹¡£
    ¥µ¥ó¥×¥ë¥³¡¼¥É
    KXL_Image *all;
    KXL_Image *chr[4];
    KXL_Rect rect;

    int i;

    all = KXL_LoadImage("alll.xpm");
    for (i=0; i<4; i++) {
      rect.Left   = i*16;
      rect.Top    = 0;
      rect.Width  = 16;
      rect.Height = 16;
      chr[i] = KXL_CopyImage(all, rect);
    }
    ¤È¡¢¤Ê¤ê¤Þ¤¹¡£


    ¥¤¥á¡¼¥¸¤Î³È½Ì
    KXL_Image *KXL_StrechImage(KXL_Image *img, Uint16 width, Uint16 height)
    ¡Ì°ú¿ô¡Í
        img       ³È½ÌÁ°¤Î¥¤¥á¡¼¥¸
        width     Éý
        height    ¹â¤µ
    ¡ÌÌá¤êÃÍ¡Í
        KXL_Image¤Ø¤Î¥Ý¥¤¥ó¥¿

    ¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸¤òǤ°Õ¤Î¥µ¥¤¥º¤ËÊÑ´¹¤·¡¢Â¾¤Î¥¤¥á¡¼¥¸¤Ë¥³¥Ô¡¼¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£


    ¥¤¥á¡¼¥¸¤Îºï½ü
    void KXL_DeleteImage(KXL_Image *img)
    ¡Ì°ú¿ô¡Í
        img      ¥¤¥á¡¼¥¸
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸¤òºï½ü¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    KXL_LoadBitmap´Ø¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢½ªÎ»»þ¤Ë¤Ïɬ¤º¼Â¹Ô¤·¤Æ²¼¤µ¤¤¡£


    ¥Æ¥­¥¹¥È¤ÎÉÁ²è
    void KXL_PutText(Sint16 x, Sint16 y, Uint8 *str)
    ¡Ì°ú¿ô¡Í
        x         ÉÁ²è¤¹¤ë£ØºÂɸ
        y         ÉÁ²è¤¹¤ë£ÙºÂɸ
        str       ÉÁ²è¤¹¤ëʸ»úÎó
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ïʸ»úÎó¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ʸ»úÎó¤Ë¤Ï2¥Ð¥¤¥È¥³¡¼¥É(ÆüËܸì)¤Ï»ØÄê½ÐÍè¤Þ¤»¤ó¡£(¤¤¤º¤ì¤ÏÂбþ¤µ¤»¤ë¤Ä¤â¤ê¤Ç¤¹¡£¡£¡£)
    ÉÁ²è»þ¤Î¥Õ¥©¥ó¥ÈµÚ¤Ó¿§¤ÏKXL_Font¤Ç»ØÄꤷ¤¿¥Õ¥©¥ó¥ÈµÚ¤Ó¿§¤Ç¤¹¡£


    ¥Æ¥­¥¹¥È¤Î²£Éý¤Î¼èÆÀ
    Uint16 KXL_TextWidth(Uint8 *str)
    ¡Ì°ú¿ô¡Í
        str        ÉÁ²è¤¹¤ëʸ»úÎó
    ¡ÌÌá¤êÃÍ¡Í
        ÉÁ²è»þ¤Î²£Éý

    ¤³¤Î´Ø¿ô¤Ïʸ»úÎó¤òÉÁ²è¤·¤¿»þ¤Î²£Éý¤òµá¤á¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ʸ»úÎó¤Ë¤Ï2¥Ð¥¤¥È¥³¡¼¥É(ÆüËܸì)¤Ï»ØÄê½ÐÍè¤Þ¤»¤ó¡£(¤¤¤º¤ì¤ÏÂбþ¤µ¤»¤ë¤Ä¤â¤ê¤Ç¤¹¡£¡£¡£)
    ÉÁ²è»þ¤Î¥Õ¥©¥ó¥È¤ÏKXL_Font¤Ç»ØÄꤷ¤¿¥Õ¥©¥ó¥È¤Ç¡¢²£Éý¤Ï¤½¤Î¥Õ¥©¥ó¥È¤Ë¤è¤êÊѲ½¤·¤Þ¤¹¡£


    ¥¤¥Ù¥ó¥È¤Î̵ͭ
    Bool KXL_CheckEvents(void)
    ¡Ì°ú¿ô¡Í
        ¤Ê¤·
    ¡ÌÌá¤êÃÍ¡Í
        True  - ¥¤¥Ù¥ó¥ÈȯÀ¸
        False - ¥¤¥Ù¥ó¥È̵¤·

    ¤³¤Î´Ø¿ô¤Ï¥¤¥Ù¥ó¥È¤Î̵ͭ¤ò¥Á¥§¥Ã¥¯¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ¥¤¥Ù¥ó¥È¤¬Ê£¿ôȯÀ¸¤·¤¿¾ì¹ç¤ÏÊ£¿ô²óTrue¤¬ÊÖ¤ë¤Î¤ÇwhileÅù¤Ç½èÍý¤ò¤·¤Þ¤¹¡£

    ¥µ¥ó¥×¥ë
      while (KXL_CheckEvents()) {
        switch (KXL_GetEvents()) {
                    :
        }
      }


    ¥¤¥Ù¥ó¥È¤Î¼èÆÀ
    Uint16 KXL_GetEvents(void)
    ¡Ì°ú¿ô¡Í
        ¤Ê¤·
    ¡ÌÌá¤êÃÍ¡Í
        ¥¤¥Ù¥ó¥È
          KXL_EVENT_KEY_PRESS       ¥­¡¼¤ò²¡¤·¤¿
          KXL_EVENT_KEY_RELEASE     ¥­¡¼¤òÎ¥¤·¤¿
          KXL_EVENT_BUTTON_PRESS    ¥Þ¥¦¥¹¥Ü¥¿¥ó¤ò²¡¤·¤¿
          KXL_EVENT_BUTTON_RELEASE  ¥Þ¥¦¥¹¥Ü¥¿¥ó¤òÎ¥¤·¤¿
          KXL_EVENT_BUTTON_MOTION   ¥Þ¥¦¥¹¤Î¥Ü¥¿¥ó¤ò²¡¤·¤Ê¤¬¤é°Üư¤·¤¿
          KXL_EVENT_EXPOSE          ºÆÉÁ²è

    ¤³¤Î´Ø¿ô¤Ï¥¤¥Ù¥ó¥È¤ò¼èÆÀ¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£


    ¥­¡¼¥³¡¼¥É¤Î¼èÆÀ
    Uint16 KXL_GetKey(void)
    ¡Ì°ú¿ô¡Í
        ¤Ê¤·
    ¡ÌÌá¤êÃÍ¡Í
        ¥­¡¼¥³¡¼¥É
          KXL_KEY_BackSpace
          KXL_KEY_Tab
          KXL_KEY_Return
          KXL_KEY_Escape
          KXL_KEY_Delete
          KXL_KEY_Home
          KXL_KEY_Left
          KXL_KEY_Up
          KXL_KEY_Right
          KXL_KEY_Down
          KXL_KEY_F1
          KXL_KEY_F2
          KXL_KEY_F3
          KXL_KEY_F4
          KXL_KEY_F5
          KXL_KEY_F6
          KXL_KEY_F7
          KXL_KEY_F8
          KXL_KEY_F9
          KXL_KEY_F10
          KXL_KEY_F11
          KXL_KEY_F12
          KXL_KEY_Shift_L
          KXL_KEY_Shift_R
          KXL_KEY_Control_L
          KXL_KEY_Control_R
          KXL_KEY_Space
          KXL_KEY_Exclam
          KXL_KEY_Quotedbl
          KXL_KEY_Numbersign
          KXL_KEY_Dollar
          KXL_KEY_Percent
          KXL_KEY_Ampersand
          KXL_KEY_Apostrophe
          KXL_KEY_Quoteright
          KXL_KEY_Parenleft
          KXL_KEY_Parenright
          KXL_KEY_Asterisk
          KXL_KEY_Plus
          KXL_KEY_Comma
          KXL_KEY_Minus
          KXL_KEY_Period
          KXL_KEY_Slash
          KXL_KEY_0
          KXL_KEY_1
          KXL_KEY_2
          KXL_KEY_3
          KXL_KEY_4
          KXL_KEY_5
          KXL_KEY_6
          KXL_KEY_7
          KXL_KEY_8
          KXL_KEY_9
          KXL_KEY_Colon
          KXL_KEY_Semicolon
          KXL_KEY_Less
          KXL_KEY_Equal
          KXL_KEY_Greater
          KXL_KEY_Question
          KXL_KEY_At
          KXL_KEY_A
          KXL_KEY_B
          KXL_KEY_C
          KXL_KEY_D
          KXL_KEY_E
          KXL_KEY_F
          KXL_KEY_G
          KXL_KEY_H
          KXL_KEY_I
          KXL_KEY_J
          KXL_KEY_K
          KXL_KEY_L
          KXL_KEY_M
          KXL_KEY_N
          KXL_KEY_O
          KXL_KEY_P
          KXL_KEY_Q
          KXL_KEY_R
          KXL_KEY_S
          KXL_KEY_T
          KXL_KEY_U
          KXL_KEY_V
          KXL_KEY_W
          KXL_KEY_X
          KXL_KEY_Y
          KXL_KEY_Z
          KXL_KEY_Bracketleft
          KXL_KEY_Backslash
          KXL_KEY_Bracketright
          KXL_KEY_Asciicircum
          KXL_KEY_Underscore
          KXL_KEY_Grave
          KXL_KEY_Quoteleft
          KXL_KEY_a
          KXL_KEY_b
          KXL_KEY_c
          KXL_KEY_d
          KXL_KEY_e
          KXL_KEY_f
          KXL_KEY_g
          KXL_KEY_h
          KXL_KEY_i
          KXL_KEY_j
          KXL_KEY_k
          KXL_KEY_l
          KXL_KEY_m
          KXL_KEY_n
          KXL_KEY_o
          KXL_KEY_p
          KXL_KEY_q
          KXL_KEY_r
          KXL_KEY_s
          KXL_KEY_t
          KXL_KEY_u
          KXL_KEY_v
          KXL_KEY_w
          KXL_KEY_x
          KXL_KEY_y
          KXL_KEY_z
          KXL_KEY_Braceleft
          KXL_KEY_Bar
          KXL_KEY_Braceright
          KXL_KEY_Asciitilde

    ¤³¤Î´Ø¿ô¤Ï¥­¡¼¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿»þ¤Î¥­¡¼¥³¡¼¥É¤ò¼èÆÀ¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£


    ¥Þ¥¦¥¹¾ðÊó¤Î¼èÆÀ
    Uint16 KXL_GetButton(Uint16 *x, Uint16 *y)
    ¡Ì°ú¿ô¡Í
        x        ¥Þ¥¦¥¹¤Î£ØºÂɸ¤ò³ÊǼ¤¹¤ë¥Ý¥¤¥ó¥¿
        y        ¥Þ¥¦¥¹¤Î£ÙºÂɸ¤ò³ÊǼ¤¹¤ë¥Ý¥¤¥ó¥¿
    ¡ÌÌá¤êÃÍ¡Í
        ²¡¤·¤¿¡¢Ëô¤ÏÎ¥¤·¤¿¥Þ¥¦¥¹¤Î¥Ü¥¿¥óÈÖ¹æ

    ¤³¤Î´Ø¿ô¤Ï¥Þ¥¦¥¹¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿»þ¤Î¥Þ¥¦¥¹¾ðÊó¤ò¼èÆÀ¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
     
     

     Ìá¤ë


    ¥µ¥¦¥ó¥É´ØÏ¢¤Î²òÀâ

  • ¥µ¥¦¥ó¥É¤Î½é´ü²½
  • ¥µ¥¦¥ó¥É¤Î½ªÎ»
  • ¥µ¥¦¥ó¥É¤ÎºÆÀ¸


  • ¥µ¥¦¥ó¥É¤Î½é´ü²½
    void KXL_InitSound(Uint8 *path, Uint8 **fname)
    ¡Ì°ú¿ô¡Í
        path     wav¥Õ¥¡¥¤¥ë¤ÎÃÖ¤¤¤Æ¤¢¤ë¥Ñ¥¹
        fname    wav¥Õ¥¡¥¤¥ë̾
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥µ¥¦¥ó¥É¥µ¡¼¥Ð¡¼¤Î½é´ü²½¤ò¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ¥µ¥¦¥ó¥É¥µ¡¼¥Ð¡¼¤ò¿·¤¿¤Ë¥×¥í¥»¥¹¤òȯÀ¸¤µ¤»¤Æ½èÍý¤·¤Æ¤¤¤Þ¤¹¡£¥µ¥¦¥ó¥É¤ÏºÇÂç¤Ç16¸ÄƱ»þ¤ËºÆÀ¸½ÐÍè¤Þ¤¹¡£Âбþ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë·Á¼°¤Ïwav¤Î¤ß¤Ç¡¢cat ¡Á.wav > /dev/dsp¤È¤·¤¿»þ¤ËÀµ¾ï¤ËºÆÀ¸½ÐÍè¤ë¥µ¥ó¥×¥ê¥ó¥°¤Î¤ß¤Ç¤¹¡£¥¹¥Æ¥ì¥ªºÆÀ¸¤Ï½ÐÍè¤Þ¤»¤ó¡£soxÅù¤ÇÊÑ´¹¤·¤Æ²¼¤µ¤¤¡£
    ÀßÄêÊýË¡¤Ï¡¢Î㤨¤Ðwav¥Õ¥¡¥¤¥ë¡Öbomb.wav¡×¡Öbgm.wav¡×¡Öattack.wav¡×¤¬/usr/local/games°Ê²¼¤Ë¤¢¤ë¾ì¹ç¤Ï
    Uint8 *fname[]={"bomb", "bgm", "attack", ""};

    KXL_InitSound("/usr/local/games", fname);
    ¤È¤·¤Þ¤¹¡£¤³¤ì¤Ç£³¤Ä¤Î²»¤¬ÌĤ餻¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
    ⤷¡¢¥Õ¥¡¥¤¥ë¿ô¤Î¾å¸Â¤Ï16¤Ç¤¹¡£


    ¥µ¥¦¥ó¥É¤Î½ªÎ»
    void KXL_EndSound(void)
    ¡Ì°ú¿ô¡Í
        ¤Ê¤·
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥µ¥¦¥ó¥É¥µ¡¼¥Ð¡¼¤ò½ªÎ»¤µ¤»¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£


    ¥µ¥¦¥ó¥É¤ÎºÆÀ¸
    void KXL_PlaySound(Uint16 no, KXL_Command action)
    ¡Ì°ú¿ô¡Í
        no       ¥µ¥¦¥ó¥É¥Õ¥¡¥¤¥ëÈÖ¹æ
        action   ºÆÀ¸¥³¥Þ¥ó¥É
           KXL_SOUND_PLAY        no¤Ç»ØÄꤷ¤¿¥µ¥¦¥ó¥É¤ò£±²ó¤À¤±ºÆÀ¸
           KXL_SOUND_PLAY_LOOP   no¤Ç»ØÄꤷ¤¿¥µ¥¦¥ó¥É¤ò·«¤êÊÖ¤·ºÆÀ¸
           KXL_SOUND_STOP        no¤Ç»ØÄꤷ¤¿¥µ¥¦¥ó¥É¤òÄä»ß
           KXL_SOUND_STOP_ALL    Á´¤Æ¤Î¥µ¥¦¥ó¥É¤òÄä»ß
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥µ¥¦¥ó¥É¤òºÆÀ¸¡¢Ää»ß¤µ¤»¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
    ¥µ¥¦¥ó¥É¥Õ¥¡¥¤¥ëÈÖ¹æ¤òKXL_InitSound¤ÇÀßÄꤷ¤¿¥Õ¥¡¥¤¥ë¿ô¤ò0¤«¤é¿ô¤¨¤Þ¤¹¡£3¤ÄÀßÄꤷ¤¿¾ì¹ç¤Ï0¡Á2¤Î´Ö¤Ç»ØÄꤷ¤Þ¤¹¡£Á´¤Æ¤Î¥µ¥¦¥ó¥É¤òÄä»ß¤µ¤»¤ë¾ì¹ç¤Ï¥µ¥¦¥ó¥É¥Õ¥¡¥¤¥ëÈÖ¹æ¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ºÇÂç¤Ç16¤Î¥µ¥¦¥ó¥É¤¬ºÆÀ¸¤µ¤ì¤Þ¤¹¡£
     
     

     Ìá¤ë


    ¤½¤Î¾¤Î²òÀâ

  • ¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤ÎÀßÄê
  • ¥¿¥¤¥Þ¡¼³ä¹þ¤ßȯÀ¸¤Î̵ͭ
  • ¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤Î¥ê¥»¥Ã¥È


  • ¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤ÎÀßÄê
    void KXL_Timer(Uint16 time)
    ¡Ì°ú¿ô¡Í
        time    ÀßÄ꥿¥¤¥ÞÃÍ
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï£±Éô֤˲¿²ó³ä¹þ¤ß¤òȯÀ¸¤µ¤»¤ë¤«¤òÀßÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£

    £±Éô֤ˣ³£°²ó½èÍý¤ò¹Ô¤¦»þ¤Î¥µ¥ó¥×¥ë

        KXL_Timer(30);
        while (1) {
            /* ¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤¬È¯À¸¤¹¤ë¤Þ¤ÇÂÔµ¡¤¹¤ë */
            if (KXL_GetTimer() == False)
               continue;
            /* ¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤Î¥ê¥»¥Ã¥È */
            KXL_ResetTimer();
            /* ½èÍý */
        }


    ¥¿¥¤¥Þ¡¼³ä¹þ¤ßȯÀ¸¤Î̵ͭ
    Bool KXL_GetTimer(void)
    ¡Ì°ú¿ô¡Í
        ¤Ê¤·
    ¡ÌÌá¤êÃÍ¡Í
        ¥¿¥¤¥Þ¡¼³ä¹þ¤ßȯÀ¸¤Î̵ͭ
        True¤Ç³ä¹þ¤ßÍ­¤ê¡¢False¤Ç³ä¹þ¤ß̵¤·

    ¤³¤Î´Ø¿ô¤Ï¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤¬È¯À¸¤·¤¿¤«¤òÄ´¤Ù¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£


    ¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤Î¥ê¥»¥Ã¥È
    void KXL_ResetTimer(void)
    ¡Ì°ú¿ô¡Í
        ¤Ê¤·
    ¡ÌÌá¤êÃÍ¡Í
        ¤Ê¤·

    ¤³¤Î´Ø¿ô¤Ï¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤ò¥ê¥»¥Ã¥È¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
     
     

     Ìá¤ë