Window
Frame
Image
__________________ __________________ ____ / / / _____/____/_ / / / / __/_ / /___/ / / / / / / / / / / /___/ / Text / <------/----/ ____ /______"HelloWorld" / / / / / / / / HelloWorld/ /_________________/ /_________________/ |
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();
°Ê¾å´Êñ¤Ê¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤Î²òÀâ¤Ç¤¹¡£¤É¤¦¤Ç¤¹¡¢´Êñ¤Ç¤·¤ç¡©
¤³¤Î´Ø¿ô¤Ï¥¦¥£¥ó¥É¥¦µÚ¤Ó¥Õ¥ì¡¼¥à¤òºîÀ®¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¥¤¥Ù¥ó¥È¤Ï°Ê²¼¤Î¤â¤Î¤òÏÀÍýϤÇÁȤ߹ç¤ï¤»¤Æ»ØÄꤷ¤Þ¤¹¡£
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
ºÆÉÁ²è¤ÎÍ׵᤬¤¢¤Ã¤¿»þ
¥²¡¼¥à¤òºî¤ë¾å¤Ç¤³¤ì¤°¤é¤¤¤·¤«»È¤ï¤Ê¤¤¤À¤í¤¦¤È»×¤Ã¤¿¤Î¤Ç¤³¤ì¤·¤«¤¢¤ê¤Þ¤»¤ó(¡°¡°
¤³¤Î´Ø¿ô¤Ï¥¦¥£¥ó¥É¥¦¤òÊĤ¸¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
ɬ¤ººÇ¸å¤Ë¸Æ¤Ó½Ð¤·¤Æ²¼¤µ¤¤¡£
¤³¤Î´Ø¿ô¤Ï¥¦¥£¥ó¥É¥¦¤òɽ¼¨¤¹¤ë¥Ç¥£¥¹¥×¥ì¥¤¤ò»ØÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
KXL_CreateWindow´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë»ÈÍѤ·¤Þ¤¹¡£
Î㤨¤Ðɽ¼¨¤·¤¿¤¤¥Ç¥£¥¹¥×¥ì¥¤¤Î̾Á°(£Ø¤Î¥Û¥¹¥È̾)¤¬¡Öks.com¡×¤Ê¤é¤Ð
KXL_DisplayName("ks.com:0.0");
KXL_CreateWindow(¡Á);
¤È¤¤¤¦¤è¤¦¤Ë»ÈÍѤ·¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥Õ¥ì¡¼¥à¤ò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¤Þ¤ºKXL_Rect¹½Â¤ÂΤò»ÈÍѤ·¤Æ¥Õ¥ì¡¼¥à¤Îº¸¡¢¾å¡¢Éý¡¢¹â¤µ¤ò»ØÄꤷ¤Þ¤¹¡£
¥¦¥£¥ó¥É¥¦µÚ¤Ó¥Õ¥ì¡¼¥à¤ÎÂ礤µ¤¬100x100¤Ç¡¢¥Õ¥ì¡¼¥àÁ´ÂΤò¥¦¥£¥ó¥É¥¦¤ËÈ¿±Ç¤µ¤»¤ë¾ì¹ç¤Ï
rect.Left = 0;
rect.Top = 0;
rect.Width = 100;
rect.Heigth = 100;
¤È¡¢¤Ê¤ê¤Þ¤¹¡£¥Õ¥ì¡¼¥à¤Îrect¤Ç»ØÄꤷ¤¿¶ë·Á¤¬¥¦¥£¥ó¥É¥¦¤Îº¸¾å(0¡¢0)¤ò»ëÅÀ¤È¤·¤ÆÈ¿±Ç¤µ¤ì¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥Õ¥©¥ó¥È¤Î̾Á°¡¢¿§¤ò»ØÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
name¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï"-adobe-courier-bold-r-normal--14-*-*-*-*-*-iso8859-1"¤¤È¤Ê¤Ã¤Æ¤¤¤ë¤Î¤ÇÊѹ¹¤·¤¿¤¯Ìµ¤¤¾ì¹ç¤ÏNULL¤òÅϤ·¤Þ¤¹¡£
r,g,b¤Î³Æµ±Å٤Ϥ¢¤ëÄøÅÙ(?)¤Ï¥×¥ì¡¼¥ó¿ô¤ò¼«Æ°¤Ç¼±Ê̤·¤ÆÊÑ´¹¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢Î㤨¤Ð²«¿§¤Ë¤·¤¿¤¤¾ì¹ç¤Ïr=0xff,g=0xff,b=0x00¤È¤·¡¢¥×¥ì¡¼¥ó¿ô¤¬8¡¢16¡¢24¤Ç¤â¤³¤Î¤Þ¤Þ¤ÎÃͤǣϣˤǤ¹¡£
¤³¤Î´Ø¿ô¤ÏKXL_CreateWindow¤ÇºîÀ®¤µ¤ì¤¿¥Õ¥ì¡¼¥à¤Î¥µ¥¤¥º¤òÊѹ¹¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥àÅù¤Ç²èÌ̳°¤Î¥¥ã¥é¤ÎÉÁ²è½èÍýÅù¤Ë¥¦¥£¥ó¥É¥¦¤ÎÂ礤µ¤Ç¤ÏÉÔ¤ˤʤë»ö¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤Î¤è¤¦¤Ê»þ¤Ë»ÈÍѤ·¤Æ²¼¤µ¤¤¡£
¤³¤Î´Ø¿ô¤Ï¥Õ¥ì¡¼¥à¤Î¾Ãµî¡¢ÅÀÉÁ²è¡¢ÀþÉÁ²è¡¢Ä¹Êý·ÁÉÁ²è»þ¤ÎÉÁ²è¿§¤òÀßÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
r,g,b¤Î³Æµ±Å٤Ϥ¢¤ëÄøÅÙ(?)¤Ï¥×¥ì¡¼¥ó¿ô¤ò¼«Æ°¤Ç¼±Ê̤·¤ÆÊÑ´¹¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢Î㤨¤Ð²«¿§¤Ë¤·¤¿¤¤¾ì¹ç¤Ïr=0xff,g=0xff,b=0x00¤È¤·¡¢¥×¥ì¡¼¥ó¿ô¤¬8¡¢16¡¢24¤Ç¤â¤³¤Î¤Þ¤Þ¤ÎÃͤǣϣˤǤ¹¡£
¥Ç¥Õ¥©¥ë¥ÈÃͤϹõ(0x00,0x00,0x00)¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËÅÀ¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
ÉÁ²è¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
Î㤨¤ÐÀÖ¿§¤Ç100¡¢100¤Î°ÌÃÖ¤ËÅÀ¤òÉÁ²è¤·¤¿¤¤¾ì¹ç¤Ï
KXL_SetDrawColor(0xff,0x00,0x00);
KXL_DrawPoint(100,100);
¤È¤Ê¤ê¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËÀþ¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
ÉÁ²è¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
Î㤨¤ÐÀÖ¿§¤Ç100¡¢100¤Î°ÌÃÖ¤«¤é200¡¢200¤Î°ÌÃÖ¤ØÀþ¤òÉÁ²è¤·¤¿¤¤¾ì¹ç¤Ï
KXL_SetDrawColor(0xff,0x00,0x00);
KXL_DrawLine(100,100,200,200);
¤È¤Ê¤ê¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËϢ³¤·¤¿Àþ¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
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);
¤È¤Ê¤ê¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤ÏǤ°Õ¤Î¾ì½ê¤ËĹÊý·Á¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
ÉÁ²è¿§¤ÏKXL_SetDrawColor´Ø¿ô¤ÇÀßÄꤷ¤Æ¤¢¤ë¿§¤Ç¤¹¡£
Î㤨¤ÐÀÖ¿§¤Ç100¡¢100¤Î°ÌÃÖ¤«¤é100x100¤Î¥µ¥¤¥º¤ÇĹÊý·Á(Åɤê¤Ä¤Ö¤¹)¤òÉÁ²è¤·¤¿¤¤¾ì¹ç¤Ï
KXL_SetDrawColor(0xff,0x00,0x00);
KXL_DrawRectangle(100,100,100,100,True);
¤È¤Ê¤ê¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥Õ¥ì¡¼¥à¤ò¾Ãµî¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¾Ãµî¿§¤Ï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_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¤¬£±£¶¤«£²£´¥Ó¥Ã¥È¥«¥é¡¼¤Çµ¯Æ°¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸Á´ÂΤò¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
Æ©ÌÀ¿§¤â¼«Æ°¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸¤ÎÁ´ÂÎËô¤Ï°ìÉôʬ¤ò¥Õ¥ì¡¼¥à¤ËÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
Æ©ÌÀ¿§¤â¼«Æ°¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥¤¥á¡¼¥¸¤ÎÁ´ÂÎËô¤Ï°ìÉô¤ò¾¤Î¥¤¥á¡¼¥¸¤Ë¥³¥Ô¡¼¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
Î㤨¤Ð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_LoadBitmap´Ø¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢½ªÎ»»þ¤Ë¤Ïɬ¤º¼Â¹Ô¤·¤Æ²¼¤µ¤¤¡£
¤³¤Î´Ø¿ô¤Ïʸ»úÎó¤òÉÁ²è¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
ʸ»úÎó¤Ë¤Ï2¥Ð¥¤¥È¥³¡¼¥É(ÆüËܸì)¤Ï»ØÄê½ÐÍè¤Þ¤»¤ó¡£(¤¤¤º¤ì¤ÏÂбþ¤µ¤»¤ë¤Ä¤â¤ê¤Ç¤¹¡£¡£¡£)
ÉÁ²è»þ¤Î¥Õ¥©¥ó¥ÈµÚ¤Ó¿§¤ÏKXL_Font¤Ç»ØÄꤷ¤¿¥Õ¥©¥ó¥ÈµÚ¤Ó¿§¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ïʸ»úÎó¤òÉÁ²è¤·¤¿»þ¤Î²£Éý¤òµá¤á¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
ʸ»úÎó¤Ë¤Ï2¥Ð¥¤¥È¥³¡¼¥É(ÆüËܸì)¤Ï»ØÄê½ÐÍè¤Þ¤»¤ó¡£(¤¤¤º¤ì¤ÏÂбþ¤µ¤»¤ë¤Ä¤â¤ê¤Ç¤¹¡£¡£¡£)
ÉÁ²è»þ¤Î¥Õ¥©¥ó¥È¤ÏKXL_Font¤Ç»ØÄꤷ¤¿¥Õ¥©¥ó¥È¤Ç¡¢²£Éý¤Ï¤½¤Î¥Õ¥©¥ó¥È¤Ë¤è¤êÊѲ½¤·¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥¤¥Ù¥ó¥È¤ÎÍ̵¤ò¥Á¥§¥Ã¥¯¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¥¤¥Ù¥ó¥È¤¬Ê£¿ôȯÀ¸¤·¤¿¾ì¹ç¤ÏÊ£¿ô²óTrue¤¬ÊÖ¤ë¤Î¤ÇwhileÅù¤Ç½èÍý¤ò¤·¤Þ¤¹¡£
¥µ¥ó¥×¥ë
while (KXL_CheckEvents())
{
switch (KXL_GetEvents())
{
:
}
}
¤³¤Î´Ø¿ô¤Ï¥¤¥Ù¥ó¥È¤ò¼èÆÀ¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥¡¼¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿»þ¤Î¥¡¼¥³¡¼¥É¤ò¼èÆÀ¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥Þ¥¦¥¹¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿»þ¤Î¥Þ¥¦¥¹¾ðÊó¤ò¼èÆÀ¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥µ¥¦¥ó¥É¥µ¡¼¥Ð¡¼¤Î½é´ü²½¤ò¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¥µ¥¦¥ó¥É¥µ¡¼¥Ð¡¼¤ò¿·¤¿¤Ë¥×¥í¥»¥¹¤òȯÀ¸¤µ¤»¤Æ½èÍý¤·¤Æ¤¤¤Þ¤¹¡£¥µ¥¦¥ó¥É¤ÏºÇÂç¤Ç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¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥µ¥¦¥ó¥É¥µ¡¼¥Ð¡¼¤ò½ªÎ»¤µ¤»¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥µ¥¦¥ó¥É¤òºÆÀ¸¡¢Ää»ß¤µ¤»¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¥µ¥¦¥ó¥É¥Õ¥¡¥¤¥ëÈÖ¹æ¤òKXL_InitSound¤ÇÀßÄꤷ¤¿¥Õ¥¡¥¤¥ë¿ô¤ò0¤«¤é¿ô¤¨¤Þ¤¹¡£3¤ÄÀßÄꤷ¤¿¾ì¹ç¤Ï0¡Á2¤Î´Ö¤Ç»ØÄꤷ¤Þ¤¹¡£Á´¤Æ¤Î¥µ¥¦¥ó¥É¤òÄä»ß¤µ¤»¤ë¾ì¹ç¤Ï¥µ¥¦¥ó¥É¥Õ¥¡¥¤¥ëÈÖ¹æ¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ºÇÂç¤Ç16¤Î¥µ¥¦¥ó¥É¤¬ºÆÀ¸¤µ¤ì¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï£±Éô֤˲¿²ó³ä¹þ¤ß¤òȯÀ¸¤µ¤»¤ë¤«¤òÀßÄꤹ¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
£±Éô֤ˣ³£°²ó½èÍý¤ò¹Ô¤¦»þ¤Î¥µ¥ó¥×¥ë
KXL_Timer(30);
while (1) {
/*
¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤¬È¯À¸¤¹¤ë¤Þ¤ÇÂÔµ¡¤¹¤ë */
if
(KXL_GetTimer() == False)
continue;
/*
¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤Î¥ê¥»¥Ã¥È */
KXL_ResetTimer();
/*
½èÍý */
}
¤³¤Î´Ø¿ô¤Ï¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤¬È¯À¸¤·¤¿¤«¤òÄ´¤Ù¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤Ï¥¿¥¤¥Þ¡¼³ä¹þ¤ß¤ò¥ê¥»¥Ã¥È¤¹¤ë°Ù¤Î´Ø¿ô¤Ç¤¹¡£